pmpaddr14
PMP Address 14
PMP entry address
Attributes
CSR Address |
0x3be |
---|---|
Defining extension |
|
Length |
64-bit |
Privilege Mode |
M |
Fields
ADDR
- Location
-
pmpaddr14[63:0]
- Description
-
Bits PHYS_ADDR_WIDTH-1:2 of the address specifier for PMP entry 14 (or, if
pmp15cfg.A
== TOR, for PMP entry 15). - Type
RO |
Read-Only Field has a hardwired value that does not change. Writes to an RO field are ignored. |
- Reset value
-
0
- Software write
-
This field has special behavior when written by software (e.g., through csrrw).
When software tries to write
csr_value
, the field will be written with the return value of the function below.if (csr_value.ADDR >= (14)) { return UNDEFINED_LEGAL_DETERMINISTIC; } else { return csr_value.ADDR; }
Software read
This CSR may return a value that is different from what is stored in hardware.
-
Pruned
-
Original
if ((%%LINK%csr_field;pmpcfg2.pmp14cfg;CSR[pmpcfg2].pmp14cfg%%[4] == 0)) {
Bits<PHYS_ADDR_WIDTH - 2> mask = {10{1'b1}};
return %%LINK%csr_field;pmpaddr14.ADDR;CSR[pmpaddr14].ADDR%% & ~mask;
} else {
return %%LINK%csr_field;pmpaddr14.ADDR;CSR[pmpaddr14].ADDR%%;
}
if (MXLEN == 32) {
if ((PMP_GRANULARITY >= 16) && (%%LINK%csr_field;pmpcfg3.pmp14cfg;CSR[pmpcfg3].pmp14cfg%%[4] == 1)) {
return %%LINK%csr_field;pmpaddr14.ADDR;CSR[pmpaddr14].ADDR%% | {PMP_GRANULARITY - 3{1'b1}};
} else if ((PMP_GRANULARITY >= 8) && (%%LINK%csr_field;pmpcfg3.pmp14cfg;CSR[pmpcfg3].pmp14cfg%%[4] == 0)) {
Bits<PHYS_ADDR_WIDTH - 2> mask = {PMP_GRANULARITY - 2{1'b1}};
return %%LINK%csr_field;pmpaddr14.ADDR;CSR[pmpaddr14].ADDR%% & ~mask;
} else {
return %%LINK%csr_field;pmpaddr14.ADDR;CSR[pmpaddr14].ADDR%%;
}
} else {
if ((PMP_GRANULARITY >= 16) && (%%LINK%csr_field;pmpcfg2.pmp14cfg;CSR[pmpcfg2].pmp14cfg%%[4] == 1)) {
return %%LINK%csr_field;pmpaddr14.ADDR;CSR[pmpaddr14].ADDR%% | {PMP_GRANULARITY - 3{1'b1}};
} else if ((PMP_GRANULARITY >= 8) && (%%LINK%csr_field;pmpcfg2.pmp14cfg;CSR[pmpcfg2].pmp14cfg%%[4] == 0)) {
Bits<PHYS_ADDR_WIDTH - 2> mask = {PMP_GRANULARITY - 2{1'b1}};
return %%LINK%csr_field;pmpaddr14.ADDR;CSR[pmpaddr14].ADDR%% & ~mask;
} else {
return %%LINK%csr_field;pmpaddr14.ADDR;CSR[pmpaddr14].ADDR%%;
}
}