CSR 位字段

RISC-V pmpcfg2 CSR 寄存器详解

地址 0x3A2特权级 Machine 模式访问 读写 / XLENMachine 物理内存保护 CSR

pmpcfg2 是物理内存保护配置 CSR,描述一组 PMP 区域的读/写/执行权限、地址匹配方式和锁定位。

字段映射

按 bit 字段理解 pmpcfg2

48 个关键字段
7

pmp8cfg.L

读写

PMP 条目 8 的锁定位。

这个字段控制什么

  • - PMP 条目 8 的锁定位。

常见取值

pmp8cfg.L
0未锁定

PMP entry 8 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr8 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 8 锁定;写入 pmp8cfg 和 pmpaddr8 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr7 也会被锁定。

打开官方手册
6:5

pmp8cfg.reserved

只读

PMP 条目 8 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 8 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
4:3

pmp8cfg.A

读写

PMP 条目 8 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 8 的地址匹配模式。

常见取值

pmp8cfg.A
0OFF

PMP entry 8 关闭,匹配空区域。

1TOR

PMP entry 8 使用 top-of-range 匹配;上界来自 pmpaddr8,下界来自 pmpaddr7。

2NA4

PMP entry 8 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 8 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr8 的低位编码。

打开官方手册
2

pmp8cfg.X

读写

PMP 条目 8 的执行权限。

这个字段控制什么

  • - PMP 条目 8 的执行权限。

常见取值

pmp8cfg.X
0禁止执行

PMP entry 8 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 8 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
1

pmp8cfg.W

读写

PMP 条目 8 的写权限。

这个字段控制什么

  • - PMP 条目 8 的写权限。

常见取值

pmp8cfg.W
0禁止写

PMP entry 8 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 8 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
0

pmp8cfg.R

读写

PMP 条目 8 的读权限。

这个字段控制什么

  • - PMP 条目 8 的读权限。

常见取值

pmp8cfg.R
0禁止读

PMP entry 8 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 8 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
15

pmp9cfg.L

读写

PMP 条目 9 的锁定位。

这个字段控制什么

  • - PMP 条目 9 的锁定位。

常见取值

pmp9cfg.L
0未锁定

PMP entry 9 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr9 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 9 锁定;写入 pmp9cfg 和 pmpaddr9 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr8 也会被锁定。

打开官方手册
14:13

pmp9cfg.reserved

只读

PMP 条目 9 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 9 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
12:11

pmp9cfg.A

读写

PMP 条目 9 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 9 的地址匹配模式。

常见取值

pmp9cfg.A
0OFF

PMP entry 9 关闭,匹配空区域。

1TOR

PMP entry 9 使用 top-of-range 匹配;上界来自 pmpaddr9,下界来自 pmpaddr8。

2NA4

PMP entry 9 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 9 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr9 的低位编码。

打开官方手册
10

pmp9cfg.X

读写

PMP 条目 9 的执行权限。

这个字段控制什么

  • - PMP 条目 9 的执行权限。

常见取值

pmp9cfg.X
0禁止执行

PMP entry 9 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 9 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
9

pmp9cfg.W

读写

PMP 条目 9 的写权限。

这个字段控制什么

  • - PMP 条目 9 的写权限。

常见取值

pmp9cfg.W
0禁止写

PMP entry 9 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 9 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
8

pmp9cfg.R

读写

PMP 条目 9 的读权限。

这个字段控制什么

  • - PMP 条目 9 的读权限。

常见取值

pmp9cfg.R
0禁止读

PMP entry 9 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 9 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
23

pmp10cfg.L

读写

PMP 条目 10 的锁定位。

这个字段控制什么

  • - PMP 条目 10 的锁定位。

常见取值

pmp10cfg.L
0未锁定

PMP entry 10 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr10 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 10 锁定;写入 pmp10cfg 和 pmpaddr10 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr9 也会被锁定。

打开官方手册
22:21

pmp10cfg.reserved

只读

PMP 条目 10 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 10 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
20:19

pmp10cfg.A

读写

PMP 条目 10 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 10 的地址匹配模式。

常见取值

pmp10cfg.A
0OFF

PMP entry 10 关闭,匹配空区域。

