CSR 位字段

RISC-V pmpcfg0 CSR 寄存器详解

地址 0x3A0特权级 Machine 模式访问 Machine 读写(字段均为 WARL/可为只读零) / MXLEN:RV32 32 位;RV64 64 位Machine 物理内存保护 CSR

pmpcfg0(0x3A0)是 Machine PMP 配置 CSR;RV32 打包 pmp0cfg-pmp3cfg,RV64 打包 pmp0cfg-pmp7cfg。

字段映射

按 bit 字段理解 pmpcfg0

48 个关键字段
7

pmp0cfg.L

WARL/可为只读零

PMP 条目 0 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

这个字段控制什么

  • - PMP 条目 0 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

常见取值

pmp0cfg.L
0L=0

基础 PMP 中该 entry 未锁定;M-mode 命中访问绕过 R/W/X,但 pmpaddrN 仍可能被后一条 locked TOR entry 锁定。Smepmp 的 MML 规则可改变权限解释。

1L=1

基础 PMP 中锁定该 entry:写 pmpNcfg/pmpaddrN 被忽略直到 hart reset,TOR 还锁定前一 pmpaddr,且 R/W/X 对所有特权模式生效。Smepmp 的 RLB/MML 规则可改变此解释。

打开官方手册
6:5

pmp0cfg.reserved

WARL/可为只读零

pmp0cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

这个字段控制什么

  • - pmp0cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

常见取值

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

打开官方手册
4:3

pmp0cfg.A

WARL/可为只读零

PMP 条目 0 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

这个字段控制什么

  • - PMP 条目 0 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

常见取值

pmp0cfg.A
0OFF

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

1TOR

PMP entry 0 使用 top-of-range 匹配;上界来自 pmpaddr0,下界为 0。

2NA4

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

3NAPOT

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

打开官方手册
2

pmp0cfg.X

整体 WARL(R/W/X)

PMP entry 0 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 0 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp0cfg.X
0X=0

mseccfg.MML=0 时,不授予执行权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1X=1

mseccfg.MML=0 时,允许匹配 entry 的取指;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
1

pmp0cfg.W

整体 WARL(R/W/X)

PMP entry 0 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 0 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp0cfg.W
0W=0

mseccfg.MML=0 时,不授予写权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1W=1

mseccfg.MML=0 时,在 R=1 时允许匹配 entry 的写访问;R=0、W=1 在基础 PMP 中保留;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
0

pmp0cfg.R

整体 WARL(R/W/X)

PMP entry 0 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 0 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp0cfg.R
0R=0

mseccfg.MML=0 时,不授予读权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1R=1

mseccfg.MML=0 时,允许匹配 entry 的读访问;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
15

pmp1cfg.L

WARL/可为只读零

PMP 条目 1 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

这个字段控制什么

  • - PMP 条目 1 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

常见取值

pmp1cfg.L
0L=0

基础 PMP 中该 entry 未锁定;M-mode 命中访问绕过 R/W/X,但 pmpaddrN 仍可能被后一条 locked TOR entry 锁定。Smepmp 的 MML 规则可改变权限解释。

1L=1

基础 PMP 中锁定该 entry:写 pmpNcfg/pmpaddrN 被忽略直到 hart reset,TOR 还锁定前一 pmpaddr,且 R/W/X 对所有特权模式生效。Smepmp 的 RLB/MML 规则可改变此解释。

打开官方手册
14:13

pmp1cfg.reserved

WARL/可为只读零

pmp1cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

这个字段控制什么

  • - pmp1cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

常见取值

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

打开官方手册
12:11

pmp1cfg.A

WARL/可为只读零

PMP 条目 1 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

这个字段控制什么

  • - PMP 条目 1 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

常见取值

pmp1cfg.A
0OFF

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

1TOR

PMP entry 1 使用 top-of-range 匹配;上界来自 pmpaddr1,下界来自 pmpaddr0。

2NA4

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

3NAPOT

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

打开官方手册
10

pmp1cfg.X

整体 WARL(R/W/X)

PMP entry 1 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 1 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp1cfg.X
0X=0

