Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
When a single abstract command writes s0 and executes a program buffer
that leads to an exception, the value of s0 should still persist. The
fact that it did not masked the following bug in OpenOCD:
https://github.com/riscv/riscv-openocd/issues/559
|
|
Introduced in #527.
|
|
|
|
|
|
1. add new hypervisor csr
2. add debug module csr
3. add some new high part register for rv32
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
|
|
This would have prevented the regression in #409.
|
|
|
|
|
|
* Don't corrupt s0 when abstract CSR write fails.
* Support abstract FPR access then mstatus.FS=0
Discussion on the spec list leans towards this being a requirement.
Certainly users want their debugger to be able to access all registers
regardless of target state.
|
|
* 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.
|
|
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.
|
|
* 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.
|
|
* Update debug_defines from latest spec.
* Implement halt groups.
This lets the debugger halt multiple harts near simultaneously.
* Revert encoding, which I updated accidentally.
|
|
Add --dmi-rti and --abstract-rti to test OpenOCD.
|
|
Optionally make spike behave more like real hardware, to automatically
test OpenOCD's handling of such hardware.
|
|
Now we do what the spec says we should do. This ended up not having any
effect on the current way OpenOCD performs system bus accesses.
|
|
Fixes #234.
|
|
|
|
Add support for hartselhi parsing, but other parts of the debug code
still don't support more than 1024 harts.
|
|
By separating the simif_t declaration from the sim_t declaration, the
simif_t declaration no longer depends on fesvr header files. This
simplifies compilation of custom sim class implementations that don't
depend on fesvr.
|
|
|
|
Add debug module authentication.
|
|
The installed header files from the riscv subproject were incomplete, since
processor.h includes debug_rom_defines.h, and the latter was not installed.
Fix by moving it into riscv/, add it to the riscv subproject header list, which
ensures it will get installed. While here, also add a missed dependency of debug_rom
on riscv/encoding.h to debug_rom/Makefile.
|
|
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
|
|
|
|
|
|
This lets the user control whether the system bus access implements bus
mastering.
|
|
|
|
|
|
|
|
|
|
Also add an implicit ebreak after the program buffer. This is not part
of the spec, but hopefully it will be.
|
|
|
|
ndmreset now resets all harts (instead of just the current hart), and
hartreset resets the selected hart (instead of being ignored).
|
|
|
|
Nobody wants to see all that, and if they do they should recompile.
|
|
In an older implementation I was thinking of having different entry
points for different harts, but that's no longer true.
Also get rid of a bunch of trailing whitespace.
|
|
This bug was exposed by newer OpenOCD which actually checks the result.
|
|
|
|
|
|
|
|
|
|
|
|
bugs.
|
|
|
|
|
|
|
|
|
|
|