PCIe L1s debug with RTW88

enable ASPM的过程种遇到一个奇怪的问题,明明RTW8822CE支持L1/s,但是enable kernel ASPM driver之后没有正常建立sysfs的link status节点。

debug发现是aspm driver在获取host/device两端的aspm能力过程种,有做pcie_retrain_link

,pcie_retrain_link后,RTW8822CE的pcie cap寄存器出现短暂时间访问为0的情况,导致driver认为device不支持任何的L1/L0/s。但测试nvme没有出现类似现象。

My workaround:

在pcie_retrain_link 后,通过polling device寄存器非零,可以解决这个问题,正常enable网卡的aspm L1/s。

但是这个修改了apm.c的代码,不太容易能够merge到upstream,遂bing搜索了下,找到有一些类似的线索。

1. Atheros网卡似乎有类似的现象。

这个邮件里说是强制host为gen1可以规避这个问题。因为网卡是gen1的,我测试的rc是gen3,确实有可能是类似的问题.(尝试这个方法后问题解决,RTW88看来确实也有类似问题)

[PATCH] PCI: Disallow retraining link for Atheros QCA98xx chips on non-Gen1 PCIe bridgeshttps://www.mail-archive.com/ath10k@lists.infradead.org/msg13525.html

2. cadence的pcie host driver有提交过关于gen2 trainning的patch

这里考虑也可能是cadence 的这个rc本身的问题

[v4,2/2] PCI: cadence: Retrain Link to work around Gen2 training defect. - Patchwork

3. 如果以上都不行,可以考虑打上这个patch,非必要不要进行retrain

pci/pcie: Avoid unnecessary PCIe link retrains - Patchwork

主线的aspm.c 在pcie_aspm_configure_common实现种,不管是否有做ccc的配置,最后都默认会retrain,可以考虑试试这个patch

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值