mseccfg.MML=0 时,不授予执行权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1X=1

mseccfg.MML=0 时,允许匹配 entry 的取指;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
9

pmp1cfg.W

整体 WARL(R/W/X)

PMP entry 1 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 1 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp1cfg.W
0W=0

mseccfg.MML=0 时,不授予写权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1W=1

mseccfg.MML=0 时,在 R=1 时允许匹配 entry 的写访问;R=0、W=1 在基础 PMP 中保留;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
8

pmp1cfg.R

整体 WARL(R/W/X)

PMP entry 1 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 1 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp1cfg.R
0R=0

mseccfg.MML=0 时,不授予读权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1R=1

mseccfg.MML=0 时,允许匹配 entry 的读访问;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
23

pmp2cfg.L

WARL/可为只读零

PMP 条目 2 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

这个字段控制什么

  • - PMP 条目 2 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

常见取值

pmp2cfg.L
0L=0

基础 PMP 中该 entry 未锁定;M-mode 命中访问绕过 R/W/X,但 pmpaddrN 仍可能被后一条 locked TOR entry 锁定。Smepmp 的 MML 规则可改变权限解释。

1L=1

基础 PMP 中锁定该 entry:写 pmpNcfg/pmpaddrN 被忽略直到 hart reset,TOR 还锁定前一 pmpaddr,且 R/W/X 对所有特权模式生效。Smepmp 的 RLB/MML 规则可改变此解释。

打开官方手册
22:21

pmp2cfg.reserved

WARL/可为只读零

pmp2cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

这个字段控制什么

  • - pmp2cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

常见取值

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

打开官方手册
20:19

pmp2cfg.A

WARL/可为只读零

PMP 条目 2 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

这个字段控制什么

  • - PMP 条目 2 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

常见取值

pmp2cfg.A
0OFF

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

1TOR

PMP entry 2 使用 top-of-range 匹配;上界来自 pmpaddr2,下界来自 pmpaddr1。

2NA4

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

3NAPOT

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

打开官方手册
18

pmp2cfg.X

整体 WARL(R/W/X)

PMP entry 2 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 2 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp2cfg.X
0X=0

mseccfg.MML=0 时,不授予执行权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1X=1

mseccfg.MML=0 时,允许匹配 entry 的取指;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
17

pmp2cfg.W

整体 WARL(R/W/X)

PMP entry 2 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 2 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp2cfg.W
0W=0

mseccfg.MML=0 时,不授予写权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1W=1

mseccfg.MML=0 时,在 R=1 时允许匹配 entry 的写访问;R=0、W=1 在基础 PMP 中保留;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
16

pmp2cfg.R

整体 WARL(R/W/X)

PMP entry 2 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 2 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp2cfg.R
0R=0

mseccfg.MML=0 时,不授予读权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1R=1

mseccfg.MML=0 时,允许匹配 entry 的读访问;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
31

pmp3cfg.L

WARL/可为只读零

PMP 条目 3 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

这个字段控制什么

  • - PMP 条目 3 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

常见取值

pmp3cfg.L
0L=0

基础 PMP 中该 entry 未锁定;M-mode 命中访问绕过 R/W/X,但 pmpaddrN 仍可能被后一条 locked TOR entry 锁定。Smepmp 的 MML 规则可改变权限解释。

1L=1

基础 PMP 中锁定该 entry:写 pmpNcfg/pmpaddrN 被忽略直到 hart reset,TOR 还锁定前一 pmpaddr,且 R/W/X 对所有特权模式生效。Smepmp 的 RLB/MML 规则可改变此解释。

打开官方手册
30:29

pmp3cfg.reserved

WARL/可为只读零

pmp3cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

这个字段控制什么

  • - pmp3cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

常见取值

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

打开官方手册
28:27

pmp3cfg.A

WARL/可为只读零

PMP 条目 3 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

这个字段控制什么

  • - PMP 条目 3 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

常见取值

pmp3cfg.A
0OFF

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

1TOR

PMP entry 3 使用 top-of-range 匹配;上界来自 pmpaddr3,下界来自 pmpaddr2。

2NA4

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

3NAPOT

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

