This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM5749:PCIe:当 PCIe_SS1和 PCIe_SS2处于单线模式时、PCIe_SS2上的 PCIe 扫描可能会失败。

Guru**** 1123240 points
Other Parts Discussed in Thread: AM5749, XIO2001
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1191570/am5749-pcie-pcie-scan-may-fail-on-pcie_ss2-when-pcie_ss1-and-pcie_ss2-are-in-single-line-mode

器件型号:AM5749
主题中讨论的其他器件: XIO2001

您好!

我在定制电路板上使用 AM5749、其中我启用了第二个 PCIe 控制器(PCIe_SS2)以及 PCIe_SS1。
因此、每个控制器都使用单个 PCIe 通道。

我使用 TI 5.10内核、但也使用最新的上游内核6.1.8复制了这个问题。

&axi1{
   状态="可以";
};

&PCIe2_RC{
   状态="可以";
};

&PCIe2_phy{
   状态="可以";
};

有时(相对容易重现)无法正确识别第二个 PCI 桥接器:

# lspci
0000:00:00.0 PCI 桥接器:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
0000:01:00.0 PCI 桥接器:德州仪器 XIO2001 PCI Express 至 PCI 桥接器
0000:02:00.0未分配的分类[ff00]:Hilscher GmbH CIFX 50E-DP (M/S)
0001:00:00.0非 VGA 未分类器件:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)

该问题仅出现在 PCIe_SS2上。

实际上、总线报告的器件类为0x0:
[ 1212.493316] PCI 0001:00:00.0:[104C:8888] type 01 class 0x000000         <<<??? 韩语
[ 1212.493347] PCI 0001:00:00.0:寄存器0x10:[MEM 0x00000000-0x000fff pref]
[ 1212.493377] PCI 0001:00:00.0:寄存器0x14:[MEM 0x00000000-0x0000ffff pref]
[ 1212.493438] PCI 0001:00:00.0:支持 D1
[1212.493438] PCI 0001:00:00.0: D0 D1 D3hot 支持 PME#
[ 1212.517578] PCI:bus1:启用快速背对背传输
[1212.517608] PCI 0001:00:00.0:连接[bus 01]的 PCI 桥

在 dmesg 日志之前、我们有以下行:
[   3.215606] dra7-PCIe 51800.PCIe:PHY 链路从未出现

此外、lspci 会报告"Invalid class 0000 for header type 01"、and yearly a issues of PCIe bar mapping (Memory at )

# lspci -nv
0001:00:00.0 0000:104C:8888 (修订版01)
       !!! 标头类型01的类0000无效
       flags:fast devsel、IRQ 255
       上的闪存 (32位、可预取)[virtual][size=1m]<<<         
       上的闪存 (32位、可预取)[虚拟][size=64K]<<<        
       总线:主要=00、次要=01、从属=01、秒-延迟=0
       桥后面的 I/O:[已禁用]
       桥后面的内存:[已禁用]
       桥后面的可预取存储器:[已禁用]
       功能:[40]电源管理版本3
       能力:[50] MSI:ENABLE- Count=1/1可屏蔽- 64位以上
       功能:[70] Express Root Port (Slot-),MSI 00
       功能:[100]高级错误报告

工作时、器件类为0x060400
[2.316070]   PCI 0001:00:00.0:[104C:888] type 01 class 0x060400

还有 PCIe 链路:
[   2.315917] dra7-PCIe 51800.PCIe:建立链路

# lspci
0000:00:00.0 PCI 桥接器:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
0000:01:00.0 PCI 桥接器:德州仪器 XIO2001 PCI Express 至 PCI 桥接器
0000:02:00.0未分配的分类[ff00]:Hilscher GmbH CIFX 50E-DP (M/S)
0001:00:00.0 PCI 桥接器:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
0001:01:00.0网络控制器:Qualcomm 设备1103 (修订版01)

我发现之前的一份报告与此类问题相关、但没有明确说明原因和解决方法:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1017941/dra722-pcie-either-pcie1-or-pcie2-is-not-detected-properly


