NVM Express 2\3

2 系统总线 (PCI Express)寄存器

本节介绍当 PCI Express 是所使用的系统总线时的 PCI Express 寄存器值。在实现中可以使用其他系统总线。如果使用的系统总线不是 PCI 的衍生产品,则本节不适用 (n/a)。
本节详细介绍了如何为 NVM Express 控制器构建 PCI 头、PCI 功能和 PCI Express 扩展功能。显示的字段与相应的 PCI 或 PCI Express 规范重复。PCI 文档是这些 registers 的规范性规范,本节详细介绍了 NVM Express 控制器的其他要求。
图 9:PCI Express 寄存器

开始结束名字类型
00h3FhPCI 头
PMCAPPMCAP+7hPCI 电源管理功能PCI Capability
MSICAPMSICAP+9h消息信号中断功能PCI Capability
MSIXCAPMSIXCAP+BhMSI-X 功能PCI Capability
PXCAPPXCAP+29hPCI Express 功能PCI Capability
AERCAPAERCAP+47h高级错误报告功能PCI Express Extended Capability

MSI-X 是推荐使用的中断机制。但是,某些系统可能不支持 MSI-X,因此,设备可能会选择同时支持 MSI 功能和 MSI-X 功能。
建议实施支持 Advanced Error Reporting Capability,以实现更强大的错误处理。

2.1 PCI 头

开始结束标志名字
00h03hID标识
04h05hCMD命令寄存器
06h07hSTS设备状态
08h08hRID版本ID
09h0BhCC缓存行大小
0Ch0ChCLS命令寄存器
0Dh0DhMLT主延迟定时器
0Eh0EhHTYPE标头类型
0Fh0FhBIST内置自检(可选)
10h13hMLBAR(BAR0)内存寄存器基址,低32 位
14h17hMLBAR(BAR1)内存寄存器基址,高 32 位
18h1BhBAR2请参阅第 2.1.12 节
1Ch1FhBAR3供应商特定
20h23hBAR4供应商特定
24h27hBAR5供应商特定
28h2BhCCPTRCardBus CIS 指针
2Ch2FhSS子系统标识符
30h33hEROM扩展 ROM 基址(可选)
34h34hCAP功能指针
35h3BhR保留
3Ch3DhINTR中断信息
3Eh3EhMGNT最小权利(可选)
3Fh23FhMLAT最大延迟 (可选)

2.1.1 偏移量 00h:ID - 标识符

图 11:偏移量 00h:ID - 标识符
位 类型 复位 描述
31:16 RO Impl Spec Device ID (DID):表示供应商分配的设备编号。特定于每个实现。
15:00 RO Impl Spec 供应商 ID (VID):表示由 PCI SIG 分配的公司供应商。

2.1.2 偏移量 04h:CMD - 命令

图 12:偏移量 04h:CMD - 命令
位 类型 重置 描述
15:11 RO 0h 保留
10 RW 0b 中断禁用 (ID):禁用控制器生成基于引脚的 INTx# 中断。该位对 MSI 或 MSI-X 操作没有任何影响。
09 RO 0b 快速背靠背启用 (FBE):NVM Express 接口不支持。
08 RW/RO 0b SERR# 启用 (SEE):控制错误报告。
07 RO 0b 硬连线为 0。06 RW/RO 0b 奇偶校验错误响应启用 (PEE):当设置为“1”时,控制器应在检测到数据奇偶校验错误时生成 PERR#。如果不支持奇偶校验,则此位为只读 ‘0’。
05 RO 0b VGA 调色板侦听启用 (VGA):NVM Express 不支持。
04 RO 0b 内存写入和失效启用 (MWIE):NVM Express 接口不支持。
03 RO 0b 特殊循环启用 (SCE):NVM Express 不支持。
02 RW 0b 总线主控启用 (BME):使控制器能够充当数据传输的主控。当设置为 ‘1’ 时,允许 bus master 活动。当清零为 ‘0’ 时,不允许控制器发出任何内存或 I/O 请求。
01 RW 0b Memory Space Enable (MSE):控制对控制器寄存器内存空间的访问。
00 RW 0b I/O 空间启用 (IOSE):控制对控制器目标 I/O 空间的访问。

2.4 MSI-X 功能(可选)

注意:建议主机为每个完成队列分配唯一的 MSI-X 向量。
Table BIR 和 PBA BIR 数据结构可以在实施中的 BAR0-1 或 BAR4-5 中分配。这些表应对齐 4 KiB。组成表 BIR 和 PBA BIR 的内存页不应包含其他寄存器/结构。建议在 BAR0-1 中按照提交队列和完成队列门铃寄存器分配这些结构。请参阅 PCI 参考 以了解有关这些数据结构的分配要求的更多信息。

2.5 PCI Express 功能

以下 PCI Express 功能定义基于 PCI Express 2.1 Base 规范。实现者可以选择将器件基于PCI Express 2.1 Base规范以外的规范。在所有情况下, PCI Express Base 规范都是 PCI Express Capability registers的规范性参考。
注意:TLP 中毒是 PCI Express 实施的强制性功能。TLP 中毒有一些可选功能,例如发射机的 TLP 中毒。当 NVM Express 控制器在传输到主机时出现错误(例如,读取命令错误)时,该错误应作为 NVM Express 命令状态的一部分表示,而不是通过 TLP 中毒。

2.6 高级错误报告功能(可选)

下面的高级错误报告定义基于 PCI Express 2.1 Base 规范。实现者可以选择将器件基于PCI Express 2.1 Base规范以外的规范。在所有情况下, PCI Express Base 规范都是 Advanced Error Reporting 寄存器的规范性参考。

2.7 其他功能指针

虽然本规范中未提及,但根据实现的不同,可能需要其他功能指针。示例包括 PCI-X 实现的 PCI-X 功能,以及可能的供应商特定的功能指针。
这些功能超出了本规范的范围。

3 控制器寄存器

控制器寄存器位于 MLBAR/MUBAR 寄存器(PCI BAR0 和 BAR1)中,应映射到支持按顺序访问和可变访问宽度的内存空间。对于许多计算机体系结构,将内存空间指定为 uncacheable 会产生此行为。主机不应发出锁定的访问。主机应使用为该 register 指定的宽度或使用对齐的 32 位访问来访问 register。违反这些主机要求中的任何一个都会导致未定义的行为。
不支持针对两个或多个 registers 的任何部分的访问。
所有保留 registers 和 registers 中的所有保留bits 都是只读的,读取时返回 0h。软件不应依赖返回 0h。

3.1 寄存器定义

图 68 描述了控制器的寄存器映射。
供应商特定地址范围从控制器支持的最后一个门铃开始,一直到 BAR0/1 支持范围的末尾。供应商特定地址范围的起点从同一位置开始,不取决于分配的门铃数量。
图 68: 寄存器定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值