打开官方手册
26

pmp3cfg.X

整体 WARL(R/W/X)

PMP entry 3 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 3 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp3cfg.X
0X=0

mseccfg.MML=0 时,不授予执行权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1X=1

mseccfg.MML=0 时,允许匹配 entry 的取指;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
25

pmp3cfg.W

整体 WARL(R/W/X)

PMP entry 3 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 3 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp3cfg.W
0W=0

mseccfg.MML=0 时,不授予写权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1W=1

mseccfg.MML=0 时,在 R=1 时允许匹配 entry 的写访问;R=0、W=1 在基础 PMP 中保留;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
24

pmp3cfg.R

整体 WARL(R/W/X)

PMP entry 3 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 3 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp3cfg.R
0R=0

mseccfg.MML=0 时,不授予读权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1R=1

mseccfg.MML=0 时,允许匹配 entry 的读访问;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
39

pmp4cfg.L

WARL/可为只读零

PMP 条目 4 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

这个字段控制什么

  • - PMP 条目 4 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

常见取值

pmp4cfg.L
0L=0

基础 PMP 中该 entry 未锁定;M-mode 命中访问绕过 R/W/X,但 pmpaddrN 仍可能被后一条 locked TOR entry 锁定。Smepmp 的 MML 规则可改变权限解释。

1L=1

基础 PMP 中锁定该 entry:写 pmpNcfg/pmpaddrN 被忽略直到 hart reset,TOR 还锁定前一 pmpaddr,且 R/W/X 对所有特权模式生效。Smepmp 的 RLB/MML 规则可改变此解释。

打开官方手册
38:37

pmp4cfg.reserved

WARL/可为只读零

pmp4cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

这个字段控制什么

  • - pmp4cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

常见取值

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

打开官方手册
36:35

pmp4cfg.A

WARL/可为只读零

PMP 条目 4 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

这个字段控制什么

  • - PMP 条目 4 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

常见取值

pmp4cfg.A
0OFF

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

1TOR

PMP entry 4 使用 top-of-range 匹配;上界来自 pmpaddr4,下界来自 pmpaddr3。

2NA4

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

3NAPOT

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

打开官方手册
34

pmp4cfg.X

整体 WARL(R/W/X)

PMP entry 4 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 4 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp4cfg.X
0X=0

mseccfg.MML=0 时,不授予执行权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1X=1

mseccfg.MML=0 时,允许匹配 entry 的取指;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
33

pmp4cfg.W

整体 WARL(R/W/X)

PMP entry 4 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 4 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp4cfg.W
0W=0

mseccfg.MML=0 时,不授予写权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1W=1

mseccfg.MML=0 时,在 R=1 时允许匹配 entry 的写访问;R=0、W=1 在基础 PMP 中保留;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
32

pmp4cfg.R

整体 WARL(R/W/X)

PMP entry 4 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 4 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp4cfg.R
0R=0

mseccfg.MML=0 时,不授予读权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1R=1

mseccfg.MML=0 时,允许匹配 entry 的读访问;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
47

pmp5cfg.L

WARL/可为只读零

PMP 条目 5 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

这个字段控制什么

  • - PMP 条目 5 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

常见取值

pmp5cfg.L
0L=0

基础 PMP 中该 entry 未锁定;M-mode 命中访问绕过 R/W/X,但 pmpaddrN 仍可能被后一条 locked TOR entry 锁定。Smepmp 的 MML 规则可改变权限解释。

1L=1

基础 PMP 中锁定该 entry:写 pmpNcfg/pmpaddrN 被忽略直到 hart reset,TOR 还锁定前一 pmpaddr,且 R/W/X 对所有特权模式生效。Smepmp 的 RLB/MML 规则可改变此解释。

打开官方手册
46:45

pmp5cfg.reserved

WARL/可为只读零

pmp5cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

这个字段控制什么

  • - pmp5cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

常见取值

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

打开官方手册
44:43

pmp5cfg.A

WARL/可为只读零

PMP 条目 5 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

这个字段控制什么

  • - PMP 条目 5 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

常见取值

pmp5cfg.A
0OFF

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