我注意到当我们遇到问题(来自 PCIECTRL_TI_CONF_DEVICE_CMD 寄存器)时 PCIe1和 PCIe2之间的 LTSSM 状态不同
# devmem2 0x51002104 w
在地址 0x51002104 (0xb6f0e104)处读取:0x00000045
# devmem2 0x51802104 w
在地址 0x51802104 (0xb6f67104):0x00000000 <<<

工作时:
# devmem2 0x51002104 w ; devmem2 0x51802104 w
在地址 0x51002104 (0xb6f73104)处读取:0x00000045
在地址 0x51802104 (0xb6f7b104):0x00000045处读取

我尝试删除和重新扫描 PCI 总线、但未成功:
echo "1">/sys/bus/pci/devices/0001 \:00\:00.0/remove;SLEEP 1;echo "1">/sys/bus/pci/rescan

在6.1.8内核上、这会使系统崩溃:

[142.966583] PCI 0000:01:00.0:PCI 桥接器至[bus 02]
[ 142.971588] PCI 0000:01:00.0:  桥接窗口[mem 0x20200000-0x202fff]
[142.985382] PCI 0001:01:00.0:[17cb:1103] type 00 class 0x028000
[ 142.991485] PCI 0001:01:00.0:寄存器0x10:[MEM 0x00000000-0x001fff 64位]
[142.998779] PCI 0001:01:00.0: D0 D3hot D3cold 支持 PME#
[ 143.005035] PCI 0001:01:00.0:4000 Gb/s 可用 PCIe 带宽、受0001:00:00.0下5.0 GT/s PCIe x1链路限制(支持7.876 Gb/s、带8.0 GT/s PCIe x1链路)
[143.044342] PCI 0001:01:00.0:栏0:已分配[mem 0x00200000-0x003fff 64bit]
[143.051757] PCI 0001:00:00.0: PCI 桥接器至[bus 01]
[ 143.056793] PCI 0001:00:00.0:  桥接窗口[mem 0x00200000-0x003fff]
[ 143.063995] ath11k_PCI 0001:01:00.0:bar 0:已分配[mem 0x00200000-0x003ffff 64位]
[143.072052] PCI 0001:00:00.0:无法启用设备:bar 0 [mem 0x00000000-0x000fff pref]未声明
[ 143.081359] PCI 0001:00:00.0:启用网桥(-22)时出错,继续
[ 143.087890] ath11k_PCI 0001:01:00.0:启用设备(0000 -> 0002)

在 ath11k 驱动程序不支持 Qualcomm 模块的5.10内核上、lspci 能够列出该模块、但仍然无法正确检测到 PCI 桥(非 VGA 未分类设备)

# lspci
0000:00:00.0 PCI 桥接器:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
0000:01:00.0 PCI 桥接器:德州仪器 XIO2001 PCI Express 至 PCI 桥接器
0000:02:00.0未分配的分类[ff00]:Hilscher GmbH CIFX 50E-DP (M/S)
0001:00:00.0非 VGA 未分类器件:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
0001:01:00.0网络控制器:Qualcomm 设备1103 (修订版01)


你有什么线索吗?

