CSR 位字段

RISC-V pmpcfg10 CSR 寄存器详解

地址 0x3AA特权级 Machine 模式访问 读写 / MXLEN:RV32 32 位;RV64 64 位Machine 物理内存保护 CSR

pmpcfg10(0x3AA)是 Machine PMP 配置 CSR;RV32 打包 pmp40cfg-pmp43cfg,RV64 打包 pmp40cfg-pmp47cfg。

位作用速览
bit 3 = 只有第 3 位;bits 12..11 = 第 12 到第 11 位
高位 MSB低位 LSB
字段映射

按 bit 字段理解 pmpcfg10

48 个关键字段
7

pmp40cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp40cfg.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

pmp40cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
4:3

pmp40cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp40cfg.A
0OFF

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

1TOR

PMP entry 40 使用 top-of-range 匹配;上界来自 pmpaddr40,下界来自 pmpaddr39。

2NA4

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

3NAPOT

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

打开官方手册
2

pmp40cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp40cfg.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

pmp40cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp40cfg.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

pmp40cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp40cfg.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

pmp41cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp41cfg.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

pmp41cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
12:11

pmp41cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp41cfg.A
0OFF

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

1TOR

PMP entry 41 使用 top-of-range 匹配;上界来自 pmpaddr41,下界来自 pmpaddr40。

2NA4

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

3NAPOT

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

打开官方手册
10

pmp41cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp41cfg.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

pmp41cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp41cfg.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

pmp41cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp41cfg.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

pmp42cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp42cfg.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

pmp42cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
20:19

pmp42cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp42cfg.A
0OFF

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

1TOR

PMP entry 42 使用 top-of-range 匹配;上界来自 pmpaddr42,下界来自 pmpaddr41。

2NA4

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

3NAPOT

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

打开官方手册
18

pmp42cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp42cfg.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

pmp42cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp42cfg.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

pmp42cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp42cfg.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

pmp43cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp43cfg.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

pmp43cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
28:27

pmp43cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp43cfg.A
0OFF

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

1TOR

PMP entry 43 使用 top-of-range 匹配;上界来自 pmpaddr43,下界来自 pmpaddr42。

2NA4

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

3NAPOT

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

打开官方手册
26

pmp43cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp43cfg.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

pmp43cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp43cfg.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

pmp43cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp43cfg.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

pmp44cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp44cfg.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

pmp44cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
36:35

pmp44cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp44cfg.A
0OFF

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

1TOR

PMP entry 44 使用 top-of-range 匹配;上界来自 pmpaddr44,下界来自 pmpaddr43。

2NA4

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

3NAPOT

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

打开官方手册
34

pmp44cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp44cfg.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

pmp44cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp44cfg.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

pmp44cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp44cfg.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

pmp45cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp45cfg.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

pmp45cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
44:43

pmp45cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp45cfg.A
0OFF

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

1TOR

PMP entry 45 使用 top-of-range 匹配;上界来自 pmpaddr45,下界来自 pmpaddr44。

2NA4

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

3NAPOT

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

打开官方手册
42

pmp45cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp45cfg.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

pmp45cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp45cfg.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

pmp45cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp45cfg.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

pmp46cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp46cfg.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

pmp46cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
52:51

pmp46cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp46cfg.A
0OFF

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

1TOR

PMP entry 46 使用 top-of-range 匹配;上界来自 pmpaddr46,下界来自 pmpaddr45。

2NA4

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

3NAPOT

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

打开官方手册
50

pmp46cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp46cfg.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

pmp46cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp46cfg.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

pmp46cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp46cfg.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

pmp47cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp47cfg.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

pmp47cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
60:59

pmp47cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp47cfg.A
0OFF

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

1TOR

PMP entry 47 使用 top-of-range 匹配;上界来自 pmpaddr47,下界来自 pmpaddr46。

2NA4

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

3NAPOT

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

打开官方手册
58

pmp47cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp47cfg.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

pmp47cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp47cfg.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

pmp47cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp47cfg.R
0R=0

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

1R=1

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

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

pmpcfg10 在 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 的 pmpcfg10 包含 entries 40-43;RV64 的同一 CSR 包含 entries 40-47。
  • - PMP 是可选机制;实现可提供 0、16 或 64 个 entries,所有 PMP CSR 字段都是 WARL 并可为只读零。
  • - PMP CSR 仅能由 M 模式访问。
  • - 本页所说的 M-mode 权限绕过仅适用于有效特权级为 M 的访问;mstatus.MPRV 可使 M-mode 数据访问以 S/U 有效特权级接受 PMP 检查。
  • - 复位时,可写 PMP 寄存器的 A 和 L 字段置 0,除非平台为某些 PMP 寄存器规定不同值;其他 PMP 字段的复位值未规定,但 WARL 字段不会包含非法值。

写入前的风险检查

  • - 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。

常见问题

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

不相同。RV32 的 pmpcfg10 打包 pmp40cfg-pmp43cfg;RV64 的 pmpcfg10 打包 pmp40cfg-pmp47cfg。