Jetson UPHY Lane Allocation
Configure UPHY lane allocation for Orin and Thor custom carriers.
The skill requires an active profile, carrier schematic, and pinmux file, and refuses to proceed when required evidence is missing. It gates configuration choices on user confirmation, scopes edits to the source tree and overlays, and forbids editing the upstream BSP. Atomic commits, a sidecar, and troubleshooting guidance improve recoverability. However, explicit backups, rollback procedures, and pre-commit hardware validation are absent, while ODMDATA, kernel DT, build, and flashing workflows can create consequential external effects, so points are deducted.
The documentation provides detailed steps, fail-closed prerequisites, ODMDATA grammar, troubleshooting, and stock-versus-desired comparisons. Static evidence cannot establish execution reliability; SKILL.md says to ask before dispatching sub-skills while procedure.md says dispatch is automatic, and the allocation-table timing conflicts with the stated step order. The workflow also depends on runtime documents, DTB tooling, and other skills. Failure guidance is useful but not test-covered, so the score is limited.
Triggers, target platforms, supported scope, exclusions, and prerequisites are relatively clear, and runtime discovery avoids hard-coded configuration tables. The skill does not explicitly support Chinese-language interaction, and its Adaptation Guide web fallback depends on overseas NVIDIA documentation without a mainland-China reachability alternative. These limitations reduce environment fit.
The skill has a version, layered primary and reference documents, troubleshooting notes, sidecar schema, limitations, and relatively stable naming and output-table conventions. Its frontmatter declares Apache-2.0 while the skill card declares CC-BY-4.0 plus Apache 2.0, and the supplied license metadata is NOASSERTION. Author metadata is incomplete, and a clear changelog and maintenance-responsibility path are missing, so points are deducted.
The objective is clear and the workflow connects UPHY selection, ODMDATA, controller state, and kernel overlays, with directly usable commit and summary formats. The committed benchmark reports strong results on two positive tasks, but the sample is very small, contains no negative-trigger tasks, and does not verify real hardware outcomes or the complete downstream chain. The static calibration therefore limits the score and further uncertainty reduces it.
The files provide concrete token grammar, paths, state transitions, failure symptoms, and a limited benchmark record, making some claims auditable. The benchmark covers only two tasks and there is no committed CI test suite, independent reproduction log, or multi-source corroboration. No commands or hardware validation were executed in this review, so the score remains limited.
- Resolve the conflicting sub-skill dispatch timing and confirmation requirements between SKILL.md and procedure.md before adoption.
- Add explicit backup, rollback, and pre-flash validation procedures for ODMDATA, carrier configuration, and overlays.
- Verify mainland-China access to the Adaptation Guide or provide a local/offline documentation path.
- Reconcile the Apache-2.0 versus CC-BY-4.0 license statements and add complete author, changelog, and maintenance metadata.
What does this skill do, and when should you use it?
This skill configures UPHY lane allocation for Jetson Orin (Tegra234) and Thor (Tegra264) custom carriers. It discovers valid configurations at runtime from the Adaptation Guide, carrier schematic, Module Design Guide, and SoC TRM instead of using hard-coded option tables. It edits the carrier flash-conf fork’s ODMDATA and coordinates PCIe, MGBE, and USB sub-skills for required kernel-device-tree overlays. It does not handle pinmux, PCIe-only edits, builds, flashing, promotion, or upstream BSP changes.
Validates the active target profile, Linux_for_Tegra Git repository, and derived carrier configuration; resolves the required hardware documents; enumerates matching uphy0-config-N and, on Thor, uphy1-config-N options; asks the operator to select configurations; creates one atomic ODMDATA commit containing UPHY and controller tokens, including the UPHY_CONFIG clear for uphy0-config-6; builds a per-controller allocation table; dispatches PCIe, MGBE, and USB sub-skills for kernel-DT overlay fragments; and produces a changes summary and downstream next-step prompts.
- A Jetson Orin custom-carrier developer needs to remap PCIe, MGBE, USB 3, or UFS lanes.
- A Jetson Thor carrier requires coordinated allocation across both UPHY surfaces.
- A UPHY-fed controller fails to enumerate after flashing and BPMP versus kernel-DT allocation must be checked.
- A cold boot enters a BL31 SError or BPMP firmware reboot loop after a lane-allocation change.
What are this skill's strengths and limitations?
- Covers the end-to-end UPHY allocation workflow for Tegra234 Orin and Tegra264 Thor custom carriers.
- Uses runtime document-based discovery rather than guessed or hard-coded allocation tables.
- Coordinates UPHY tokens, controller ODMDATA, and kernel-DT overlays in one workflow.
- Addresses specific failure modes involving uphy0-config-6, disabled MGBE controllers, and BPMP-DTB mismatches.
- Limited to Tegra234 and Tegra264.
- Refuses to run without the Adaptation Guide and, for custom carriers, both the schematic and pinmux XLS.
- Does not edit pinmux, handle some PCIe-only properties, or build, flash, or promote images.
- The supplied material provides no independent test suite or evidence of broader platform coverage.
How do you install this skill?
Install the skill with the repository’s documented skills CLI flow:
npx skills add nvidia/skills --skill jetson-customize-uphy --yes
The CLI prompts for the installation destination; the supplied material does not specify a fixed local folder.
How do you use this skill?
After installation, ask an Agent something like “configure UPHY lane allocation for my Jetson custom carrier” or “set uphy0-config-N for this carrier.” The run requires an active target profile, reference_devkit and custom_carrier data, an initialized Linux_for_Tegra Git repository, a derived carrier conf, and both the custom-carrier schematic and pinmux XLS. The skill presents tables, requires operator confirmation, commits ODMDATA, and chains to relevant sub-skills.