此致、
Romain

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我有一些其他信息:
    我已将 Wifi 设备更换为较旧的设备、但问题不再存在:

    0000:00:00.0 PCI 桥接器:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
    0000:01:00.0 PCI 桥接器:德州仪器 XIO2001 PCI Express 至 PCI 桥接器
    0000:02:00.0未分配的分类[ff00]:Hilscher GmbH CIFX 50E-DP (M/S)
    0001:00:00.0 PCI 桥接器:德州仪器(TI)多核 DSP+ARM KeyStone II SOC (修订版01)
    0001:01:00.0网络控制器:英特尔公司迅驰 Wireless-N 135 (修订版 C4)

    实际上、该问题似乎与 PCIe 速度(第1代 2.5 GT/s 与第2代5 GT/s)有关。
    AM5749器件上使用的 PCIe 控制器支持高达第2代的速度。

    dra7-PCIe 51000000.PCIe:PCIe 第1代 x1链路建立 <<第1代(CIFX)
    dra7-PCIe 518000.PCIe:PCIe 第2代 x1链接启动 <<第2代(Qualcomm)
    dra7-PCIe 518000.PCIe:PCIe 第1代 x1链路建立 <<第1代(n135)

    对于 Qualcomm 器件、我还在 dmesg 中遇到其他警告:

    PCI 0001:01:00.0: 4.000 Gb/s 可用 PCIe 带宽、受0001:00:00.0处5.0 GT/s PCIe x1链路限制(支持7.876 Gb/s、带8.0 GT/s PCIe x1链路)

    这意味着 Qualcomm 器件(0001:01:00.0)最高可以使用第3代速度、但受到 PCIe 控制器(0001:00:00.0)的限制。

    是否存在任何已知问题(干扰?) 在 TI PCI 桥上、当 PCIe 器件从第3代回退到第2代时?
    我没有仅第2代 PCIe 设备来检查是否是由于 PCIe 带宽不匹配...

    我检查了 PCB 上的 PCIe 导线、但 PCIe 第2代设计规则似乎没问题。

    无论如何、报告为0x0 (非 VGA 未分类设备)的 PCIe 桥接器类别似乎可疑。

    此致、
    Romain

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我查看了 PCI 桥接器失败时的初始化过程:

    [    3.636444] pci_init_host_bridge
    [    3.636474] dra7-pcie 51800000.pcie: host bridge /ocp/axi@1/pcie@51800000 ranges:
    [    3.636535] dra7-pcie 51800000.pcie:       IO 0x0030003000..0x0030012fff -> 0x0000000000
    [    3.636566] dra7-pcie 51800000.pcie:      MEM 0x0030013000..0x003fffffff -> 0x0030013000
    [    3.636627] dra7xx_pcie_msi_host_init
    [    3.636688] dra7xx_pcie_host_init
    [    3.636688] dw_pcie_setup
    [    3.636688] dw_pcie_setup PORT_LINK_MODE_1_LANES
    [    3.636688] dra7xx_pcie_establish_link
    [    3.636718] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    3.636718] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    3.636718] dra7xx_pcie_establish_link read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    3.636718] dra7xx_pcie_establish_link write PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x1
    [    3.636718] dw_pcie_wait_for_link
    [    3.636718] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x1
    [    3.636718] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    3.736816] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0  << FUNDAMENTAL reset ??
    [    3.736816] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    3.836914] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    3.836914] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    3.937011] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    3.937011] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    4.037078] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    4.037078] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    4.137176] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    4.137176] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    4.237274] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    4.237274] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    4.337402] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    4.337432] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    4.437530] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    4.437561] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    4.537658] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    4.537658] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    4.637786] dra7-pcie 51800000.pcie: Phy link never came up

    dw_PCIe_wait_for_link ()期间有一些奇怪的事情、PCIECTRL_DRA7XX_CONF_DEVICE_CMD 寄存器在内核仍在初始化它时似乎被 SoC 复位。 可以解释 Class 为何为0x0。

    当 PCI 桥接器正常时,请参阅相同的日志

    [    3.636596] pci_init_host_bridge
    [    3.636627] dra7-pcie 51800000.pcie: host bridge /ocp/axi@1/pcie@51800000 ranges:
    [    3.636688] dra7-pcie 51800000.pcie:       IO 0x0030003000..0x0030012fff -> 0x0000000000
    [    3.636718] dra7-pcie 51800000.pcie:      MEM 0x0030013000..0x003fffffff -> 0x0030013000
    [    3.636779] dra7xx_pcie_msi_host_init
    [    3.636810] dra7xx_pcie_host_init
    [    3.636840] dw_pcie_setup
    [    3.636840] dw_pcie_setup PORT_LINK_MODE_1_LANES
    [    3.636840] dra7xx_pcie_establish_link
    [    3.636840] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    3.636871] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    3.636871] dra7xx_pcie_establish_link read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [    3.636871] dra7xx_pcie_establish_link write PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x1
    [    3.636871] dw_pcie_wait_for_link
    [    3.636871] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x1
    [    3.636871] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [    3.736968] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x45
    [    3.736968] dra7xx_pcie_link_up read PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [    3.736968] dra7-pcie 51800000.pcie: Link up
    [    3.736968] dra7xx_pcie_enable_interrupts
    [    3.736968] dra7xx_pcie_enable_wrapper_interrupts
    [    3.736999] dra7xx_pcie_enable_msi_interrupts
    [    3.736999] dra7xx_pcie_host_init exit

    是否与 PCI"基本重置"有关?

    出于测试目的、我将 PCIe Wifi 模块切换到了第一个 PCIe 控制器、但无法重现问题。
    我不知道在 PCIe_SS2上而不在 PCIe_SS1上失败的原因。

    我们是否需要像 DWC 节奏的 PCIe quirk " Retrain Link 以解决 Gen2训练缺陷"?
    https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1d3efd15e8a43ce2ea91c040f77ef67a0b2b3bc5


    但这并不能解释为什么在链路训练期间此 SoC 上的 PCIe_SS1和 PCIe_SS2行为不同。

    此致、
    Romain

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    这似乎与链路训练问题有关:
    "如果链路训练失败、LTSSM_EN 位将重置为0"

    请参阅这篇很好的帖子:
    e2e.ti.com/.../am5746-pcie-5gt-s-link-retry

    此致、
    Romain

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Romain,  

    正如您在最新帖子中指出的、PCIe_SS2链路训练失败且 LTSSM_EN 位已复位回0。 在正常链路建立情况下、我们可以看到驱动器首先将 LTSSM_EN 位设置为1、然后轮询相同的寄存器和 PCIECTRL_TI_CONF_PHY_CS [LINK_UP]寄存器位。 当 LTSSM 状态到0x11 (L0状态)时、它会继续进行链路协商。 在发生故障的情况下、驱动器不断轮询这些寄存器、并最终超时。 我们可以尝试以下步骤进行调试:

    1.您能否确认您已检查 PCIE_SS1在其中配置为1个通道  

      PCIe_SS1_RC_CFG_DBICS2 [MAX_LINK_WIDTH]

    这应配置为1通道、因此 PCIe1不会尝试使用两个通道。  

    2.此外,您可以尝试将 PCIe_SS2_RC_CFG_DBICS2[MAX_LINK_SPEEDS]设置为0x1,仅适用于第1代,并查看 Qualcomm 卡是否可以稳定链接。 我不确定链路速度是什么问题、因为 Qualcomm 卡应该以第1代启动、然后切换到第2代、因为 RC 支持第2代。 但是、由于链路训练从未进入 L0状态、因此即使是第1代也无法启动。  

    3.在失败案例的日志中,我们可以看到在连续轮询期间 LTSSM 总是为0x0 ,表明该通道处于 DETECT_IDLE 状态——没有检测到卡。 因此作为第三个调试实验、您是否可以尝试在设置了 LTSSM_EN 位的驱动程序代码前添加一个延迟、这将为 WiFi 卡进入链路训练提供更多的时间。 PCIe 规范。 要求卡必须在复位取消置位后的100ms 内进入链路训练。 因此、添加延迟以保证它作为调试步骤。  

    4.在最后一个实验中,当驱动程序链路训练失败时,您是否可以尝试从 Linux 命令行手动设置 LTSSM_EN 位? 然后、立即轮询两个寄存器、查看是否建立链路。 即使建立了链路、也无法在此后看到器件、因为没有进一步的枚举。 但通过该实验、我们可以检查是否存在时序问题。  

    此致

    简体中文

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jian:

    感谢您的回复!

    1.行数是从 devicetree 中定义的、默认情况下它会为 x1通道配置所有 PCIe 控制器。
    在这种情况下,也不使用函数 dra7xx_PCIe_configure_two_lane ()。

    关于寄存器,您的意思是 PCIECTRL_RC_DBICS2_LNK_CAP[MAX_LINK_WIDTH]?

    |--------------- |
    |地址(十六进制)|数据(十六进制)|
    |--------------- |
    | 0x5100107C   | 0x00733C22|
    | 0x5180107C   | 0x00733C22|

    实际上 MAX_LINK_WIDTH 为0x2而 MAX_LINK_SPEED 为0x2
    但我们必须检查 PCIECTRL_RC_DBICS2_LNK_CAS[NEG_LW]

    |--------------- |
    |地址(十六进制)|数据(十六进制)|
    |--------------- |
    | 0x51001080  | 0x10110008 |
    | 0x51801080| 0x10110008|  当链接启动失败时
    | 0x51801080|  0xF0120048|当链接成功时

    PCIe_SS2_RC 在发生故障时仍在使用单通道模式和第1代速度。

    我将尝试向 PCIECTRL_RC_DBICS2_LNK_CAP[MAX_LINK_WIDTH]写入0x1以强制使用单通道模式。

    2.我已经使用了仅限于第1代的设备(Intel),没有任何问题。 我将使用 Qualcomm 模块强制执行第1代速度、将0x1写入 PCIECTRL_RC_DBICS2_LNK_CAP[MAX_LINK_SPEEDS]。

    3.在设置 LTSSM_EN 位之前,我已经尝试添加一个延迟(正如我在这个论坛上找到的其他帖子的建议),我仍然能够重现问题。
    我当前的权变措施是在调用 dw_PCIe_wait_for_link (pci)后检查 LTSSM_EN 是否为0,然后再次重试 dra7xx_PCIe_Establish_link ()直到它通过。

    4.这是通过我的权变措施实现的。 当 dw_PCIe_wait_for_link (pci)失败并且我们再次调用 dra7xx_PCIe_Establement_link ()时,链接已建立。

    [   3.645965] PCI_init_host_bridge
    [   3.645965] dra7-PCIe 51800.PCIe:Host bridge /ocp/axi@1/PCIe@51800000范围:
    [   3.646057] dra7-PCIe 51800.PCIe:      IO 0x0030003000..0x0030012fff -> 0x0000000000
    [   3.646087] dra7-PCIe 51800000.PCIe:     MEM 0x0030013000..0x003fffff -> 0x0030013000
    [   3.646118] dra7xx_PCIe_msi_host_init
    [   3.646179] dra7xx_PCIe_host_init
    [   3.646209] dw_pci_setup
    [   3.646209] dw_PCIe_setup port_link_mode_1_lannes
    [   3.646209] dra7xx_PCIe_stop_link 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.646209] dra7xx_PCIe_stop_link 写入 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.647216] dra7xx_PCIe_Establement_link
    [   3.647216] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.647247] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   3.647247] dra7xx_PCIe_Establement_link 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.647247] dra7xx_PCIe_Establement_link 写入 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x1
    [   3.647247] DW_PCIE_WAIT_FOR_LINK
    [   3.647247] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x1
    [   3.647247] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   3.747344] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0       <<RESET
    [   3.747344] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   3.847442] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.847442] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   3.947570] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.947601] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.047668] dra7xx_PCIE_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.047698] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.147827] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.147827] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.247924] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.247924] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.348022] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.348022] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.448120] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.448120] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.548248] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.548248] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.648406] dra7-PCIe 51800.PCIe:PHY 链路从未出现                                            <<FAIL
    [   4.648406] dra7xx_PCIe_host_init 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.648406] dra7xx_PCIe_stop_link 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.648406] dra7xx_PCIe_stop_link 写入 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.649414] dra7xx_PCIe_Establement_link                                                                                <<重 试
    [   4.649444] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.649444] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.64944] dra7xx_PCIe_Establement_link 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   4.64944] dra7xx_PCIe_Establement_link 写入 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x1
    [   4.64944] DW_PCIe_WAIT_FOR_LINK
    [   4.649444] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x5     <<确定
    [   4.649444] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   4.749542] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x45   <<OK
    [   4.749542] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   4.749572] dra7-PCIe 51800.PCIe:链路接通                                                                         <<OK
    [   4.749572] dra7xx_PCIe_host_init 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x45
    [   4.749572] dra7xx_PCIe_enable_interrupts
    [   4.749572] dra7xx_PCIe_enable_wrapper_interrupts
    [   4.749572] dra7xx_PCIe_enable_msi_interrupts
    [   4.749572] dra7xx_PCIe_host_init exit

    此致、
    Romain

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Romain,  

    实验中:

    >>我将尝试向 PCIECTRL_RC_DBICS2_LNK_CAP[MAX_LINK_WIDTH]写入0x1以强制采用单通道模式。

    请确保为两个 PCIe 控制器进行相同的写入。 我 怀疑 PCIe1试图接管两个 SERDES 通道、但您提到过"dra7xx_PCIe_configure_two_lane ()"从未调用。  

     PCIECTRL_RC_DBICS2_LNK_CAS[NEG_LW]指示协商的链路宽度、因为 WIFI 卡为1通道、因此链路始终以 x1通道结束。  

    有趣的是、当您重试链路训练时、PCIe2将会建立链路、但添加延迟后并没有生效。 您能评论一下您尝试过的延迟时间长度是多少?

    此致

    简体中文

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、

    我在调试 LTSSM 状态时遇到一些问题... 以下是我可以在调试日志中看到的所有 LTSSM 状态:

    DRA7XX_CONF_DEVICE_CMD 0x1:              LTSSM_EN
    DRA7XX_CONF_DEVICE_CMD 0x5:DETECT_ACT + LTSSM_EN
    DRA7XX_CONF_DEVICE_CMD 0x9:POLL_ACTIVE + LTSSM_EN
    DRA7XX_CONF_DEVICE_CMD 0x35:RCVRY_LOCK + LTSSM_EN
    DRA7XX_CONF_DEVICE_CMD 0x39:RCVRY_SPEED + LTSSM_EN
    DRA7XX_CONF_DEVICE_CMD 0x45:l0         + LTSSM_EN

    我更改了 usleep_range () DELAY 值以更频繁地读取寄存器、并在 LINK_WAIT_MAX_RETRIES 之后强制循环退出
    这样,我们就可以看到 dw_pci_wait_for_link ()函数的问题。
    Inded dlw_PCIe_wait_for_link ()不要期望失败...

    如果 DW_PCIe_WAIT_FOR_LINK ()(DRA7XX_CONF_DEVICE_CMD = 0x39)、则 PCIe 栈会触发 OMAP_L3_NOC 错误:

    [   3.681671] OMAP_L3_NOC 44000000.OCP:L3应用程序错误:目标5模块:1 (不可清除)
    [   3.681701] OMAP_L3_NOC 44000000.OCP:L3调试错误:目标5模块:1 (不可清除)

    以下是 PCIe 控制器复位时得到的跟踪:

    [   3.655151] dra7xx_PCIe_probe 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.655181] dra7xx_PCIe_probe 写入 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.655670] dra7-PCIe 51800.PCIe:host bridge /ocp/axi@1/PCIe@51800000范围:
    [   3.655761] dra7-PCIe 51800.PCIe:      IO 0x0030003000..0x0030012fff -> 0x0000000000
    [   3.655792] dra7-PCIe 51800000.PCIe:     MEM 0x0030013000..0x003fffff -> 0x0030013000
    [   3.655914] dra7xx_PCIe_Establement_link
    [   3.655914] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.655914] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   3.656951] dra7xx_PCIe_Establement_link 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.656982] dra7xx_PCIe_Establement_link 写入 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x1
    [   3.656982] dra7xx_PCIe_Establement_link 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x5
    [   3.656982] DW_PCIE_WAIT_FOR_LINK
    [   3.656982] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x5
    [   3.656982] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   3.658050] dw_PCIe_wait_for_link:重试0
    [   3.658050] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x9
    [   3.658050] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0
    [   3.659088] DW_PCIE_WAIT_FOR_LINK:重试1
    [   3.659088] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.659118] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000 <<dra7xx_PCIe_link_up    () return true (BUG)
    [   3.660156] DW_PCIE_WAIT_FOR_LINK:重试2
    [   3.660156] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.660156] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000    <<<、但我们卡在恢复状态
    [   3.661193] DW_PCIE_WAIT_FOR_LINK:重试3
    [   3.661224] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.661224] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000    <<如果 dw_PCIe_wait_for_link ()立即返回
    [   3.662261] DW_PCIE_WAIT_FOR_LINK:重试4
    [   3.662261] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.662261] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000    <<<我们将获得 OMAP_L3_NOC 错误
    [   3.663360] DW_PCIE_WAIT_FOR_LINK:重试5
    [   3.663360] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.663360] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000    << OMAP_L3_NOC 44000000.OCP:L3应用程序错误:目标5 mod:1 (不可清除)
    [   3.664428] DW_PCIE_WAIT_FOR_LINK:重试6
    [   3.664428] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.664428] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000    <<OMAP_L3_NOC 44000000.OCP:L3调试错误:目标5 mod:1 (不可清除)
    [   3.665466] dw_pci_wait_for_link:重试7.
    [   3.665466] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.665496] dra7xx_PCIE_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.666534] DW_PCIE_WAIT_FOR_LINK:重试8
    [   3.666534] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.666534] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.667602] dw_PCIe_wait_for_link:重试9.
    [   3.667602] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.667602] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.668640] DW_PCIE_WAIT_FOR_LINK:重试10
    [   3.668640] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.668670] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.669708] DW_PCIE_WAIT_FOR_LINK:重试11
    [   3.669708] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.669708] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.670776] dw_PCIe_wait_for_link:重试12
    [   3.670776] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.670776] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.671813] DW_PCIE_WAIT_FOR_LINK:重试13.
    [   3.671844] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.671844] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.672882] DW_PCIE_WAIT_FOR_LINK:重试14
    [   3.672882] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.672882] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.673919] DW_PCIE_WAIT_FOR_LINK:重试15
    [   3.673950] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.673950] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.674987] DW_PCIE_WAIT_FOR_LINK:重试16
    [   3.674987] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.674987] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.676025] DW_PCIE_WAIT_FOR_LINK:重试17
    [   3.676055] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.676055] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.677093] DW_PCIE_WAIT_FOR_LINK:重试18
    [   3.677093] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.677093] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.678161] DW_PCIE_WAIT_FOR_LINK:重试19
    [   3.678161] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.678161] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.679199] DW_PCIE_WAIT_FOR_LINK:重试20
    [   3.679229] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.679229] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.680267] DW_PCIE_WAIT_FOR_LINK:重试21
    [   3.680267] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.680267] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.681335] DW_PCIE_WAIT_FOR_LINK:重试22
    [   3.681335] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.681335] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.682373] DW_PCIE_WAIT_FOR_LINK:重试23
    [   3.682403] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x39
    [   3.682403] dra7xx_PCIe_LINK_UP 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x10000
    [   3.683471] DW_PCIE_WAIT_FOR_LINK:重试24
    [   3.683471] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0<<<  此处的 PCIe 控制器复位
    [   3.683471] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0      <<<链接关闭:-(错误

    游戏结束:-(

    现在, dra7xx_PCIe_link_up()将返回 true 并且驱动程序将到达 LINK_WAIT_MAX_RETRIES 并失败
    "PHY 链路从未建立"。

    我们必须采取与 KeyStone PCI DWC 实现类似的措施:
    静态 int ks_pci_link_up (struct dw_PCIe *pci)

       u32 val;

       Val = dw_PCIe_readl_dBi (PCI、PCIe_port_DEBUG0);
       VAL &= PORT_LOGIC_LTSSM_STATE_MASK;
       返回(val == PORT_LOGIC_LTSSM_STATE_L0);
    }

    我们必须为 LTSSM 阶段 L0而不是检查是否存在链路状态。

    注:LTSSM 状态机进入 Recovery 状态前会进入 L0状态。

    git.kernel.org/.../pci-keystone.c

    [   3.762664] dra7-PCIe 51800.PCIe:PHY 链路从未出现
    [   3.762817] dra7-PCIe 51800.PCIe:PCI 主机桥接至总线0001:00
    [   3.762817] PCI_BUS 0001:00:根总线资源[总线00-ff]
    [   3.762817] PCI_BUS 0001:00:根总线资源[IO 0x0000-0FFF]
    [   3.762847] PCI_BUS 0001:00:根总线资源[mem 0x30013000-0x3fffff]
    [   3.762878] PCI 0001:00:00.0:[104C:888] type 01 class 0x000000
    [   3.762908] PCI 0001:00:00.0:寄存器0x10:[MEM 0x00000000-0x000fff pref]
    [   3.762908] PCI 0001:00:00.0:寄存器0x14:[MEM 0x00000000-0x0000ffff pref]
    [   3.763000] PCI 0001:00:00.0:支持 D1
    [3.763000]   PCI 0001:00:00.0: D0 D1 D3hot 支持 PME#
    [3.771575]   PCI: BUS0:禁用快速背靠背传输
    [   3.771575] PCI 0001:00:00.0:桥配置无效([bus 00-00])、重新配置                    <<<这也是错误的
    [   3.771728] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_DEVICE_CMD 0x0
    [   3.771728] dra7xx_PCIe_link_up 读取 PCIECTRL_DRA7XX_CONF_PHY_CS 0x0

    现在的问题是:为什么我们卡在恢复状态(0x0E:RCVRY_SPEED)?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Romain,  

    您能否通过您记录的值确认 LTSSM 状态周期、或者它在最后一个0x45 (L0)上是否稳定?

    如果进行循环,我猜是因为链路无法协商链路速度。 如果你碰巧有一个 PCIe 协议分析器,我们应该能够看到它是否在尝试与第3代 WiFi 卡链接,当它失败,它没有返回到第1代,而是它恢复->检测...

    此外、我正在查看之前的注释、不确定以下实验是否有任何结果:

    >> 1. 您能否确认您已在 PCIe_SS1_RC_CFG_DBICS2[MAX_LINK_WIDTH]寄存 器中检查 PCIe_SS1是否配置为1通道

    >> 2. 此外、您能否尝试将 PCIe_SS2_RC_CFG_DBICS2[MAX_LINK_SPEED ]设置为0x1、仅限第1代、并查看 Qualcomm 卡是否可以链接

    很抱歉响应出现延迟。 我无法到达 e2e。  

    此致

    简体中文  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Romain,  

    此外、我的同事曾问过您是否使用通用 REFCLK 架构、因为我们已经看到通用 REFCLK 解决了类似的链路问题。  

    谢谢
    简体中文

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jian:

    您能否确认 LTSSM 状态是循环显示您记录的值,还是在最后一个0x45 (L0)上稳定?

    由于控制器已复位、最后记录的 LTSSM 状态 I 为0。 预期 LTSSM 状态0x45 (L0)。

    链接协商链接速度失败

    我同意这一点、即链路协商速度失败。
    遗憾的是、我没有 PCIe 协议分析器、我无法测量 PCIe 总线上的任何内容...

    ]> 1. 您能否确认您已在 PCIe_SS1_RC_CFG_DBICS2[MAX_LINK_WIDTH][/ 报价]中检查 PCIe_SS1是否配置为1通道

    让我复查一下。 对我来说、PCIe_SS1应配置为1个通道。

    ]> 2. 此外、您能否尝试将 PCIe_SS2_RC_CFG_DBICS2[MAX_LINK_SPEED ]设置为0x1、仅限第1代、并查看 Qualcomm 卡是否可以链接

    作为权变措施、我从内核 devicetree 中限制了 PCIe 速度:

    /* PCIe LAN1到 Wifi 模块*/
     &PCIe2_RC{
        状态="可以";
        GPIOs =<&GPIO4 0 GPIO_ACTIVE_HIGH>;

       /*由于"链路训练和状态机"(LTSSM)而限制到 PCIe 第1代速度
       *问题。 协商失败后、LTSSM 可能进入 RCVRY_SPEED 状态
       *使用 Wifi 模块的 PCIe 总线 Gen2速度。 RCVRY_SPEED 状态之后跟随着
       * PCIe 控制器的重置未被正确处理或检测到
       * DWC dra7 PCIe 驱动程序。
       */
       max-link-speed =<1>;
     };

    此后、系统正确检测到模块。

    此致、
    Romain

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外,我的同事曾问您是否使用通用 REFCLK 架构,正如我们已经看到常见 REFCLK 解决了类似的链路问题。  [/报价]

    REFCLK 由 PI6C557-05LE 器件提供。

    PI6C557-05LE 的 CLK0连接到 AM5749的 LJCB_CLK
    CLK1连接到连接到 PCIe_SS1的 PCIe 器件
    CLK2连接到连接到 PCIe_SS2的 PCIe 器件
    CLK3未使用。

    将 Qualcomm Wifi 模块移至 PCIe_SS1不存在问题、速度协商为第2代。

    此致、
    Romain