CSR 位字段

RISC-V seed CSR 寄存器详解

地址 0x015特权级 M 模式始终可用;U/S/HS 由 mseccfg 的 USEED/SSEED 条件控制访问 读写访问(写入值忽略) / 32用户级 Zkr 熵源 CSR

seed(0x015)是 Zkr 的 32 位用户级熵源接口 CSR;只有通过读写 CSR 指令轮询时才可读取结果。

字段映射

按 bit 字段理解 seed

4 个关键字段
31:30

OPST

轮询返回

状态:BIST=00、WAIT=01、ES16=10、DEAD=11。

这个字段控制什么

  • - 状态:BIST=00、WAIT=01、ES16=10、DEAD=11。

常见取值

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

打开官方手册
29:24

Reserved

保留

为未来 RISC-V 规范保留;实现可安全返回零。

这个字段控制什么

  • - 为未来 RISC-V 规范保留;实现可安全返回零。

常见取值

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

打开官方手册
23:16

Custom

自定义

指定给自定义和实验性用途;实现可安全返回零。

这个字段控制什么

  • - 指定给自定义和实验性用途;实现可安全返回零。

常见取值

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

打开官方手册
15:0

entropy

轮询返回

仅在 OPST=ES16 时包含 16 位随机性;其他状态必须为零。

这个字段控制什么

  • - 仅在 OPST=ES16 时包含 16 位随机性;其他状态必须为零。

常见取值

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

打开官方手册

读这个 CSR 时先看什么

  • - CSRRS/CSRRC 的只读形式(rs1=x0)及其立即数形式会触发非法指令异常。
  • - M 模式之外需显式授予访问;未授予时访问触发非法指令异常。

写入前的风险检查

  • - 任何允许的 CSR 访问均忽略写入值;写入动作只表示轮询和刷新。
  • - 不要把 entropy 用作普通可保存的 CSR 状态:成功轮询后它会被 wipe-on-read。

放回真实流程里理解

1

用 csrrw rd, seed, x0 轮询。

2

仅当 OPST=ES16 时使用 entropy[15:0];否则按状态重试或处理失败。