aboutsummaryrefslogtreecommitdiff
path: root/riscv/sim.cc
AgeCommit message (Collapse)AuthorFilesLines
2020-12-01Fix Issue #609 (#610)Will Hawkins1-5/+1
Fix Issue #609 where extraneous debugging output was added when the user invoked any simulation operation that involved addr_to_mem.
2020-11-29Fix #607: Add a core parameter to the interactive str command (#608)Will Hawkins1-1/+5
Add a core parameter to the interactive str command. This makes it possible for the spike user to specify the device whose memory contains the NUL-terminated string to be printed.
2020-11-15dts: config pmp attribute by each core's settingChih-Min Chao1-12/+13
The original implementation only uses the value in first core and apply it to other core. The patch makes the configuration hetergeneous for differenct cores. Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
2020-11-11dts: mmu: parse mmu-type in dtsChih-Min Chao1-0/+48
1. setup allowed mmu-type from dts 2. change default mmu-type in dts from sv39 to sv48 Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
2020-11-07Allow fixed endianness to be observed through MBE/SBE/UBEMarcus Comstedt1-0/+1
2020-11-07Tag target endian values to help guide conversion codeMarcus Comstedt1-1/+1
2020-11-07Implement support for big-endian targetsMarcus Comstedt1-4/+42
2020-09-29Adding symbol lookup when --enable-commitlog is enabled (#558)sthiruva1-0/+5
* Adding symbol lookup when --enable-commitlog is enabled * Removed the #ifdef RISCV_ENABLE_COMMITLOG for all get_symbol related function Only retained the in processor.cc where it is called. Co-authored-by: Shajid Thiruvathodi <sthiruva@valtrix.in>
2020-07-09Add bootargs command-line option to SpikeAnup Patel1-3/+4
We add bootargs command-line option to Spike which allows us to provide custom kernel parameters to Linux and Xvisor. Signed-off-by: Anup Patel <anup.patel@wdc.com>
2020-05-09Support consuming PMP number and granularity from DTBAndrew Waterman1-0/+9
The feature itself isn't implemented yet.
2020-04-27fdt: restructure dtb create and config flowChih-Min Chao1-8/+45
1. pass dtb option from constructor 2. separate dtb generation from rom initialization 3. setup clint base from dtb Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
2020-04-27fdt: option: add --dtb option to specify dtb binary fileChih-Min Chao1-2/+17
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
2020-03-29Fix debug segfault by partially reverting #409Andrew Waterman1-2/+3
2020-03-27Write execution logs to a named log file (#409)Rupert Swarbrick1-25/+33
This patch adds a --log argument to spike. If not given, the behaviour is unchanged: messages logging execution of instructions and (if commit logging is enabled) commits go to stderr. If --log=P is given, Spike now writes these messages to a log file at the path P. This is nice, because they are no longer tangled up with other errors and warnings. The code is mostly plumbing: passing a FILE* object through to the functions that were using stderr. I've written a simple "log_file_t" class, which opens a log file if necessary and yields it or stderr.
2020-02-15Make CLINT API use Hz instead of MHzAndrew Waterman1-1/+1
2020-02-15Add optional support for real-time clintAnup Patel1-2/+3
This patch adds optional support clint timer incrementing at real-time rate. This can be enabled by passing command line parameter "--real-time-clint". This feature can be used for: 1. Checking whether any code addition to Spike is slowing down simulation too much 2. Comparing run-time for software on Spike with other functional simulators (such as QEMU) Signed-off-by: Anup Patel <anup.patel@wdc.com>
2020-02-14Make spike capable of booting LinuxAnup Patel1-3/+3
Latest Linux does not boot Spike mainly because: 1. Spike does not set bootargs in DTS 2. Spike does not provide mechanism to load initrd for Linux This patch addresses both above issues and we can now get latest Linux to prompt on Spike. Signed-off-by: Anup Patel <anup.patel@wdc.com>
2019-11-12Add --priv option to control which privilege modes are availableAndrew Waterman1-3/+4
2019-10-28Implement support for big-endian hostsMarcus Comstedt1-2/+5
2019-10-16Enforce 2^56-bit physical address limitAndrew Waterman1-2/+9
It's very difficult to encounter this (need to manually place a device or memory at very high addresses), but it is technically a Spike bug.
2019-09-18Adds --log-commits commandline option. (#323)dave-estes-syzexion1-1/+10
* Adds --log-commits commandline option. Similar to histogram support, the commit logging feature must be enabled with a configure option: --enable-commitlog. However, unlike that feature, there was no way to turn off the logging with a commandline option once the functionality was built in. This (git) commit provides that abilty. * Changes addressing review feedback.
2019-07-22Implement MMIO device plugins.Aaron Jones1-4/+8
2019-06-14rvv: add varch option parser and initialize vector unitChih-Min Chao1-4/+4
the default vector parameters are defined in configuration time but can be changed throught command-line option Signed-off-by: Dave Wen <dave.wen@sifive.com>
2019-05-14Clean up debug module options. (#299)Tim Newsome1-7/+3
* Clean up debug module options. 1. Instead of passing each one a few levels deep, create debug_module_config_t which contains them all. 2. Rename all those command line options so they start with --dm for debug module. 3. Add --dm-no-halt-groups to disable halt group support. * Update changelog.
2019-04-04Add --debug-no-abstract-csr (#267)Tim Newsome1-2/+4
This is used to make sure that OpenOCD can work on targets that don't support abstract access to CSR registers. It replaces a simpler hack, which caused #266.
2019-04-02Implement debug hasel support (#287)Tim Newsome1-2/+2
* Implement hasel/hawindow support. This should allow simultaneous resume and halt to work. * Fix anyrunning/anyhalted bits. * Add --without-hasel argument for testing. * Make halt/resume times more equal. Switching threads after every instruction executed in debug mode leads to a lot of extra instructions being executed on the "other" thread when both are really supposed to halt/resume near-simultaneously. Fixed that by adding wfi to debug_rom.S, and implementing it to switch to the other hart as well as check for JTAG input. When resuming, write the hart ID to the debug ROM so that the DM knows which hart actually resumed. (Before simultaneous resume it just assumed the current one.) Also got rid of resume symbol in debug_rom.S since it had no purpose. * Preserve Debug ROM entry points. * Make sure minstret is correct when wfi happens.
2018-12-13Add --dmi-rti and --abstract-rti to test OpenOCD.Tim Newsome1-2/+4
Optionally make spike behave more like real hardware, to automatically test OpenOCD's handling of such hardware.
2018-08-23Add --disable-dtb option to suppress writing the DTB to memoryAndrew Waterman1-2/+3
2018-07-10Refactor and fix LR/SC implementation (#217)Andrew Waterman1-1/+1
- Use physical addresses to avoid homonym ambiguity (closes #215) - Yield reservation on store-conditional (https://github.com/riscv/riscv-isa-manual/commit/03a5e722fc0fe7b94dd0a49f550ff7b41a63f612) - Don't yield reservation on exceptions (it's no longer required).
2018-05-18Extract out device-tree generation and compilation into an exported api. (#197)Prashanth Mundkur1-142/+2
2018-03-16Implement debug havereset bitsTim Newsome1-0/+5
2018-03-07Merge pull request #177 from riscv/debug_authTim Newsome1-2/+3
Add debug module authentication.
2018-03-06Narrow the interface used by the processors and memory to the top-level ↵Prashanth Mundkur1-3/+3
simulator/htif. This allows the implementation of an alternative top-level simulator class.
2018-02-27Add debug module authentication.Tim Newsome1-2/+3
Off by default, enabled with --debug-auth. The protocol is very simple (definitely not secure) to allow debuggers to test their authentication feature. To authenticate a debugger must: 1. Read authdata 2. Write to authdata the value that it just read, plus 1
2018-02-01Add --debug-sba optionTim Newsome1-2/+3
This lets the user control whether the system bus access implements bus mastering.
2018-01-18Support debug system bus access.Tim Newsome1-4/+3
2017-12-11Make progbuf a run-time option.Tim Newsome1-2/+4
Also add an implicit ebreak after the program buffer. This is not part of the spec, but hopefully it will be.
2017-11-15Merge pull request #156 from p12nGH/noncontiguous_hartsAndrew Waterman1-3/+14
Support for non-contiguous hartids
2017-11-15Support for non-contiguous hartidsGleb Gagarin1-3/+14
2017-11-03Put HTIF in the device treePalmer Dabbelt1-0/+3
I wanted to actually put the address of the HTIF into the DTS, but that seems to be a bit too much work: since the HTIF addresses are just defined in an ELF file it's a bit awkward to make that work. Instead, I'm just putting a dummy HTIF key in the DTS.
2017-06-14Support 64-bit start PCs in reset vector.Tim Newsome1-12/+10
2017-05-16Merge remote-tracking branch 'origin/debug-0.13' into priv-1.10Palmer Dabbelt1-6/+6
2017-05-01Fix segfault when accessing bad memory addressesAndrew Waterman1-2/+3
2017-05-01Set default entry point from ELFAndrew Waterman1-2/+6
2017-04-30Add option to set start pcAndrew Waterman1-8/+18
2017-04-30Support more flexible main memory allocationAndrew Waterman1-24/+21
2017-04-17Merge remote-tracking branch 'origin/priv-1.10' into HEADMegan Wachs1-48/+156
2017-03-30fdt: move interrupt controller into its own nodeWesley W. Terpstra1-4/+7
2017-03-24Default to 2 GiB of memoryAndrew Waterman1-1/+1
2017-03-22riscv: replace rtc device with a real clint implementationWesley W. Terpstra1-13/+11