1TOR

PMP entry 10 使用 top-of-range 匹配;上界来自 pmpaddr10,下界来自 pmpaddr9。

2NA4

PMP entry 10 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 10 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr10 的低位编码。

打开官方手册
18

pmp10cfg.X

读写

PMP 条目 10 的执行权限。

这个字段控制什么

  • - PMP 条目 10 的执行权限。

常见取值

pmp10cfg.X
0禁止执行

PMP entry 10 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 10 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
17

pmp10cfg.W

读写

PMP 条目 10 的写权限。

这个字段控制什么

  • - PMP 条目 10 的写权限。

常见取值

pmp10cfg.W
0禁止写

PMP entry 10 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 10 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
16

pmp10cfg.R

读写

PMP 条目 10 的读权限。

这个字段控制什么

  • - PMP 条目 10 的读权限。

常见取值

pmp10cfg.R
0禁止读

PMP entry 10 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 10 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
31

pmp11cfg.L

读写

PMP 条目 11 的锁定位。

这个字段控制什么

  • - PMP 条目 11 的锁定位。

常见取值

pmp11cfg.L
0未锁定

PMP entry 11 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr11 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 11 锁定;写入 pmp11cfg 和 pmpaddr11 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr10 也会被锁定。

打开官方手册
30:29

pmp11cfg.reserved

只读

PMP 条目 11 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 11 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
28:27

pmp11cfg.A

读写

PMP 条目 11 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 11 的地址匹配模式。

常见取值

pmp11cfg.A
0OFF

PMP entry 11 关闭,匹配空区域。

1TOR

PMP entry 11 使用 top-of-range 匹配;上界来自 pmpaddr11,下界来自 pmpaddr10。

2NA4

PMP entry 11 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 11 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr11 的低位编码。

打开官方手册
26

pmp11cfg.X

读写

PMP 条目 11 的执行权限。

这个字段控制什么

  • - PMP 条目 11 的执行权限。

常见取值

pmp11cfg.X
0禁止执行

PMP entry 11 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 11 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
25

pmp11cfg.W

读写

PMP 条目 11 的写权限。

这个字段控制什么

  • - PMP 条目 11 的写权限。

常见取值

pmp11cfg.W
0禁止写

PMP entry 11 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 11 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
24

pmp11cfg.R

读写

PMP 条目 11 的读权限。

这个字段控制什么

  • - PMP 条目 11 的读权限。

常见取值

pmp11cfg.R
0禁止读

PMP entry 11 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 11 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
39

pmp12cfg.L

读写

PMP 条目 12 的锁定位。

这个字段控制什么

  • - PMP 条目 12 的锁定位。

常见取值

pmp12cfg.L
0未锁定

PMP entry 12 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr12 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 12 锁定;写入 pmp12cfg 和 pmpaddr12 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr11 也会被锁定。

打开官方手册
38:37

pmp12cfg.reserved

只读

PMP 条目 12 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 12 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
36:35

pmp12cfg.A

读写

PMP 条目 12 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 12 的地址匹配模式。

常见取值

pmp12cfg.A
0OFF

PMP entry 12 关闭,匹配空区域。

1TOR

PMP entry 12 使用 top-of-range 匹配;上界来自 pmpaddr12,下界来自 pmpaddr11。

2NA4

PMP entry 12 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 12 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr12 的低位编码。

打开官方手册
34

pmp12cfg.X

读写

PMP 条目 12 的执行权限。

这个字段控制什么

  • - PMP 条目 12 的执行权限。

常见取值

pmp12cfg.X
0禁止执行

PMP entry 12 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 12 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
33

pmp12cfg.W

读写

PMP 条目 12 的写权限。

这个字段控制什么

  • - PMP 条目 12 的写权限。

常见取值

pmp12cfg.W
0禁止写

PMP entry 12 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 12 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
32

pmp12cfg.R

读写

PMP 条目 12 的读权限。

这个字段控制什么

  • - PMP 条目 12 的读权限。

常见取值

pmp12cfg.R
0禁止读

PMP entry 12 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 12 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
47

pmp13cfg.L

读写

PMP 条目 13 的锁定位。

