🔥点击查看精选 PCIe 系列文章🔥
🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥
📢 声明:
- 🥭 作者主页:【MangoPapa的CSDN主页】。
- ⚠️ 本文首发于CSDN,转载或引用请注明出处【https://mangopapa.blog.csdn.net/article/details/132179674】。
- ⚠️ 本文目的为 个人学习记录 及 知识分享。因个人能力受限,存在协议解读不正确的可能。若您参考本文进行产品设计或进行其他事项并造成了不良后果,本人不承担相关法律责任。
- ⚠️ 若本文所采用图片或相关引用侵犯了您的合法权益,请联系我进行删除。
- 😄 欢迎大家指出文章错误,欢迎同行与我交流 ~
- 📧 邮箱:mangopapa@yeah.net
- 💬 直达博主:loveic_lovelife 。(搜索或点击扫码)
文章目录
- 1. Vendor-Specific Capability (VSC)
- 2. Vendor-Specific Extended Capability (VSEC)
- 3. Designated Vendor-Specific Extended Capability (DVSEC)
- 4. 参考
PCIe 定义了三类可由供应商 Vendor 自行指定的能力结构:Vendor-Specific Capability (VSC)、Vendor-Specific Extended Capability (VSEC) 及 Designated Vendor-Specific Extended Capability (DVSEC)。其中,VSC 兼容 PCI,VSEC 及 DVSEC 不兼容 PCI。VSEC 由单个 Vendor 独立使用,DVSEC 由多个相关的 Vendor 共同使用。
1. Vendor-Specific Capability (VSC)
Vendor-Specific Capability (VSC),供应商指定能力,是一种兼容 PCI 配置空间的能力结构,其结构如下图所示。该能力结构位于 PCIe 配置空间的前 256B 内,其前 3B 格式固定,Capability Length、Next Capability Pointer 及 Capability ID 各占 1B。
2. Vendor-Specific Extended Capability (VSEC)
Vendor-Specific Extended Capability (VSEC),是一种可选的供应商指定扩展能力,供单个供应商使用,可以实现在 PCIe Function 或 RCRB 中。VSEC 能力结构如下图所示。
跟 VSC 相比,VSEC 位于 PCIe 配置空间 257B~4KB 的区域,其前 8B 格式固定,Capability Header 及 Vendor-Specific Header 如下图所示。
值得说明的是,单个 PCIe Function 或 RCRB 内可以实现多个 VSEC 结构,从而支持多个自定义的扩展能力。多个 VSEC 通过 Vendor-Specific Header 中的 VSEC ID 来区分。
3. Designated Vendor-Specific Extended Capability (DVSEC)
Designated Vendor-Specific Extended Capability (DVSEC),特定的供应商指定扩展能力,可选,供多个供应商使用,单个 PCIe Function 或 RCRB 内可以实现多个 DVSEC 结构。DVSEC 结构如下图所示。
跟 VSEC 相比,DVSEC Header 中多了 2B Vendor-Specific Header。原 VSEC ID 挪到 Byte[9:8]的位置,原来的位置替换为 DVSEC Vendor ID。如下图所示。
举个例子,
- 对于 UCIe 协议,DVSEC Vendor ID=TBD(还没分配),DVSEC ID=0x00h 表示 UCIe Link DVSEC,DVSEC ID=0x01 表示 CiSRB DVSEC。
- 对于 CXL,DVSEC Vendor ID=0x8086 @CXL 1.1, 0x1E98 @CXL 2.0,DVSEC ID=0x00 表示 PCIe DVSEC for CXL Devices,0x02 表示 Non-CXL Function Map DVSEC,0x03 表示 CXL Extensions DVSEC for Ports,0x05 表示 GPF DVSEC,0x07 表示 PCIe DVSEC for Flex Bus Port,等等。
4. 参考
- PCI Express Base Spec 6.0.1
- pci - Difference between DVSEC, VSEC and RCRB - Stack Overflow
|
🔥 精选往期 PCIe 协议系列文章,请查看【 PCIe 专栏】🔥
⬆️ 返回顶部 ⬆️