Make m*deleg regs conditional on U/S/N
Change-Id: I544fc15625400d8ad64d4a65f0fc9d77f428ca84
This commit is contained in:
parent
ca13327abf
commit
b6dca68b2e
|
@ -2323,6 +2323,15 @@ int riscv_init_registers(struct target *target)
|
|||
case CSR_SATP:
|
||||
r->exist = riscv_supports_extension(target, 'S');
|
||||
break;
|
||||
case CSR_MEDELEG:
|
||||
case CSR_MIDELEG:
|
||||
/* "In systems with only M-mode, or with both M-mode and
|
||||
* U-mode but without U-mode trap support, the medeleg and
|
||||
* mideleg registers should not exist." */
|
||||
r->exist = (riscv_supports_extension(target, 'S') ||
|
||||
riscv_supports_extension(target, 'U')) &&
|
||||
!riscv_supports_extension(target, 'N');
|
||||
break;
|
||||
}
|
||||
|
||||
if (!r->exist && expose_csr) {
|
||||
|
|
Loading…
Reference in New Issue