Jetson MGBE 25G QSFP 定制
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/jetson-customize-mgbe。
技能介绍
问题背景
在 NVIDIA Jetson Thor(T264) 上,SoC 会暴露 mgbe0~mgbe3 四个 MGBE 控制器。定制载板若走 25G QSFP(或 10G/1G 光纤通路),SerDes 会接到其中一路;笼前可能有外部 MDIO PHY,也可能没有。冷启动能过,但 ip link show mgbe* 常出现 state DOWN / NO-CARRIER,或控制器在设备树里根本未启用——这通常不是「网线没插好」,而是 BPMP 侧分配与内核侧 status="okay" + &mgbeN 上的 PHY 描述没有对齐。
本技能不负责 UPHY 通道分配,也不编辑任何 ODMDATA 令牌(mgbeN-speed-*、mgbeN_status=* 等由 /jetson-customize-uphy 在单一原子 ODMDATA 提交里处理)。它的产出是:向 bsp_sources/ 硬件仓库中的复合定制叠加 .dts 追加片段,形成一次 git 提交;.dtbo 编译与烧录注册由 /jetson-build-source 负责。
技能如何工作
运行前需满足:/jetson-init-source 已就绪、/jetson-derive-carrier 已跑过、且 /jetson-customize-uphy 已选用分配了目标 MGBE 的 uphy1-config-N(例如 Thor 上 uphy1-config-8 对应 MGBE0..3 的 25G)。存在 custom_carrier: 时,载板原理图与 pinmux 表格为硬性输入,缺一则拒绝执行。
核心流程概要:
- 解析配置与文档,核对叠加跟踪器与适配指南、引脚映射。
- 按
questions.json对每个控制器收集:PHY 模式、连接类型、I²C/复位 GPIO、compatible 等。 - 反编译 BPMP DTB,从
phy_mode推导速率,并确认令牌应写子节点还是顶层连字符形式(老版本 BPMP 可能没有/mgbe/mgbe@N子树)。 - 用
pin_verifier.py校验 MDC/MDIO/RESET/INT;不匹配时导向/jetson-customize-pinmux。 - 向复合
.dts写入带/* custom-bsp: mgbe:mgbe... */约定的片段,并做cpp/dtc/fdtoverlay预检。 - 写入
.jetson-customize-mgbe.json侧车并输出摘要,按 procedure 链式提示下游技能(不要用打印的「下一步」替代 AskUserQuestion)。
边界与坑点
- UPHY 未分配目标 MGBE 时本技能应拒绝;若强行烧录,可能出现 BL31 SError(fmonupdateconfig: fault 0x80)。
mdio子节点在phy_attach_kind=="phy"时必须同时有#address-cells与#size-cells,否则内核探测会拒绝phy@的reg,MGBE 永远起不来。- 叠加层根
compatible必须与运行中 DT 的compatible相交,否则 UEFI 会静默跳过叠加——烧录成功但 MGBE 仍禁用。 - 不要在本技能里改
OVERLAY_DTB_FILE或 ODMDATA;也不要仅靠 ODMDATA 去「禁用」本已正常的控制器——禁用应走内核叠加层status="disabled"。 - JSON 侧车是工具状态,面向设备的权威输出仍是 ODMDATA(由 uphy 技能)+ 叠加
.dts+ 对应 git 提交。
使用场景
- 定制 Thor 载板已跑完 UPHY(如 uphy1-config-8),需要在 bsp_sources 里为 QSFP 对应的 mgbeN 写内核叠加并配对 PHY
- 冷启动正常但 `ip link` 里 mgbe 为 DOWN 或 NO-CARRIER,需核对 BPMP 与内核 `status="okay"`、MDIO 节点是否一致
- 用户要求「启用 25G」「配置 QSFP」或 10G/1G 光纤通路,且载板原理图与 pinmux 表已登记在配置 documents 中
- pin_verifier 报 MDC/MDIO/RESET 与 pinmux 不一致,在确认 HSIO 后需先/fix 引脚再追加 mgbe 复合叠加片段
适合人员
- 负责 Jetson Thor 定制载板 BSP 的嵌入式工程师,要在不碰 ODMDATA 的前提下把 MGBE 控制器侧在内核 DT 里启用
- 硬件工程师手上有 custom_carrier 原理图与 pinmux 表,需要把 QSFP 笼到 mgbe 的 I²C/GPIO/MDIO 路由写进叠加并过 pin 校验
- 已用 jetson-customize-uphy 选好分配 MGBE 的配置,下一步只缺复合 .dts 提交与 BPMP DTB 令牌形式审计的集成同事
- 现场 bring-up 人员遇到 mgbe 控制器未出现在设备树或链路不起,需要按 questions.json 逐控制器补齐 PHY 模式与 compatible