aboutsummaryrefslogtreecommitdiff
path: root/ci-tests
AgeCommit message (Collapse)AuthorFilesLines
2024-04-30Support per-device arguments and device factory reuseLIU Yu2-2/+2
As proposed in #1652, we made the following changes to MMIO device (factory) plugin API, to mitigate current limitations and facilitate factory reuse. - removed `sargs` from `device_factory_t`, and introduced a new type alias `device_factory_sargs_t` to capture `<device_factory_t *, sargs>` pairs, this is used to instantiate sim_t instances; - changed the signature of `device_factory_t::generate_fdt` and `device_factory_t::parse_from_fdt` to take on an extra `sargs` argument, for instantiating devices with per-device arguments; - made `device_factory_t` const and potentially resuable across multiple `sim_t` instances.
2024-03-07workaround to support custom extensions that use standard prefixesAlexander Romanov5-7/+117
RISC-V ISA states (21.1): "A standard-compatible global encoding can also use standard prefixes for non-standard extensions if the associated standard extensions are not included in the global encoding." Currently all the instructions (either from standard or custom extensions) are all being inserted into a single std::vector which is then being sorted. An instruction matching process performs linear search on that vector. The problem is that when a custom extension uses the same opcode as standard one (i.e. match and mask are equal to the standard counterparts) it is undefined which instruction will be picked. That is because in std::sort "The order of equal elements is not guaranteed to be preserved". That being said it is impossible to define custom extension (via customext) that would use the prefix of a disabled standard extension. In this change I separate custom and standard extensions in two separate std::vector's. By default we report an error if they have common elements (There're an additional processor_t constructor's argument that skips this check). If this error is disabled during instruction matching we first trying to find it among custom instructions. If it has been found the search is stopped and custom instruction is executed, otherwise we look for it among standard instructions. Overall this change does not completely fix the problem but at least makes it possible to use the feature of RISC-V ISA.
2023-12-08Rely on default initializer to provide debug_module_config_t defaultsJerry Zhao1-11/+1
2023-12-08Remove old explicit-fields cfg_t constructor, switch to default constructorJerry Zhao1-15/+1
2023-12-08Remove cfg_arg_t from cfg_tJerry Zhao1-1/+1
Argument parsing should be scoped to the code which constucts cfg_t
2023-12-08Fix Spike --device option to pass on args to downstream pluginsjoey03201-1/+1
2023-11-04expose pmp granularity as a cli option.Karthik B K1-0/+1
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>
2023-07-20Introduce `abstract_mem_t` to allow custom implementationsMichal Terepeta1-3/+4
This change allows to create custom implementations of `abstract_mem_t` and inject them when constructing `sim_t`. The current `mem_t` implementation remains unchanged. Fixes #1408.
2023-06-20devices: Switch plugin device interface to use device_factory_tJerry Zhao1-1/+1
Plugins should now implement and register a device_factory_t to configure how that device should be parsed from a FDT, and an optional default DTS string. This drops support for command-line flag-based device configuration
2023-06-20sim_t: change plugin_devices to a vec of shared_ptrsJerry Zhao1-1/+1
2023-06-17Run 'make check' in CIAndrew Waterman1-0/+1
2023-06-12ci: CI should check each commit in a PRJerry Zhao1-0/+2
test
2023-02-27Use size_t, rather than int, for hartidsAndrew Waterman1-1/+1
They aren't signed quantities.
2023-01-27Remove dirty_enabled from cfg_tAaron Durbin1-1/+0
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.
2023-01-18Add trigger_count field to cfg_tJerry Zhao1-1/+2
2023-01-11Use nproc or hw.ncpu instead of -j4 to build spike.Tim Newsome1-1/+1
2023-01-11Refactor build-spike out of test-spike.Tim Newsome2-9/+14
2023-01-09implement get_size() getter for mem_cfg_t objectParshintsev Anatoly1-1/+1
NFT. We also mark `base` and `size` fields as private.
2023-01-09implement get_base() getter for mem_cfg_t objectParshintsev Anatoly1-1/+1
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.
2023-01-04Add cfg_t field to enable PTE dirtyingJerry Zhao1-0/+1
2023-01-04Untabify ci-tests/testlib.cJerry Zhao1-19/+19
2023-01-03Add --[no-]misaligned command-line optionsAndrew Waterman1-0/+1
They don't do anything yet.
2022-12-16Add github actions test that installed headers are usableJerry Zhao2-0/+58
2022-10-05Engage non-virtual-dtor warning in CI testsAndrew Waterman1-1/+1
2022-10-04Expand set of warnings we error on in CIAndrew Waterman1-1/+1
2022-09-23Actually run a program in CIAndrew Waterman3-0/+51
To avoid long CI times, keep the program in binary form. To avoid storing binary files in this repository, store the binaries as an asset on a github release.
2022-09-23In CI, check that help message prints without errorAndrew Waterman1-0/+3
2022-09-22Run CI with -WerrorAndrew Waterman1-1/+1
2020-09-22Add basic continuous-integration flowAndrew Waterman1-0/+11