Jetson Pinmux 定制器
从引脚复用表生成 Jetson 载板配置。
文档要求逐针用户确认、前置条件校验、提交预览、避免修改上游 BSP,并说明输出位置和数据分类为 public;但未明确回滚流程、依赖来源/完整性验证、脚本写入权限边界或失败后的恢复机制,因此扣分。
流程、脚本和错误反馈较详细,包含查找歧义、无匹配、无 GPIO 能力及缺失 DTSI 块的处理;但静态代码显示生成器主要硬编码 Thor/tegra264,与声明支持 Orin 或 Thor 不一致,且 procedure 要求原子写入而 save_session 直接写文件,故扣分并受静态上限限制。
触发词、适用场景、前置条件、非适用范围和固定功能焊盘边界描述清晰;但没有中文交互或大陆网络适配证据,且 Orin 兼容性存在疑问,因此扣分。
具有 front matter、版本、Apache-2.0 许可、步骤、陷阱、脚本表、引用和维护工作流;但作者格式不完整,缺少推荐的 Instructions/Examples 章节、变更日志和明确维护责任,BENCHMARK 还记录了这些结构问题,因此扣分。
目标输出明确,包括三类 DTSI、wrapper include、sidecar 和一次批量提交;BENCHMARK 声称两项正向任务通过,但覆盖很窄且未提供可独立复核的输出,且 Orin 实际生成能力不确定,因此仅给有限分数。
源文件包含可审计的脚本、输入校验、标记幂等逻辑和 benchmark 报告;但没有随本技能提供的测试套件或 CI 覆盖关键路径,benchmark 结果也缺乏可复现细节,因此仅部分给分。
- 声明支持 Orin 或 Thor,但 generate_dtsi.py 使用 tegra264、Thor 列映射和 Thor 专用输出逻辑;在 Orin 上使用前必须补充或验证实现。
- 脚本中的 session.json 写入不是原子写入,执行中断可能留下部分状态;应增加临时文件加重命名和失败恢复。
- BENCHMARK 只有两项正向任务、无负向任务,且报告中的评估结果不能替代本次静态审查或独立测试。
- 提交虽有预览门控,但未给出自动回滚或完整备份策略;用户应在提交前确认 staged diff。
这个 Skill 能做什么,适合哪些场景?
该技能面向 Jetson Orin 或 Thor 定制载板,根据 pinmux XLSM 为每个 CVM 球位配置 SFIO、方向和初始状态。它通过交互式 Q1–Q6 流程修改引脚,并一次生成 pinmux、gpio 和 padvoltage 三个 BCT DTSI 文件。它不处理内核 DT overlay 或 ODMDATA,因此适合已经完成载板派生、准备编写 pinmux 的 Jetson BSP 工程。
读取已注册的 pinmux XLSM,使用 bundled modify_pinmux.py 解析并生成每载板 pinmap JSON;支持按 CVM 球位、Verilog 名称、信号或 DT pin 查询引脚,展示可用 SFIO、默认值及是否可配置;通过问答设置 SFIO、方向、初始状态,以及在适用时设置 pull、drive_type 和 open_drain;生成三个 BCT DTSI 文件到 Linux_for_Tegra/bootloader/,并维护会话 shim、运行状态 sidecar 和单次批量提交所需的修改。
- Jetson 载板开发者需要把某个 CVM 球位从 GPIO 改为外设功能时。
- BSP 工程师需要为自定义载板设置引脚方向和上电初始状态时。
- HSIO 相关技能报告 pin mismatch,需要回到 pinmux XLSM 修正引脚分配时。
- 已经运行 `/jetson-derive-carrier`,现在需要从新编辑的 XLSM 生成三类 pinmux-side BCT DTSI 时。
这个 Skill 有哪些优点和局限?
- 以 XLSM 作为每个 CVM 球位的配置事实来源。
- 覆盖查询、交互式设置、DTSI 生成和提交前状态管理。
- 对固定功能 pad、GPIO 不可用引脚和重复生成提供明确约束。
- 一次生成 pinmux、gpio、padvoltage 三个 BCT DTSI。
- 必须具备 active profile、载板派生结果和特定目录结构,不能独立完成完整 BSP 初始化。
- 仅处理 pinmux-side BCT DTSI,不处理内核 DT overlay、ODMDATA 或 `OVERLAY_DTB_FILE`。
- 源材料没有提供测试套件、已验证平台清单或具体 Orin/Thor SKU 覆盖范围。
- 部分 Thor 模块可能存在多个 DTSI 变体,脚本会产生警告,需要人工确认替代变体。
如何安装这个 Skill?
运行 npx skills add nvidia/skills --skill jetson-customize-pinmux --yes。README 未规定该技能在具体客户端中的本地安装目录;安装后,客户端在遇到相关任务时加载该技能。
如何使用这个 Skill?
准备 active profile、已初始化为 Git 仓库的 Linux_for_Tegra/、/jetson-derive-carrier 生成的配置引用,以及 profile 中登记的 pinmux XLSM,并确保安装 openpyxl>=3.1。然后向代理提出“configure pin”“set SFIO”或“set pin direction”等请求;技能会依次执行 probe、lookup、Q1–Q6 设置和 generate。固定功能 pad 会跳过 Q4–Q6;生成后还需把 bootloader/generic/BCT/ 下 wrapper 的 #include 指向新 DTSI。
这个 Skill 与同类方案有什么区别?
相较于 sibling skills jetson-customize-uphy、jetson-customize-pcie 和 jetson-customize-camera,该技能专注 per-pin pinmux 配置,并明确没有 kernel-DT overlay surface 或 ODMDATA 编辑。