Configuration:
- Xavier NX Developer Kit (Stock NVIDIA Configuration)
jetson-xavier-nx-devkit-emmc.conf
- →
p3509-0000+p3668-0001-qspi-emmc.conf
- →
- L4T
r35.4.1
, with root file system prepared exactly as per:- Root File System — Jetson Linux Developer Guide documentation (minimal flavor)
I will emphasize that all configurations are stock, with no customizations.
The internal eMMC reports itself as follows:
Disk /dev/mmcblk0: 30785536 sectors, 14.7 GiB
First usable sector is 40, last usable sector is 30785503
Note that the config will use one of the following, depending on the values of the ROOTFS_AB
and ROOTFS_ENC
environment variables:
flash_l4t_t194_spi_emmc_p3668.xml
flash_l4t_t194_spi_emmc_p3668_rootfs_ab.xml
flash_l4t_t194_spi_emmc_p3668_enc_rfs.xml
flash_l4t_t194_spi_emmc_p3668_enc_rootfs_ab.xml
Further note that all four of these xml
files have num_sectors="30777344"
, which is smaller than the 30785536
sectors reported by the device itself.
Successes and Failure
- Flashing with
ROOTFS_AB=0
andROOTFS_ENC=0
succeeds - Flashing with
ROOTFS_AB=1
andROOTFS_ENC=0
succeeds - Flashing with
ROOTFS_AB=0
andROOTFS_ENC=1
succeeds - Flashing with
ROOTFS_AB=1
andROOTFS_ENC=1
fails
Side Note (to the above)
Adjusting the flash layout xml
files so that the num_sectors
matches what is reported by the hardware also fails with an identical failure mode.
- <device type="sdmmc_user" instance="3" sector_size="512" num_sectors="30777344">
+ <device type="sdmmc_user" instance="3" sector_size="512" num_sectors="30785536">
The failure appears to be, I think, that not enough space is left on the internal eMMC for the UDA
partition:
==> console.log <==
[0601.083] I> Writing rce-fw_b partition.
[0601.124] I> Writing bpmp-fw_b partition.
[0601.185] I> Writing bpmp-fw-dtb_b partition.
[0601.206] I> Writing kernel_b partition.
[0603.401] I> Writing kernel-dtb_b partition.
[0603.433] I> Writing recovery partition.
[0605.776] I> Writing recovery-dtb partition.
[0605.807] I> Writing esp partition.
[0608.895] I> Writing UDA partition.
[0608.923] E> NV3P_SERVER: Could not write 1048576 bytes.
==> flash.log <==
[ 486.9846 ] Writing partition kernel-dtb_b with kernel_tegra194-p3668-0001-p3509-0000.dtb [ 326723 bytes ]
[ 486.9915 ] [................................................] 100%
[ 487.0002 ] Writing partition recovery with recovery.img [ 50780160 bytes ]
[ 487.0235 ] [................................................] 100%
[ 489.3541 ] Writing partition recovery-dtb with tegra194-p3668-0001-p3509-0000.dtb.rec [ 326723 bytes ]
[ 489.3665 ] [................................................] 100%
[ 489.3755 ] Writing partition esp with esp.img [ 67108864 bytes ]
[ 489.3978 ] [................................................] 100%
[ 492.4649 ] Writing partition UDA with user_data_encrypted.img [ 27742320 bytes ]
(... hang with 3% of the UDA sent ...)
Here are the full logs:
- console.log (10.7 KB)
- flash.log (1.2 MB, Verbose)
Question: It would appear from all the documentation and the flash.sh
script that Encryption + A/B Boot is supported, but somehow failing. Is this configuration supported by NVIDIA?
We have not been able to get this working with stock configurations and stock hardware, following the documentation verbatim.