./flash.sh --qspi-only jetson-agx-thor-devkit internal
From near the bottom of following:
./flash.sh --help
Usage: sudo ./flash.sh [options] <target_board> <rootdev>
Where,
target board: Valid target board name or 'autodetect'
rootdev: Proper root device.
options:
-b <emc_bctfile> ------ use the specified emc_bct file.
-c <cfgfile> ---------- Flash partition table config file.
-d <dtbfile> ---------- device tree file.
-e <bpmp_file> -------- use the specified bpmp file.
-f <flashapp> --------- Path to flash application (tegraflash.py)
-g <bpmp_dtb_file> ---- use the specified bpmp dtb file
-h -------------------- print this message.
-i <enc rfs key file>-- key for disk encryption support.
-k <partition id> ----- partition name or number specified in flash.cfg.
-l <tbcdtbfile> ------- cpu bootloader dtb file.
-m <mts preboot> ------ MTS preboot such as mts_preboot_si.
-n <nfs args> --------- Static nfs network assignments
<Client IP>:<Server IP>:<Gateway IP>:<Netmask>
-o <odmdata> ---------- ODM data.
-r -------------------- skip building and reuse existing system.img.
-t <tegraboot> -------- tegraboot binary such as nvtboot.bin
-u <PKC key file>------ PKC key or PKC keylist used for odm fused board.
This option is also used for cpu-bootloader signing in PV key feature.
-v <SBK key file>------ Secure Boot Key (SBK) key used for ODM fused board.
-w <wb0boot> ---------- warm boot binary such as nvtbootwb0.bin
-x <tegraid> ---------- Tegra CHIPID.
-B <boardid> ---------- BoardId.
-C <cmdline> ---------- Kernel commandline arguments.
WARNING:
Each option in this kernel commandline gets
higher preference over the values set by
flash.sh. In case of NFS booting, this script
adds NFS booting related arguments, if -i option
is omitted.
-F <flasher> ---------- Flash server such as cboot.bin.
-G <file name> -------- Read partition and save image to file.
-I <initrd> ----------- initrd file. Null initrd is default.
-K <kernel> ----------- Kernel image file such as zImage or Image.
-L <bootloader> ------- Bootloader such as cboot.bin or u-boot-dtb.bin.
-M <mts boot> --------- MTS boot file such as mts_si.
-N <nfsroot> ---------- i.e. <my IP addr>:/my/exported/nfs/rootfs.
-R <rootfs dir> ------- Sample rootfs directory.
-S <size> ------------- Rootfs size in bytes. Valid only for internal
rootdev. KiB, MiB, GiB short hands are allowed,
for example, 1GiB means 1024 * 1024 * 1024 bytes.
-T <ext num sectors> ---The number of the sectors of the external storage device.
The default value is 119537664 if this option is not set.
-U <int num sectors> ---The number of the sectors of the internal storage device.
The default value is 119537664 if this option is not set.
-Z -------------------- Print configurations and then exit.
--no-flash ------------ perform all steps except physically flashing the board.
This will create a system.img.
If combined with --rcm-boot, the command will generate rcmboot_blob.
If combined with --read-info, the command will generate readinfocmd.txt.
--external-device------ Generate flash images for external devices
--sparseupdate--------- only flash partitions that have changed. Currently only support SPI flash memory
--no-systemimg -------- Do not create or re-create system.img.
--bup ----------------- Generate bootloader update payload(BUP).
--single-image-bup <part name> Generate specified single image BUP, this must work with --bup.
--bup-type <type> ----- Generate specific type bootloader update payload(BUP), such as bl or kernel.
--multi-spec----------- Enable support for building multi-spec BUP.
--clean-up------------- Clean up BUP buffer when multi-spec is enabled.
--usb-instance <id> --- Specify the USB instance to connect to;
<id> = USB port path (e.g. 3-14).
--no-root-check ------- Typical usage of this script require root permissions.
Pass this option to allow running the script as a
regular user, in which case only specific combinations
of command-line options will be functional.
--uefi-keys <keys_conf> Specify UEFI keys configuration file.
--rcm-boot ------------ Do RCM boot instead of physically flashing the board.
--sign ---------------- Sign images and store them under "bootloader/signed"
directory. The board will not be physically flashed.
--image --------------- Specify the image to be written into board.
--boot-chain-flash <c> Flash only a specific boot chain (ex. "A, "B", "all").
Defaults to "all", inputs are case insensitive.
Not suitable for production.
--boot-chain-select <c> Specify booting chain (ex. "A" or "B") after the board is flashed.
Defaults to "A", inputs are case insensitive.
--pv-crt -------------- The certificate for the key that is used to sign cpu_bootloader
--with-systemimg ------ Generate system images also when using -k option
--pv-enc <enc_key>----- The encryption key that is used to encrypt cpu_bootloader.
--uefi-enc <uefi_enc_key> Key file (0x19: 16-byte; 0x23: 32-byte) to encrypt UEFI payloads
--uda-dir-------------- Directory to store user data that will be encrypted in UDA partition.
--generic-passphrase -- Use generic passphrase for disk encryption.
--disable-random-iv --- Disable generation of random IV, SALT1, SALT2 and DERSTR.
--read-info ----------- Read and display board related info, fuse info (based on fuse_t234.xml),
and EEPROM content.
--reuse-uuid --------- Reuse uuid which is already generated first time.
--qspi-only --------- Flash QSPI device only.
--passthrough -------- Additional options to passthrough the tegraflash command
--read-ramcode ------- Generate read_ramcode script in the flashcmd.txt command script.
--gen-read-eeprom ---- Generate read_eeprom script with all signed binaries. User later can run
read_eeprom.sh from host to dump EEPROM content on a target device after
putting the target device in RCM mode. Since all binaries are signed already,
there is no key needed even the device has PKC fuse burned.
--hsm ---------------- Enable HSM for signing (and encrypting) images. This option must be used with
-u option (image signing). -v or --pv-enc is optional (image encryption).
--debug -------------- Enable debug mode, and enable '--keep' option to tegraflash.py
For now, the debug mode will enable saving of unencrypted and unsigned files
for UEFI encryption/signing debugging.
--gen-systemimg-only - Generate system.img only, program then exits.
Don’t know what nvme revision ubuntu 24.04, but this document may explain the variance. There
are more mps entries in this document NVM Express® Base Specification, Revision 2.2.
Figure 36: Offset 0h: CAP – Controller Capabilities
Bits Type Reset Description
55:52 RO Impl Spec
Memory Page Size Maximum (MPSMAX): This field indicates the maximum host
memory page size that the controller supports. The maximum memory page size
is (2 ^ (12 + MPSMAX)). The host shall not configure a memory page size in
CC.MPS that is larger than this value.
For Discovery controllers this field shall be cleared to 0h.
51:48 RO Impl Spec
Memory Page Size Minimum (MPSMIN): This field indicates the minimum host
memory page size that the controller supports. The minimum memory page size is
(2 ^ (12 + MPSMIN)). The host shall not configure a memory page size in CC.MPS
that is smaller than this value.
For Discovery controllers this shall be cleared to 0h.
Figure 41: Offset 14h: CC – Controller Configuration
Bits Type Reset Description
10:07 RW 0h
Memory Page Size (MPS): This field indicates the host memory page size. The
memory page size is (2 ^ (12 + MPS)). Thus, the minimum host memory page
size is 4 KiB and the maximum host memory page size is 128 MiB. The value
set by host software shall be a supported value as indicated by the
CAP.MPSMAX and CAP.MPSMIN fields. This field describes the value used for
PRP entry size. This field shall only be modified when CC.EN is cleared to ‘0’.
For Discovery controllers this property shall be cleared to 0h
NVMe® over PCIe® Transport Specification, Revision 1.2
Figure 50: Offset PXCAP + 4h: PXDCAP – PCI Express Device Capabilities
02:00 RO Impl Spec Max_Payload_Size Supported (MPS): This field indicates the maximum payload size that the Function may support for TLPs.
Figure 51: Offset PXCAP + 8h: PXDC – PCI Express Device
Max_Payload_Size (MPS): This field sets the maximum TLP payload size for the
Function. As a receiver, the Function shall handle TLPs as large as the set value. As
a transmitter, the Function shall not generate TLPs exceeding the set value. Functions
that support only the 128-byte max payload size are permitted to hardwire this field to 0h.