When I started developing with Jetpack 5.0DP I had the impression that NVIDIA wanted us to use the .conf files to describe how a device is flashed.
So simply a ./l4t_initrd_flash.sh boardname.conf could be enough.
After many changes I see two different workflows to flash devices with NVMe storage:
Workflow 4:
For a device with internal QSPI and external NVMe:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_external.xml \
-p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml --no-systemimg" --network usb0 \
<board> external
Workflow 11: Generate images for internal device and external device seperately
then flash
The flashing tool supports a three-step process: "to generate images for an
internal device, then generate them for an external device, then flash.
This is enabled by using the "append" option. Four examples below show how it
works.
Example 1: Generate a normal root filesystem configuration for the internal device
, then generate an encrypted root filesystem for the external device, then flash
1. Put the device into recovery mode, then generate a normal root
filesystem for the internal device:
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash jetson-xavier internal
(Or if you want to generate the image offline, then you can use:
$ sudo BOARDID=2888 BOARDSKU=004 FAB=400 ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash jetson-xavier internal
)
2. Put the device into recovery mode, then generate an encrypted
filesystem for the external device:
$ sudo ROOTFS_ENC=1 ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash \
--external-device nvme0n1p1 \
-S 8GiB -c ./tools/kernel_flash/flash_l4t_nvme_rootfs_enc.xml \
--external-only --append jetson-xavier external
(Or if you want to generate the image offline, then you can use:
$ sudo BOARDID=2888 BOARDSKU=0004 FAB=400 ./tools/kernel_flash/l4t_initrd_flash.sh --no-flash \
--external-device nvme0n1p1 \
-S 8GiB -c ./tools/kernel_flash/flash_l4t_nvme_rootfs_enc.xml \
--external-only --append jetson-xavier external
)
So in the end I have to create .conf files to add the correct dtb in there. Unfortunately I can’t add the config for the QSPI and the NVMe in there anymore? If I can’t do that the files are utterly useless. Then I could also write all my settings directly in the command. I have to parse what device I flash and add the proper xml files anyway.
My workaround so far was adding an EXTERNAL_CONF parameter in the conf files, source them myself and pass that to the flash command for the selected device.
To my understanding now, I can NOT replace the -p “-c bootloader/t186ref/cfg/flash_t234_qspi.xml --no-systemimg” part of Workflow 4 with the EMMC_CFG part in the config as the result will differ. Is that correct?
Can someone explain my why the .conf files are not properly usable anymore and why this decision has been made?