1TOR

PMP entry 5 使用 top-of-range 匹配;上界来自 pmpaddr5,下界来自 pmpaddr4。

2NA4

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

3NAPOT

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

打开官方手册
42

pmp5cfg.X

整体 WARL(R/W/X)

PMP entry 5 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 5 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp5cfg.X
0X=0

mseccfg.MML=0 时,不授予执行权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1X=1

mseccfg.MML=0 时,允许匹配 entry 的取指;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
41

pmp5cfg.W

整体 WARL(R/W/X)

PMP entry 5 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 5 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp5cfg.W
0W=0

mseccfg.MML=0 时,不授予写权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1W=1

mseccfg.MML=0 时,在 R=1 时允许匹配 entry 的写访问;R=0、W=1 在基础 PMP 中保留;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
40

pmp5cfg.R

整体 WARL(R/W/X)

PMP entry 5 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 5 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp5cfg.R
0R=0

mseccfg.MML=0 时,不授予读权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1R=1

mseccfg.MML=0 时,允许匹配 entry 的读访问;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
55

pmp6cfg.L

WARL/可为只读零

PMP 条目 6 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

这个字段控制什么

  • - PMP 条目 6 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

常见取值

pmp6cfg.L
0L=0

基础 PMP 中该 entry 未锁定;M-mode 命中访问绕过 R/W/X,但 pmpaddrN 仍可能被后一条 locked TOR entry 锁定。Smepmp 的 MML 规则可改变权限解释。

1L=1

基础 PMP 中锁定该 entry:写 pmpNcfg/pmpaddrN 被忽略直到 hart reset,TOR 还锁定前一 pmpaddr,且 R/W/X 对所有特权模式生效。Smepmp 的 RLB/MML 规则可改变此解释。

打开官方手册
54:53

pmp6cfg.reserved

WARL/可为只读零

pmp6cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

这个字段控制什么

  • - pmp6cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

常见取值

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

打开官方手册
52:51

pmp6cfg.A

WARL/可为只读零

PMP 条目 6 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

这个字段控制什么

  • - PMP 条目 6 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

常见取值

pmp6cfg.A
0OFF

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

1TOR

PMP entry 6 使用 top-of-range 匹配;上界来自 pmpaddr6,下界来自 pmpaddr5。

2NA4

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

3NAPOT

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

打开官方手册
50

pmp6cfg.X

整体 WARL(R/W/X)

PMP entry 6 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 6 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp6cfg.X
0X=0

mseccfg.MML=0 时,不授予执行权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1X=1

mseccfg.MML=0 时,允许匹配 entry 的取指;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
49

pmp6cfg.W

整体 WARL(R/W/X)

PMP entry 6 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 6 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp6cfg.W
0W=0

mseccfg.MML=0 时,不授予写权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1W=1

mseccfg.MML=0 时,在 R=1 时允许匹配 entry 的写访问;R=0、W=1 在基础 PMP 中保留;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
48

pmp6cfg.R

整体 WARL(R/W/X)

PMP entry 6 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 6 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp6cfg.R
0R=0

mseccfg.MML=0 时,不授予读权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1R=1

mseccfg.MML=0 时,允许匹配 entry 的读访问;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
63

pmp7cfg.L

WARL/可为只读零

PMP 条目 7 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

这个字段控制什么

  • - PMP 条目 7 的锁定位。 该字段为 WARL,并可实现为只读零;Smepmp 的 RLB/MML 会改变锁定或权限解释。

常见取值

pmp7cfg.L
0L=0

基础 PMP 中该 entry 未锁定;M-mode 命中访问绕过 R/W/X,但 pmpaddrN 仍可能被后一条 locked TOR entry 锁定。Smepmp 的 MML 规则可改变权限解释。

1L=1

基础 PMP 中锁定该 entry:写 pmpNcfg/pmpaddrN 被忽略直到 hart reset,TOR 还锁定前一 pmpaddr,且 R/W/X 对所有特权模式生效。Smepmp 的 RLB/MML 规则可改变此解释。

打开官方手册
62:61

pmp7cfg.reserved

WARL/可为只读零

