·
Last changedVersion:
This version passed the hardening gate. Hardening updated the skill content and independently checked the resulting changes. Classified findings before hardening: 4. Classified findings closed: 0. Classified findings remaining: 4. Unclassified scanner findings remaining: 0. Review findings closed: 0. Review findings remaining: 16.
4
4
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
SKILL.md | Privilege Escalation & Host / Cloud Compromise | Privilege escalation | Medium | Open | |
evals/evals.json | Sensitive Data & Secret Exposure | Agent snooping | Medium | Open | |
evals/evals.json | Privilege Escalation & Host / Cloud Compromise | Privilege escalation | Medium | Open | |
BENCHMARK.md | Sensitive Data & Secret Exposure | Agent snooping | Medium | Open |
4 findings
Memory is reserved across four layers ordered by boot chronology (higher row = earlier in boot, closer to hardware):
| Layer | Content | Key files |
|---|---|---|
MB1 BCT | firmware carveouts | per-module misc DTS |
MB2 BCT | firmware loading + AST controls | per-module misc DTS |
Kernel DTS | reserved-memory and driver binding | per-module DTS |
SWIOTLB | DMA bounce pool size |
|
Critical rules:
#ifdef/#else looks. Verify the merged binary.target-platform-contract.md; stop on mismatches instead of guessing.| Keyword | MB1 BCT carveouts | MB2 BCT | Kernel DTS |
|---|---|---|---|
| DCE-family (see chip table) | DCE |
|
| RCE/VI/ISP-family | RCE | recommended: VI/ISP/NVCSI → disabled |
| Scenario | T234 (Orin) | T264 (Thor) |
|---|---|---|
|
|
|
|
|
|
File: Linux_for_Tegra/bootloader/generic/BCT/tegra<chip>-mb1-bct-misc-<module>.dts
(e.g. tegra234-mb1-bct-misc-p3767-0000.dts for Orin Nano,
tegra264-mb1-bct-misc-p3834-0008-p4071-0000.dts for Thor).
For each carveout, add inside the existing carveout node:
File: Linux_for_Tegra/bootloader/generic/BCT/tegra<chip>-mb2-bct-misc-<module>.dts
(includes tegra<chip>-mb2-bct-common.dtsi).
For each target cluster:
auxp_controls@<index>:
/delete-node/ auxp_ast_config@<idx>;Look up indices in common.dtsi: auxp_controls@N carries a comment
naming its cluster; auxp_ast_config@N has ast_region children whose
carveout = <CARVEOUT_…>; lines identify the owner.
Display — disable display@<addr>, plus dce@<addr> if exposed as
a separate kernel node.
Camera — under host1x@<addr>, disable whichever of vi* / isp*
/ nvcsi exist on the BSP (only emit present nodes):
Locate the display controller node in the decompiled DTS and disable it.
The node's unit address is chip-specific — find it by compatible string
(e.g. nvidia,tegra234-display) rather than hard-coding the address.
The NVIDIA IOMMU covers peripheral DMA, so SWIOTLB is rarely used.
Edit CMDLINE_ADD (never CMDLINE) in Linux_for_Tegra/<module>.conf.common:
After every patched MB1/MB2 BCT .dts, reproduce the BSP's compile +
decompile using the same -D… flags from bct_flags.append(...) in
bootloader/tegraflash_impl_t<chip>.py:
Confirm in the merged output:
aux_info@<NAME> (or aux_info@<id>U post macro expansion)
has size = <0x0 0x0> and pref_base = <0x0 0x0>.auxp_controls@<idx> has all three enable_* fields <0>./delete-node/'d auxp_ast_config@<idx> is absent.| Scenario | Sysfs | dmesg grep |
|---|---|---|
Display off |
|
|
Camera off |
|
|
SWIOTLB shrink |
|
|
For SWIOTLB: /proc/cmdline must contain swiotlb=<value>, and
watch -n5 cat /sys/kernel/debug/swiotlb/io_tlb_used must stay under
io_tlb_nslabs during full workload — if exceeded, restore original
CMDLINE_ADD and re-flash kernel-dtb.
Cut the unused DRAM carveouts that ship enabled in the reference BSP when a Jetson deployment skips display, camera, or other peripherals, freeing the freed bytes for the application. Always edits the four layers in boot order so an early-stage carveout never outranks a later-stage shrink.
../../context/target-platform-contract.md./jetson-init-image, /jetson-init-source complete).headless, no-camera, swiotlb) are
exposed; ad-hoc subsystem disables outside the recipe set are
refused.io_tlb_nslabs requires reverting the change.io_tlb_used exceeds io_tlb_nslabs — revert swiotlb= in
CMDLINE_ADD and re-flash the kernel DTB partition.dmesg | grep -iE 'firmware|carveout' check in this file to confirm.dmesg shows the disabled subsystem still probing —
the change probably did not promote through to bsp_image; re-run
/jetson-promote-image.Get started with chainctlchainctl skill install public/nvidia/jetson-optimize-memory:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.chainreg.biz/public/github.com/nvidia/skills/jetson-optimize-memory:latest
Apache-2.0
BENCHMARK.md
HARDENING.md
LICENSE
SKILL.md
evals/evals.json
skill-card.md
skill.oms.sig