diff options
author | Evgeniy Naydanov <evgeniy.naydanov@syntacore.com> | 2024-07-10 17:41:33 +0300 |
---|---|---|
committer | Evgeniy Naydanov <evgeniy.naydanov@syntacore.com> | 2024-09-05 12:59:35 +0300 |
commit | 5a8697b3cf5c4e4abde77ac1726a76877592dfa9 (patch) | |
tree | 07a5966d5e2142c939da92e5ef63d85d59b0a8d7 /git-hooks/commit-msg | |
parent | 5afed58fcdb67ff87842dad9c3ab7f73ca0c8cd8 (diff) | |
download | riscv-openocd-5a8697b3cf5c4e4abde77ac1726a76877592dfa9.zip riscv-openocd-5a8697b3cf5c4e4abde77ac1726a76877592dfa9.tar.gz riscv-openocd-5a8697b3cf5c4e4abde77ac1726a76877592dfa9.tar.bz2 |
target/riscv: manage triggers available to OpenOCD for internal use
Before the change, if the user wrote to any `tdata*` register, OpenOCD
would sometimes start to disable all the triggers (by writing zeroes to
`tdata1`) and re-enable them again (by witing all trigger registers to the
values read before for each `tselect` value), e.g. on `step`
(see `disable/enable_triggers()`).
There are a couple of issues with such approach:
1. RISC-V Debug Specification does not require custom register types
to support re-enabling by such sequence of writes (e.g. some custom
trigger type may require writing a custom CSR to enable it).
2. OpenOCD may still overwrite these triggers when a user asks to set a
new WP.
This commit introduces `riscv reserve_trigger ...` command to explicitly
mark the triggers OpenOCD should not touch.
Such approach allows to separate management of custom triggers and
offload it onto the user (e.g. disable/enable such triggers by setting up
an event handler on `step`-related events).
Change-Id: I3339000445185ab221368442a070f412bf44bfab
Signed-off-by: Evgeniy Naydanov <evgeniy.naydanov@syntacore.com>
Diffstat (limited to 'git-hooks/commit-msg')
0 files changed, 0 insertions, 0 deletions