mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
target/riscv: Add textra matching condition for the triggers
According to RISC-V Debug specification, the optional textra32 and textra64 trigger CSRs can be used to configure additional matching conditions for the triggers. For example, if the textra.MHSELECT field is set to 4 (mcontext), this trigger will only match or fire if the low bits of mcontext/hcontext equal textra.MHVALUE field. This commit adds the aforementioned matching condition as common trigger matching conditions. Currently, the only legal values of textra.MHSELECT are 0 (ignore) and 4 (mcontext). When textra.MHSELECT is 0, we pass the checking. When textra.MHSELECT is 4, we compare textra.MHVALUE with mcontext CSR. The remaining fields, such as textra.SBYTEMASK, textra.SVALUE, and textra.SSELECT, are hardwired to zero for now. Thus, we skip checking them here. Signed-off-by: Alvin Chang <alvinga@andestech.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20240826024657.262553-3-alvinga@andestech.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
c4db48cc24
commit
6ffe9b6669
2 changed files with 47 additions and 1 deletions
|
@ -131,6 +131,9 @@ enum {
|
|||
#define ITRIGGER_VU BIT(25)
|
||||
#define ITRIGGER_VS BIT(26)
|
||||
|
||||
#define MHSELECT_IGNORE 0
|
||||
#define MHSELECT_MCONTEXT 4
|
||||
|
||||
bool tdata_available(CPURISCVState *env, int tdata_index);
|
||||
|
||||
target_ulong tselect_csr_read(CPURISCVState *env);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue