0
WARL/读为零RV64:标准 pmpaddr 格式的高 10 位为 0;该段属于 WARL 格式。
这个字段控制什么
- - RV64:标准 pmpaddr 格式的高 10 位为 0;该段属于 WARL 格式。
pmpaddr22(0x3C6)是实现 64 个 PMP entries 时提供的 Machine PMP entry 22 WARL 地址寄存器;RV32 编码物理地址位 33:2,RV64 编码位 55:2。
RV64:标准 pmpaddr 格式的高 10 位为 0;该段属于 WARL 格式。
RV64:编码 56 位物理地址的位 55:2。未实现的物理地址位使该字段呈 WARL 行为;所有 PMP CSR 字段均可实现为只读零。
pmpaddr22 是实现 64 个 PMP entries 时提供的 entry 22 MXLEN 位 WARL 地址编码。其含义由 pmp22cfg.A 决定;TOR 使用 pmpaddr21 作为下界。
读取 pmp22cfg.A,确定 entry 22 使用 OFF、TOR、NA4 还是 NAPOT。
按所选模式写 pmpaddr22;TOR 还需配置下界 pmpaddr21,NAPOT 的低位编码范围大小。
读回 pmpaddr22 与对应 pmpcfg CSR,确认 WARL/grain 后的实际编码;仅在最终确认后设置 pmp22cfg.L。
当 pmp22cfg.A=TOR 时,pmpaddr21 提供下界,pmpaddr22 提供上界,entry 22 匹配半开区间 pmpaddr21 <= y < pmpaddr22;下界不小于上界时不匹配任何地址。
pmpaddr22 是 WARL,且平台 grain 与 pmp22cfg.A[1] 会掩码低位读回:NAPOT 可读为 1,OFF/TOR 可读为 0。改变 A[1] 不改变底层保存值。