CSR 位字段

RISC-V pmpcfg14 CSR 寄存器详解

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

pmpcfg14(0x3AE)是 Machine PMP 配置 CSR;RV32 打包 pmp56cfg-pmp59cfg,RV64 打包 pmp56cfg-pmp63cfg。

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

按 bit 字段理解 pmpcfg14

48 个关键字段
7

pmp56cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

pmp56cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
4:3

pmp56cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp56cfg.A
0OFF

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

1TOR

PMP entry 56 使用 top-of-range 匹配;上界来自 pmpaddr56,下界来自 pmpaddr55。

2NA4

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

3NAPOT

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

打开官方手册
2

pmp56cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp56cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp56cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp57cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

pmp57cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
12:11

pmp57cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp57cfg.A
0OFF

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

1TOR

PMP entry 57 使用 top-of-range 匹配;上界来自 pmpaddr57,下界来自 pmpaddr56。

2NA4

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

3NAPOT

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

打开官方手册
10

pmp57cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp57cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp57cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp58cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

pmp58cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
20:19

pmp58cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp58cfg.A
0OFF

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

1TOR

PMP entry 58 使用 top-of-range 匹配;上界来自 pmpaddr58,下界来自 pmpaddr57。

2NA4

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

3NAPOT

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

打开官方手册
18

pmp58cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp58cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp58cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp59cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

pmp59cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
28:27

pmp59cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp59cfg.A
0OFF

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

1TOR

PMP entry 59 使用 top-of-range 匹配;上界来自 pmpaddr59,下界来自 pmpaddr58。

2NA4

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

3NAPOT

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

打开官方手册
26

pmp59cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp59cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp59cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp60cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

pmp60cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
36:35

pmp60cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp60cfg.A
0OFF

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

1TOR

PMP entry 60 使用 top-of-range 匹配;上界来自 pmpaddr60,下界来自 pmpaddr59。

2NA4

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

3NAPOT

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

打开官方手册
34

pmp60cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp60cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp60cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp61cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

pmp61cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
44:43

pmp61cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp61cfg.A
0OFF

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

1TOR

PMP entry 61 使用 top-of-range 匹配;上界来自 pmpaddr61,下界来自 pmpaddr60。

2NA4

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

3NAPOT

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

打开官方手册
42

pmp61cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp61cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp61cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp62cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

pmp62cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
52:51

pmp62cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp62cfg.A
0OFF

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

1TOR

PMP entry 62 使用 top-of-range 匹配;上界来自 pmpaddr62,下界来自 pmpaddr61。

2NA4

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

3NAPOT

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

打开官方手册
50

pmp62cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp62cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp62cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp63cfg.L

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

pmp63cfg.reserved

WARL/可为只读零

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

这个字段控制什么

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

常见取值

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

打开官方手册
60:59

pmp63cfg.A

WARL/可为只读零

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

这个字段控制什么

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

常见取值

pmp63cfg.A
0OFF

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

1TOR

PMP entry 63 使用 top-of-range 匹配;上界来自 pmpaddr63,下界来自 pmpaddr62。

2NA4

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

3NAPOT

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

打开官方手册
58

pmp63cfg.X

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp63cfg.W

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

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

pmp63cfg.R

整体 WARL(R/W/X)

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

这个字段控制什么

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

常见取值

pmp63cfg.R
0R=0

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

1R=1

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

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

pmpcfg14 在 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 时先看什么

  • - pmpcfg14 在 RV32 包含 entries 56-59,在 RV64 的同一 CSR 中包含 entries 56-63。
  • - 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。

常见问题

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

不相同。RV32 的 pmpcfg14 打包 pmp56cfg-pmp59cfg;RV64 的 pmpcfg14 打包 pmp56cfg-pmp63cfg。