Skip to content
Development
Skill

/jetson-flash-image

Use to flash a promoted BSP image to a Jetson DUT in RCM mode via flash.sh or l4t_initrd_flash.sh. Do NOT use for BSP customization, image promotion, or carrier derivation.

From plugin
skills
3.8k200 skills

Claude Code

$ npx -y skills add NVIDIA/skills --skill jetson-flash-image --agent claude-code

SKILL.md

jetson-flash-image.SKILL.md
name: jetson-flash-image
description: Use to flash a promoted BSP image to a Jetson DUT in RCM mode via flash.sh or l4t_initrd_flash.sh. Do NOT use for BSP customization, image promotion, or carrier derivation.
version: 0.0.1
license: "Apache-2.0"
metadata:
  data-classification: public
  author: "Jetson Team"
  tags:
    - bsp
    - flash
  domain: meta

Flash BSP Image

Purpose

Push a promoted `bsp_image` to a Jetson DUT by running the NVIDIA flashing toolchain (`flash.sh` or `l4t_initrd_flash.sh`) from the in-tree `Linux_for_Tegra/`. The DUT must be in RCM (recovery) mode at flash time. This is the **flash leg** of the BSP overlay deploy chain (`/jetson-promote-image` → `/jetson-flash-image`); see the BSP overlay workflow at `../../context/bsp-customization-workflow.md`.

**Design principle.** Four invariants govern this skill; each is fully explained in the Instructions step that owns it.

  • Host-side flash variables (`<board>`, `<boot-dev>`, flow tool, per-board `.conf`, `boardctl`) are resolved from the active profile or the in-tree BSP.
  • Artifact paths (`DTB_FILE`, `BPFDTB_FILE`, partition XML, BCTs, DRAM training) are resolved inside `flash.sh` / `l4t_initrd_flash.sh` at flash time from `board_sku` / `board_FAB` read off the DUT's EEPROM.
  • The DUT's EEPROM is authoritative; the profile is an authoring-time prediction reconciled by the preflight cross-check. Empty EEPROM values are valid, not refusal triggers.
  • The user explicitly confirms a printed *resolution* before flashing.

Out of scope: BSP customization (use the `/jetson-customize-*` skills), promoting the overlay tracker into `bsp_image` (use `/jetson-promote-image`), and producing a custom carrier's flash conf (use `/jetson-derive-carrier`).

Prerequisites

  • Active target-platform profile resolved per `../../context/target-platform-contract.md` with a populated `bsp_image:` block. Refuse and route to `/jetson-init-image` if missing.
  • `<bsp_image.root_path>/Linux_for_Tegra/` exists on the host and has been through `apply_binaries.sh` (route to `/jetson-init-image` otherwise).
  • A per-board flash `.conf` resolvable via the active-block precedence rule (`custom_carrier.flash_config` → `reference_devkit.flash_config`). Refuse and route to `/jetson-derive-carrier` or `/jetson-init-image` if absent.
  • For the prior overlay → image leg: `/jetson-promote-image` has already run (or a standalone re-flash with no promotion changes since the last flash).
  • A DUT cabled to the host that can be driven into RCM mode either via the in-tree `boardctl` or by manual recovery + reset buttons.

When to invoke

  • After `/jetson-promote-image` has updated `bsp_image` to carry the desired customizations.
  • Standalone re-flash with no promotion changes since the last flash.
  • DUT must be in RCM mode before invocation.

Instructions

Resolve target and `bsp_image`

Resolve the active profile per [`../../context/target-platform-contract.md`](../../context/target-platform-contract.md). Refuse if `bsp_image:` is missing or `<bsp_image.root_path>/Linux_for_Tegra/` does not exist (route the user to `/jetson-init-image`).

Resolve the flash conf path

Pick the per-board `.conf` using the active-block precedence rule from [`target-platform-contract.md`](../../context/target-platform-contract.md): `custom_carrier.flash_config` when present, else `reference_devkit.flash_config`. Verify the chosen file exists under `<bsp_image.root_path>/Linux_for_Tegra/`. Refuse if absent — route the user at `/jetson-derive-carrier` (custom carrier) or `/jetson-promote-image` / `/jetson-init-image` (reference devkit).

