内容:
环境信息
-
板卡:Jetson AGX Orin Developer Kit (p3737-0000 + p3701-0000, 32GB) + 定制载板
-
出问题版本:JetPack 7.2 (L4T r37.x),内核 6.8.12-1021-tegra
-
正常基线版本:JetPack 6.2 (L4T r36.4),内核 5.15.148-tegra(同硬件同载板 WiFi 工作正常)
-
WiFi 卡:Realtek RTL8822CE(PCI ID
10ec:c822),M.2 Key E,位于 PCIe C7 控制器pcie@141e0000(linux,pci-domain=<7>,8 lanes)
问题描述
-
UEFI 阶段正常:UEFI Shell 中执行
pci可以枚举到07:01:00 Vendor 10EC Device C822,链路训练成功。 -
Linux 启动后失败:
lspci中 bus 0007 域只有 Root Port0007:00:00.0 [10de:229a],没有任何 downstream 设备。 -
dmesg 关键日志:
tegra194-pcie 141e0000.pcie: supply vddio-pex-ctl not found, using dummy regulator
tegra194-pcie 141e0000.pcie: Phy link never came up (出现两次)
Root Port 枚举正常,但下游链路始终起不来。
已排查项(全部与工作正常的 r3644 逐项对比)
-
设备树已 100% 排除:C7 节点
pcie@141e0000与 r3644 逐属性一致——status="okay"、num-lanes=<8>、linux,pci-domain=<7>、8 个 p2u_gbe PHY 引用(phy@3f20000起)、reg/ranges/interrupt-map/iommu-map 全同。 -
SERDES lane 互斥已处理:确认
ethernet@6800000(MGBE0, 10G) 与 C7 共用p2u_gbe_0~7lane,已在设备树中设为disabled(r3644 当年同样做法,且 r3644 下 C7 正常)。 -
PHY 驱动无差异:p2u PHY 驱动两版本之间 diff 为空。
-
时钟/供电无报错:dmesg 中无任何 regulator/clk/reset 错误;
vddio-pex-ctl走 dummy regulator(与 r3644 相同路径)。 -
实验 1(失败):patch 内核 6.8 dwc 核心
dw_pcie_link_set_max_link_width,恢复为按num-lanes写链路宽度寄存器(MODE=8/WIDTH=8,与 5.15 行为完全一致)→ 仍 “Phy link never came up”。 -
实验 2(失败):添加/删除
vddio-pex-ctl-supply属性 → 行为无任何变化。 -
devmem 读 C7 寄存器返回全 0xFFFFFFFF(被 SMMU 拦截),无法做寄存器级调试。
想请教 NVIDIA 官方
-
6.8 内核 dwc 核心 / tegra194-pcie 驱动的 link 训练流程相对 5.15 是否有已知变更或已知问题?
-
为什么 UEFI(同样硬件、同样冷启动)可以 link,而 Linux 下无法 link?是否存在 PHY power_on 与 LTSSM 使能的时序差异?
-
是否需要为 C7 补充特定的 p2u PHY / iATU 配置?