Loading...
Loading...
Reclaim DRAM by disabling unused subsystems across MB1 BCT, MB2 BCT, kernel reserved-memory, and SWIOTLB. Use for headless or no-camera Jetson deployments; not for CPU/GPU frequency tuning.
npx skill4agent add nvidia/skills jetson-optimize-memory| 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 | |
#ifdef#elsetarget-platform-contract.md| 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) |
|---|---|---|
| | |
| | |
Post-boot:→headless.sudo systemctl set-default multi-user.target
Linux_for_Tegra/bootloader/generic/BCT/tegra<chip>-mb1-bct-misc-<module>.dtstegra234-mb1-bct-misc-p3767-0000.dtstegra264-mb1-bct-misc-p3834-0008-p4071-0000.dtscarveoutaux_info@<CARVEOUT_NAME> {
pref_base = <0x0 0x0>;
size = <0x0 0x0>;
alignment = <0x0 0x0>;
};Linux_for_Tegra/bootloader/generic/BCT/tegra<chip>-mb2-bct-misc-<module>.dtstegra<chip>-mb2-bct-common.dtsiauxp_controls@<index>auxp_controls@<index> {
enable_init = <0>;
enable_fw_load = <0>;
enable_unhalt = <0>;
};/delete-node/ auxp_ast_config@<idx>;common.dtsiauxp_controls@Nauxp_ast_config@Nast_regioncarveout = <CARVEOUT_…>;DTB=Linux_for_Tegra/kernel/dtb/<platform-dtb-name>.dtb
dtc -I dtb -O dts -o /tmp/platform.dts $DTB
# edit: status = "disabled" on target nodes
dtc -I dts -O dtb -o $DTB /tmp/platform.dtsdisplay@<addr>dce@<addr>host1x@<addr>vi*isp*nvcsicompatiblenvidia,tegra234-displayhost1x@<addr> {
vi0@<addr> { status = "disabled"; };
vi1@<addr> { status = "disabled"; };
isp@<addr> { status = "disabled"; };
isp1@<addr> { status = "disabled"; };
nvcsi@<addr> { status = "disabled"; };
};CMDLINE_ADDCMDLINELinux_for_Tegra/<module>.conf.common# Total bytes = swiotlb_value × 2048; 4 MiB pool:
CMDLINE_ADD="... swiotlb=2048".dts-D…bct_flags.append(...)bootloader/tegraflash_impl_t<chip>.pygcc -E -nostdinc -x assembler-with-cpp \
-DENABLE_<FLAG_1> -DENABLE_<FLAG_2> \
-I bootloader -I bootloader/generic/BCT \
-o /tmp/cpp.dts <patched-bct.dts>
dtc -q -I dts -O dtb -o /tmp/cpp.dtb /tmp/cpp.dts
dtc -q -I dtb -O dts /tmp/cpp.dtb | lessaux_info@<NAME>aux_info@<id>Usize = <0x0 0x0>pref_base = <0x0 0x0>auxp_controls@<idx>enable_*<0>/delete-node/auxp_ast_config@<idx>sudo cat /proc/iomem | grep -iE 'nv-reserved|cma|fb|carveout'
ls /proc/device-tree/reserved-memory/
dmesg | grep -iE 'firmware|carveout|bpmp|reserved|fail|error' | head -20
free -m| Scenario | Sysfs | dmesg grep |
|---|---|---|
| Display off | | |
| Camera off | | |
| SWIOTLB shrink | | |
/proc/cmdlineswiotlb=<value>watch -n5 cat /sys/kernel/debug/swiotlb/io_tlb_usedio_tlb_nslabsCMDLINE_ADDkernel-dtb../../context/target-platform-contract.md/jetson-init-image/jetson-init-sourceheadlessno-cameraswiotlbio_tlb_nslabsio_tlb_usedio_tlb_nslabsswiotlb=CMDLINE_ADDdmesg | grep -iE 'firmware|carveout'dmesgbsp_image/jetson-promote-image