这个字段控制什么

  • - PMP 条目 13 的锁定位。

常见取值

pmp13cfg.L
0未锁定

PMP entry 13 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr13 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 13 锁定;写入 pmp13cfg 和 pmpaddr13 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr12 也会被锁定。

打开官方手册
46:45

pmp13cfg.reserved

只读

PMP 条目 13 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 13 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
44:43

pmp13cfg.A

读写

PMP 条目 13 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 13 的地址匹配模式。

常见取值

pmp13cfg.A
0OFF

PMP entry 13 关闭,匹配空区域。

1TOR

PMP entry 13 使用 top-of-range 匹配;上界来自 pmpaddr13,下界来自 pmpaddr12。

2NA4

PMP entry 13 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 13 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr13 的低位编码。

打开官方手册
42

pmp13cfg.X

读写

PMP 条目 13 的执行权限。

这个字段控制什么

  • - PMP 条目 13 的执行权限。

常见取值

pmp13cfg.X
0禁止执行

PMP entry 13 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 13 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
41

pmp13cfg.W

读写

PMP 条目 13 的写权限。

这个字段控制什么

  • - PMP 条目 13 的写权限。

常见取值

pmp13cfg.W
0禁止写

PMP entry 13 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 13 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
40

pmp13cfg.R

读写

PMP 条目 13 的读权限。

这个字段控制什么

  • - PMP 条目 13 的读权限。

常见取值

pmp13cfg.R
0禁止读

PMP entry 13 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 13 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
55

pmp14cfg.L

读写

PMP 条目 14 的锁定位。

这个字段控制什么

  • - PMP 条目 14 的锁定位。

常见取值

pmp14cfg.L
0未锁定

PMP entry 14 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr14 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 14 锁定;写入 pmp14cfg 和 pmpaddr14 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr13 也会被锁定。

打开官方手册
54:53

pmp14cfg.reserved

只读

PMP 条目 14 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 14 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
52:51

pmp14cfg.A

读写

PMP 条目 14 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 14 的地址匹配模式。

常见取值

pmp14cfg.A
0OFF

PMP entry 14 关闭,匹配空区域。

1TOR

PMP entry 14 使用 top-of-range 匹配;上界来自 pmpaddr14,下界来自 pmpaddr13。

2NA4

PMP entry 14 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 14 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr14 的低位编码。

打开官方手册
50

pmp14cfg.X

读写

PMP 条目 14 的执行权限。

这个字段控制什么

  • - PMP 条目 14 的执行权限。

常见取值

pmp14cfg.X
0禁止执行

PMP entry 14 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 14 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
49

pmp14cfg.W

读写

PMP 条目 14 的写权限。

这个字段控制什么

  • - PMP 条目 14 的写权限。

常见取值

pmp14cfg.W
0禁止写

PMP entry 14 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 14 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
48

pmp14cfg.R

读写

PMP 条目 14 的读权限。

这个字段控制什么

  • - PMP 条目 14 的读权限。

常见取值

pmp14cfg.R
0禁止读

PMP entry 14 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 14 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
63

pmp15cfg.L

读写

PMP 条目 15 的锁定位。

这个字段控制什么

  • - PMP 条目 15 的锁定位。

常见取值

pmp15cfg.L
0未锁定

PMP entry 15 未锁定;该 entry 的配置可按 WARL 规则修改。M-mode 命中该 entry 的访问会成功,R/W/X 权限只约束 S/U 有效特权访问。注意 pmpaddr15 仍可能因后一条 locked TOR entry 而被锁定。

1锁定

PMP entry 15 锁定;写入 pmp15cfg 和 pmpaddr15 会被忽略直到 hart reset,并且 R/W/X 权限施加到所有特权模式。若 A=TOR,pmpaddr14 也会被锁定。

打开官方手册
62:61

pmp15cfg.reserved

只读

PMP 条目 15 的保留位;写入按 WARL/保留位规则处理。

这个字段控制什么

  • - PMP 条目 15 的保留位;写入按 WARL/保留位规则处理。

常见取值

这个字段更适合结合上下文字段解释,不用按固定枚举背诵。

打开官方手册
60:59

pmp15cfg.A

