Jetson USB 端口定制
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/jetson-customize-usb。
技能介绍
要解决什么问题
在 Jetson Thor(Tegra264)或 Orin(Tegra234)定制载板上,USB2 / USB3 SS 各连接器往往与参考开发套件的路由、集线器扇出和 UPHY 绑定不一致。若只在设备树里改一处——例如只 status="disabled" 某个 usb-N 端口,或只动 xHCI 的 phys 列表——内核里 tegra-xusb 可能在探测阶段直接失败,表现为 所有端口 lsusb 为空,而 USB 网卡(如 192.168.55.1)仍可能正常。NVIDIA 在基础 DTB 里对库存未用 SS 口(如 usb3-3)的「三处同步禁用」就是正确范式;定制载板需要按原理图与 pinmux 复现同一纪律。
技能如何工作
本技能面向 agent 驱动 流程:从活动配置、/Linux_for_Tegra 树内 DTB、模块设计指南与 custom_carrier 原理图 / pinmux 表格解析每个端口的角色、最大速度、VBUS-EN / OC、Type-C CC1/CC2、USB3 SS 的 UPHY 通道,并构建 SS 与 USB2 伴生关系图。对每个待改端口,必须在三个 DT 位置 同时翻转(三位锁步):
- 通道(PHY 提供者) —
xusb_padctl/pads/usb/lanes/usb-N - 端口(控制器绑定) —
xusb_padctl/ports/usb-N(含dr_mode、伴生、vbus-supply等) - 主机 xHCI phys —
bus@0/usb@的phys+phy-names
另有两条硬规则:规则 A 通道与配对端口必须一起改;规则 B 禁用 USB2 时必须级联其 SS 伴生,否则常见 failed to enable PHYs: -19。输出是对 bsp_sources/ 硬件仓库中复合定制叠加 .dts 的片段追加与提交,经 fdtoverlay 与合并后不变性检查;UPHY 通道分配由兄弟技能 jetson-customize-uphy 负责,本技能读取其 JSON 侧车而非改 ODMDATA。
边界与注意
- 仅 内核 DT 叠加层;不编译
.dtbo、不注册烧录项(交给 jetson-build-source)。 - 存在
custom_carrier:时 必须 提供custom_carrier_schematic与custom_carrier_pinmux_xls,否则拒绝运行——端口 GPIO 与 SS 路由无法猜测。 - 平台约束:仅 usb2-0 支持 OTG / tegra-xudc;其余 USB2 与全部 USB3 SS 为主机模式。
- 先决:
/jetson-init-source、/jetson-derive-carrier;SS 非库存 UPHY 时需先跑 jetson-customize-uphy。SFIO 引脚问题应走 jetson-customize-pinmux,勿在此直接改 pinmux DTSI。
使用场景
- 定制载板烧录后某路 USB2/USB3 无法枚举,需按原理图与 pinmux 在三处 DT 同步启用该连接器。
- 载板未使用的 USB 集线器扇出或空焊 SS 口需要在叠加层里禁用,并级联伴生 USB2 避免 PHY -19。
- jetson-customize-uphy 已重分配 SS 的 UPHY 通道,需据此更新各端口的 padctl、端口节点与 xHCI phys 列表。
- 曾只改单处 DT 导致全口 lsusb 为空,需按三位锁步重生成片段并通过 fdtoverlay 合并后不变性检查。
适合人员
- 负责 Jetson Thor/Orin 定制载板 BSP 的工程师,要把各 USB 连接器策略落成 bsp_sources 里的复合叠加 .dts 提交。
- 做载板联调的硬件工程师,需确认 VBUS-EN、过流与 Type-C CC GPIO 已通过 pin 验证并写入 ports 节点。
- 维护 Linux_for_Tegra 与 bsp_sources 流水线的集成人员,在 derive-carrier 与 uphy 之后收口 USB 启用/禁用与 dr_mode。
- 现场排查 tegra-xusb 主机探测失败或 xHCI 未绑定端口的支持工程师,需按伴生关系图修复叠加层而非手改单节点。