Agent Skills
返回列表
💻

Jetson PCIe 内核定制

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/jetson-customize-pcie。

技能介绍

问题背景

在 Tegra264(Thor,pcie@C0..C5)和 Tegra234(Orin,pcie@C0..C10)上,PCIe 控制器与 USB3、MGBE、UFS 共用 UPHY 通道池。要让某个插槽或 M.2 在烧录后能正确枚举,BPMP 侧的 ODMDATA 与 内核 DT 叠加层 必须同时一致:前者管 PHY 电源与参考时钟,后者管内核探测、通道宽度、链路速度与 RC/EP 模式。只改一边会出现典型故障——禁用控制器却未关 ODMDATA 时 BPMP 仍给 PHY 上电;或 ODMDATA 已关电但内核仍去探测,从而在 dmesg 里看到链路超时。

技能如何工作

本技能只产出内核 DT 叠加层,把 jetson-customize-uphy 侧车(.jetson-customize-uphy.json)里已确定的控制器 enable/通道分配,转成按控制器划分的 fragment@N 块,按 bsp-customization-kernel-dtb.md 追加到 bsp_sources/ 的复合定制 .dts。不编辑 ODMDATA="..." 及 pcie@N_status、pcie@N_max-link-speed 等令牌——那些由 /jetson-customize-uphy 在烧录配置分支做原子提交。

流程要点包括:对照开发套件与定制载板拓扑(反编译 DTB、在原理图里查 PEX_* 网络);用 pin_verifier.py 核对 PE_CLKREQ_L、PE_RST_L 等;从 UPHY 分配表推导各控制器的 okay/disabled、lanes 与 speed(模式默认硬绑定 RC);预检 dtc/fdtoverlay 后提交叠加层;最后做 ODMDATA 与叠加层交叉检查,矛盾时停止并询问用户,不会静默 git reset --hard。

边界与注意

  • 先决条件:/jetson-init-source、/jetson-derive-carrier、/jetson-customize-uphy 已跑通;定制载板必须提供 documents.custom_carrier_schematic 与 documents.custom_carrier_pinmux_xls,缺一则拒绝运行。
  • EP 模式仅在步骤中显式 mode_override="ep" 时才会写入;日常路径是 RC。
  • 烧录配置里叠加层的 Makefile/注册由 /jetson-build-source 负责,本技能不在范围内。

使用场景

  • 定制载板烧录后 M.2 或 PCIe 插槽无法枚举,需在 `bsp_sources` 追加与 UPHY 分配一致的内核叠加层
  • 运行 `jetson-customize-uphy` 切换通道配置(如启用 PCIe C3)后,要为各控制器生成对应的 `fragment@N` 片段
  • 链路在 `dmesg` 中以错误通道宽度训练,需核对叠加层 `num-lanes` 与侧车中的 UPHY 通道数是否匹配
  • 从开发套件迁移到定制载板时,需对照原理图 `PEX_*` 网络与反编译 DTB 确认 PCIe 拓扑再写叠加层

适合人员

  • 负责 Jetson Orin/Thor 定制载板 BSP 集成、需在 UPHY 技能之后补齐 PCIe 内核 DT 的嵌入式工程师
  • 持有载板原理图与 pinmux 表、要在不手改 ODMDATA 的前提下完成 PCIe 控制器侧设备树定制的硬件软件协同人员
  • 烧录后排查 `dmesg` PCIe 链路超时或枚举失败、需做 ODMDATA 与叠加层一致性交叉检查的 Linux 驱动/BSP 维护者
  • 按智雨 Jetson 定制工作流依次执行 derive-carrier、customize-uphy 后,继续推进 PCIe 叠加层提交与预览门确认的集成开发者