Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
Argument parsing should be scoped to the code which constucts cfg_t
|
|
PMP Granularity is made available as a command line option. The default
value is 4 Bytes. The value can be changed by passing the option
--pmp-granularity=<value> to spike.
Signed-off-by: Karthik B K <karthik.bk@incoresemi.com>
|
|
The implementation assumes (correctly) that hart IDs are sorted.
Encapsulate that assumption here, rather than scattering it around
the codebase.
|
|
They aren't signed quantities.
|
|
The addition of Svadu support and removal of --mmu-dirty
command line flag results in the dirty_enabled configuration state
no longer being used. Remove the remnants of this state.
|
|
|
|
The method can simplify proper processing of sitiations when
(base + size) overflows 64-bit interger.
|
|
NFT. We also mark `base` and `size` fields as private.
|
|
NFC. The intention is for `base` and `size` fields of mem_cfg_t
to be private members. This is the fist part of this commit.
|
|
|
|
They don't do anything yet.
|
|
It looks like #1170 and #1180 conflict, so they individually pass CI
but collectively don't. Trivially fix by #including <vector>.
|
|
|
|
|
|
|
|
Set target endianess in constructors
|
|
|
|
|
|
|
|
|
|
Now we have hartids, we can remove nprocs so that we have a single
source of truth.
|
|
The only slightly difficult thing here is that hartids will always
be considered "overridden" by the time we get to sim_t::sim_t (either
overridden by a command line argument, or overridden when we set
default hartids just before the constructor). To allow downstream code
to distinguish between "I picked IDs 0, 1, 2, 3 because the user asked
for 4 processors" and "The user explicitly asked for IDs 0, 1, 2, 3",
we have an extra explicit_hartids field.
|
|
|
|
The motivation here is mostly to enable a refactoring where the memory
layout (sans allocated memory) gets passed to DTS/DTB code before we
ever allocate anything.
But it turns out to make merge_overlapping_memory_regions a bit
simpler, which is an added bonus.
|
|
|
|
|
|
|
|
|
|
This commit defines a "cfg_t" structure, which currently just holds
the initrd address range. It will be augmented in future commits to
hold other configuration arguments as well.
To represent a configuration argument, we define an arg_t base class.
This holds a current value, together with a flag that tells us whether
the value has been updated from the default. The idea is that in
future we're going to use that flag when reading a DTB file: if an
argument has actually been specified on the command line, we need to
take it into account; if not, we can ignore the default and use the
DTB file's supplied value.
|