Bind `<board>` as the basename of the resolved `.conf` minus the `.conf` suffix (e.g. `jetson-agx-thor-devkit.conf` → `<board>=jetson-agx-thor-devkit`). the "Invoke the flash" step's command shape consumes this binding directly.

**No dispatch preview at this stage.** Artifact resolution (`DTB_FILE`, `BPFDTB_FILE`, partition XML, MB1 BCTs, DRAM training tables) happens inside `flash.sh` / `l4t_initrd_flash.sh` during image generation, using `board_sku` and `board_FAB` **read from the DUT's EEPROM in recovery mode** — not values typed in from the profile. The profile is an authoring-time *prediction*; the DUT EEPROM is *authoritative* at flash time. The "Preflight checks" step's EEPROM cross-check reads EEPROM and refuses the flash on profile / EEPROM mismatch, so passing preflight is what guarantees the flash-time dispatch will pick the artifacts the profile expects.

For static analyses outside the flash flow that need predicted artifact paths (KB generation, `customize-*` skills locating files to edit), see the standalone snippet in [per-board conf dispatch](../../context/bsp-customization-software-layers.md#per-board-conf-dispatch--update_flash_args_common) — that snippet is valid for *BSP-side* resolution but **not** as a flash-time preview.

Select `<boot-dev>` and flash flow

`<boot-dev>` is resolved deliberately, never assumed. Source order:

1. If the active profile records the boot device, use it. 2. Otherwise, prompt the user with the choices the per-board conf actually supports (`internal`, `external`, `nvme0n1p1`, `mmcblk0p1`, etc., depending on chip family and conf variant).

Pick the flow tool from the matrix below:

| Chip family | Default boot media | Tool | |---|---|---| | T234 / Orin | eMMC / SD | `flash.sh` | | T234 / Orin | NVMe / USB | `l4t_initrd_flash.sh` | | T264 / Thor | NVMe / UFS | `l4t_initrd_flash.sh` |

Massflash and `--flash-only` re-runs use the same tool selection but add their respective flags.

Put the DUT into recovery mode

Drive the device into recovery via the in-tree `boardctl` (preferred) or by manually pressing the recovery button followed by the reset button.

The full procedure — where to find `boardctl` under `Linux_for_Tegra/`, how to enumerate `-t` targets and pick one (recommend `topo`), the exact `recovery` verb to use, and the manual fallback — lives in [`ref

Read more
@nvidia
Ships withskills

Official, NVIDIA-verified Agent Skills for Claude Code, Codex, and other coding agents.

3.8k200 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
3.8k
Star history of NVIDIA/skills on GitHub, a chart by star-history.com

Other skills on skills.

nvidia-skill-finder

nvidia-skill-finder

Use for NVIDIA-related requests where an NVIDIA skill might help, even if the user did not ask for a skill. Trigger on NVIDIA…

@nvidia@nvidiaInstall Skill
accelerated-computing-cudf

accelerated-computing-…

Official NVIDIA-authored guidance for NVIDIA cuDF GPU DataFrames, pandas acceleration, dask-cuDF, ETL, joins, groupby,…

@nvidia@nvidiaInstall Skill
amc-run-rtsp-calibration

amc-run-rtsp-calibrati…

Calibrate a new dataset from live RTSP camera streams via the AutoMagicCalib REST API. Use when the user provides RTSP URLs or…

@nvidia@nvidiaInstall Skill
amc-run-sample-calibration

amc-run-sample-calibra…

Run end-to-end calibration on the shipped sample dataset (sdg_08_2_sample_data_010926.zip) against a running AMC microservice.…

@nvidia@nvidiaInstall Skill
amc-run-video-calibration

amc-run-video-calibrat…

Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live…

@nvidia@nvidiaInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about jetson-flash-image.

Which coding agents can use jetson-flash-image?
jetson-flash-image installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.