pmp7cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

这个字段控制什么

  • - pmp7cfg 的位 6:5 在标准 PMP 布局中为保留零;作为 PMP CSR 字段,它们为 WARL 并可实现为只读零。

常见取值

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

打开官方手册
60:59

pmp7cfg.A

WARL/可为只读零

PMP 条目 7 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

这个字段控制什么

  • - PMP 条目 7 的地址匹配模式。 该字段为 WARL,并可实现为只读零。

常见取值

pmp7cfg.A
0OFF

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

1TOR

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

2NA4

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

3NAPOT

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

打开官方手册
58

pmp7cfg.X

整体 WARL(R/W/X)

PMP entry 7 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 7 的 X 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp7cfg.X
0X=0

mseccfg.MML=0 时,不授予执行权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1X=1

mseccfg.MML=0 时,允许匹配 entry 的取指;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
57

pmp7cfg.W

整体 WARL(R/W/X)

PMP entry 7 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 7 的 W 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp7cfg.W
0W=0

mseccfg.MML=0 时,不授予写权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1W=1

mseccfg.MML=0 时,在 R=1 时允许匹配 entry 的写访问;R=0、W=1 在基础 PMP 中保留;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

打开官方手册
56

pmp7cfg.R

整体 WARL(R/W/X)

PMP entry 7 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

这个字段控制什么

  • - PMP entry 7 的 R 位;R/W/X 构成整体 WARL 字段。以下单个位值说明适用于基础 PMP(mseccfg.MML=0);MML=1 时按 Smepmp 的 L/R/W/X 整体编码解释。

常见取值

pmp7cfg.R
0R=0

mseccfg.MML=0 时,不授予读权限;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

1R=1

mseccfg.MML=0 时,允许匹配 entry 的读访问;M-mode 仅在 L=1 时受该权限约束。MML=1 时不能单独解释此位。

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

pmpcfg0 在 RV32 打包四个、在 RV64 打包八个 8 位 PMP 配置;每项由 L、A、X、W、R 与两个保留零位组成。

Machine ISA 的 Physical Memory Protection CSRs 小节定义地址、MXLEN packing、M-mode-only 访问与 WARL/RO0 行为。
A 编码为 OFF、TOR、NA4、NAPOT;平台 grain 可使 NA4 不可选。
基础 PMP 与 Smepmp MML=1 对 L/R/W/X 的解释不同,页面字段值必须结合 mseccfg 判断。

读这个 CSR 时先看什么

  • - RV32 的 pmpcfg0 包含 entries 0-3;RV64 的同一 CSR 包含 entries 0-7。
  • - PMP 是可选机制;实现可提供 0、16 或 64 个 entries,所有 PMP CSR 字段都是 WARL 并可为只读零。
  • - PMP CSR 仅能由 M 模式访问。

写入前的风险检查

  • - R/W/X 是一个整体 WARL 字段;在基础 PMP(mseccfg.MML=0)中 R=0、W=1 的组合保留,而 Smepmp 在 MML=1 时会整体重新解释 L/R/W/X。
  • - L=1 会锁定 pmpNcfg 和 pmpaddrN 直到 hart reset;若 A=TOR,还会锁定前一 pmpaddr。Smepmp 的 mseccfg.RLB 可绕过锁定规则。
  • - 写 WARL 字段后应读回实际采用的值;不要假定未实现的权限或匹配模式会被接受。

放回真实流程里理解

1

根据 OFF、TOR、NA4 或 NAPOT 选择 A,并在对应 pmpaddrN(TOR 时还包括前一地址寄存器)中编码范围。

2

根据当前 mseccfg.MML 状态解释并写入 L/R/W/X 的整体 WARL 编码。

3

读回 pmpcfg 与 pmpaddr,确认实现采用的 WARL 值;仅在配置最终确定后设置 L。

常见问题

pmpcfg0 在 RV32 与 RV64 中包含相同数量的 entries 吗?

不相同。RV32 的 pmpcfg0 打包 pmp0cfg-pmp3cfg;RV64 的 pmpcfg0 打包 pmp0cfg-pmp7cfg。