如何对CXL Port做Link Disable和Hot Reset

✨前言:

在CXL的验证测试中,对CXL Port做Link Disable和Hot Reset对比PCie的Port做相同的操作略有不同

✨1.CXL Extensions DVSEC for Ports

在这里插入图片描述
协议里我们可以找到CXL协议里的第八张内容里的CXL Extensions DVSEC for Ports里的Port Control Extensions (Offset 0Ch)寄存器中的说明这两个bit位
在这里插入图片描述

✨具体解释:

Bit 0: Unmask SBR (RW)
描述:当该位为0时,Bridge Control寄存器中的SBR位对该端口不起作用。当该位为1时,当Bridge Control中的SBR位被设置为1时,该端口会生成热重置(Hot Reset)。
默认值:0。
注意:当端口在PCIe模式或RCD模式下运行时,这字段对SBR功能没有影响,端口将遵循PCIe Base Specification。
Bit 1: Unmask Link Disable (RW)
描述:当该位为0时,Link Control寄存器中的Link Disable位对该端口不起作用。当该位为1时,当Link Control中的Link Disable位被设置为1时,该端口会禁用CXL连接,当Link Disable位被设置为0时,连接会重新启用。
默认值:0。
注意:当端口在PCIe模式或RCD模式下运行时,这字段对Link Disable功能没有影响,端口将遵循PCIe Base Specification。

所以要对CXL Port做hotreset和Link Disable的操作的时候需要将这两个bit位置上,不然做Link Disable和Hot Reset不会生效。

✨2.如何根据PCIe cfg space找到CXL的Port Control Extensions寄存器

在这里插入图片描述
首先根据CXL协议里的Table 8-6指示的DVSEC ID 0003h来定位到CXL Extensions DVSEC for Ports的基地址,通过lspci工具 + rc的BDF号来查询ID-0003的capabilities为这个base addr。
在这里插入图片描述

✨3.设置Port Control Extensions的unmask SBR的bit位

这里的寄存器偏移需要加上Port Control Extensions的偏移0xC,来设置即可,即刚刚的base addr 0x454+0xc,设置bit 0为1即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏天Aileft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值