读写

PMP 条目 15 的地址匹配模式。

这个字段控制什么

  • - PMP 条目 15 的地址匹配模式。

常见取值

pmp15cfg.A
0OFF

PMP entry 15 关闭,匹配空区域。

1TOR

PMP entry 15 使用 top-of-range 匹配;上界来自 pmpaddr15,下界来自 pmpaddr14。

2NA4

PMP entry 15 匹配自然对齐的 4 字节区域;若平台 PMP grain 不支持 NA4,该编码不可选择。

3NAPOT

PMP entry 15 匹配自然对齐的 2 的幂大小区域,大小至少 8 字节,范围大小由 pmpaddr15 的低位编码。

打开官方手册
58

pmp15cfg.X

读写

PMP 条目 15 的执行权限。

这个字段控制什么

  • - PMP 条目 15 的执行权限。

常见取值

pmp15cfg.X
0禁止执行

PMP entry 15 不授予执行权限;命中该 entry 的 S/U 取指会失败,M-mode 取指仅在该 entry 锁定时受此位约束。

1允许执行

PMP entry 15 授予执行权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
57

pmp15cfg.W

读写

PMP 条目 15 的写权限。

这个字段控制什么

  • - PMP 条目 15 的写权限。

常见取值

pmp15cfg.W
0禁止写

PMP entry 15 不授予写权限;命中该 entry 的 S/U store/AMO 等写类访问会失败,M-mode 写访问仅在该 entry 锁定时受此位约束。

1允许写(需 R=1)

PMP entry 15 授予写权限,前提是 R=1;R=0 且 W=1 是官方保留组合,不是可移植配置。

打开官方手册
56

pmp15cfg.R

读写

PMP 条目 15 的读权限。

这个字段控制什么

  • - PMP 条目 15 的读权限。

常见取值

pmp15cfg.R
0禁止读

PMP entry 15 不授予读权限;命中该 entry 的 S/U 读访问会失败,M-mode 读访问仅在该 entry 锁定时受此位约束。

1允许读

PMP entry 15 授予读权限,前提是该 entry 匹配且其他 PMP/PMA/特权规则也允许。

打开官方手册
官方依据与检索要点

pmpcfg2 是 Machine 物理内存保护 CSR 中的 读写 CSR,地址为 0x3A2。先确认当前特权级和扩展实现情况,再根据位字段判断该 CSR 影响的架构状态。

pmpcfg2 的地址、最低访问特权级和读写属性按官方 CSR 表核对:0x3A2,Machine 模式,读写。
pmpcfg2 属于物理内存保护路径;应与相邻 pmpcfg/pmpaddr 项一起理解,而不是孤立写单个字段。
写入前只修改目标字段并保留未修改位;WPRI/保留字段应按官方规范和实现返回值解释。

读这个 CSR 时先看什么

  • - 先确认当前 hart 是否实现 pmpcfg2,未实现或权限不足的访问会触发非法指令异常。
  • - 结合地址 0x3A2 和最低访问特权级(Machine 模式)判断软件是否可以直接读取。
  • - 读取保留位或 WARL/WLRL 位时不要假设固定值,应按规范和实现返回值解释。

写入前的风险检查

  • - 写入前保留未修改的位,避免把保留位或实现定义位写成非规范值。
  • - 优先使用 CSRRS/CSRRC 做局部置位或清位,避免 CSRRW 覆盖并发更新的状态位。

放回真实流程里理解

1

初始化或进入相关特权流程时,软件先读取 pmpcfg2 了解当前状态。

2

根据字段定义只修改目标位,保留其余位的原值。

3

修改后再次读取或通过后续 trap/中断/上下文切换行为验证配置是否生效。

常见问题

pmpcfg2 可以在任意特权级访问吗?

不能只看 CSR 名称判断。官方 CSR 地址编码和表格给出最低访问特权级;pmpcfg2 当前记录为 Machine 模式,权限不足或未实现时访问会触发非法指令异常。

写 pmpcfg2 时最容易忽略什么?

不要把整个 CSR 当普通整数覆盖。应只修改目标字段,保留未修改位,并按规范处理 WARL、WLRL、WPRI 或保留字段。