.. _AR.BootArchitecture.PartitionConfiguration: .. include:: /content/swdocs.rsts .. spelling:: emmc jaxi NVMe oem OEM qspi sd sdmmc subdevice subdevice subdevices Partition Configuration !!!!!!!!!!!!!!!!!!!!!!! |NVIDIA(r)| |Jetson(tm)| Linux supports formatting mass storage media into multiple partitions for storing data, such as the device OS image, bootloader image, device firmware, and bootloader splash screen. How Jetson Partition Configurations Are Described @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Some Jetson platforms have similar characteristics, such as identical partition configurations. This topic groups these platforms and provides information about each group. The supported platforms are grouped in the following way: +-----------------------------------+----------------------------------------------------------+ | Group | Includes platforms | +===================================+==========================================================+ | |NVIDIA(r)| | | Jetson AGX Orin (P3701-0000) | | | | | |Jetson AGX Orin(tm)| series | .. | | | Jetson AGX Orin Industrial (P3701-0002) | +-----------------------------------+----------------------------------------------------------+ | |NVIDIA(r)| | | Jetson Xavier NX (P3668-0000, for development only) | | |Jetson Xavier(tm) NX| series | | Jetson Xavier NX (P3668-0001, 8\ |GB| RAM) | | | | Jetson Xavier NX 16GB (P3668-0003, 16\ |GB| RAM) | +-----------------------------------+----------------------------------------------------------+ | |NVIDIA(r)| | | Jetson AGX Xavier (P2888-0001, 16\ |GB| RAM) | | |Jetson AGX Xavier(tm)| series | | Jetson AGX Xavier (P2888-0004, 32\ |GB| RAM) | | | | Jetson AGX Xavier 64GB (P2888-0005, 64\ |GB| RAM) | | | | Jetson AGX Xavier Industrial (P2888-0008, 32\ |GB| RAM)| +-----------------------------------+----------------------------------------------------------+ Partition Configuration Files @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ A partition configuration file describes the mass storage devices and partitions on a platform. The following table describes the definitions of all of the partition configurations supported by Jetson Linux. The **File** column specifies the filename of the partition configuration file the defines the configuration, and the **Device** columns specify the ```` block in that file that defines the configuration (refer to ` Element Tag Attributes`_ for more information). .. _ar.bootarchitecture.partitionconfiguration-partitionconfigurationfiles.table: .. list-table:: :widths: auto :header-rows: 1 * - Platform & Configuration - Boot Partition Device - User Partition Device - File * - Jetson AGX Orin Developer-Kit - QSPI_NOR - sdmmc_boot on 32GB eMMC - flash_l4t_t234_qspi_sdmmc.xml * - Jetson AGX Xavier Developer-Kit - sdmmc_user on 32GB eMMC - sdmmc_user on 32GB eMMC - flash_l4t_t194_sdmmc.xml * - Jetson AGX Xavier NX Developer-Kit - QSPI_NOR - SD card - flash_t194_spi_sd_p3668.xml (flash_l4t_t194_qspi_p3668.xml for flashing QSPI_NOR only) * - Commercial Modules: - Jetson Xavier NX (P3668-0001) - Jetson Xavier NX 16GB DRAM (P3668-0003) - QSPI_NOR - sdmmc_user on 16GB eMMC - flash_l4t_t194_spi_emmc_p3668.xml * - Commercial Modules: - Jetson AGX Xavier (P2888-0001 and P2888-0004) - Jetson AGX Xavier 64GB DRAM (P3668-0005) - sdmmc_boot on 32GB eMMC - sdmmc_user on 32GB eMMC - flash_l4t_t194_sdmmc.xml * - Commercial Modules: - Jetson AGX Xavier Industrial (P2888-0008) - QSPI_NOR - sdmmc_user on 32GB eMMC - flash_l4t_t194_spi_emmc_jaxi.xml Each file's name typically incorporates its processor name (``t194`` or ``t234``), the type of memory the partitions are flashed to (``sd`` for SD Card, ``spi`` for SPI, or ``emmc`` for eMMC), and in some cases, the module's part number, for example, ``p3668``). During the flashing procedure, ``flash.sh``: - Reads the partition configuration file ``.xml`` - Translates keywords into values specified in ``.conf`` or in command line options - Saves the translated data in ``bootloader/flash.xml`` ``bootloader/tegraflash.py`` reads in ``bootloader/flash.xml`` and flashes the device that was specified by ``bootloader/flash.xml``. Refer to `List of Translated Keywords <#list-of-translated-keywords>`__ for more information. Format of a Partition Configuration File @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Each partition configuration file defines one or more partition layouts for a specific configuration of a specific Jetson device. The file is composed of the following XML elements: - A standard XML prolog. - One or more ```` elements, each of which defines one partition layout. - In each ```` element, a ```` element for each device, for example, each type of flashed memory, that the layout uses. - In each ```` element, a ```` element for each partition in that device's partition layout. - In each ```` element, a group of other elements that specify various properties of the partition. Element ########################## The ```` element has the following syntax:: Element ################ The partition configuration file contains a device element for each subdevice; for example, for the eMMC boot and user hardware partitions. This element must be present even if the devices are not divided into subdevices. .. todo:: This passed review in the original (.docx) format, but it's at odds with the files as I read them. Each element represents one type of memory that the system can be flashed to. The only reference to subdevices elsewhere in the document is in the discussion of V4L2 architecture, which is pretty far removed from partition definition. Please explain what "subdevice" means in this context, or if it's inappropriate, what to say. The ```` element has the following syntax:: Element Tag Attributes $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ The following table describes the ```` tag's attributes and their legal values. +-------------+-----------------------+----------------------------------------+ | Device | Values | Description | | attributes | | | +=============+=======================+========================================+ | device type | ``sdmmc_boot``; | **Required.** Specifies the type of | | | ``sdmmc_user SPI``; | device. eMMC ``boot0`` and ``boot1`` | | | ``nvme`` | hardware partitions are treated as a | | | | single ``sdmmc_boot`` entry. | +-------------+-----------------------+----------------------------------------+ | instance | 0-3 | **Required.** Specifies the device | | | | instance: 0 for SPI or NVMe, or 3 | | | | (typically) for eMMC. | +-------------+-----------------------+----------------------------------------+ Element ################### Each ```` element has the following syntax:: Element Tag Attributes $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ This table describes the attributes supported for partition elements and their legal values. +------------+---------------------------------------+----------------------------------------+ | Device | Values | | | attributes | | | +============+=======================================+========================================+ | name | See the files listed in the table of | **Required.** Specifies a name for the | | | `partition configuration files | partition. The name can have a maximum | | | <#partition-configuration-files>`__. | of 36 characters. There are three | | | | kinds of partitions: mandatory, | | | | optional, and user-defined. All | | | | mandatory and optional partition names | | | | must be associated with the specific | | | | partition type. All user-defined | | | | partition names must be associated | | | | with partition type `data`. | +------------+---------------------------------------+----------------------------------------+ | type | See the files listed in the table of | **Required.** Specifies the type of | | | `partition configuration files | partition. Certain partition types are | | | <#partition-configuration-files>`__. | valid only when they are associated | | | | with specific partition names. | +------------+---------------------------------------+----------------------------------------+ | oem_sign | ``True``, ``False``, | **Jetson AGX Xavier series only**: | | | or unspecified. | If ``True``, append a generic | | | | signature header to the binary and | | | | perform OEM signing on it. If | | | | ``False``, append a NULL signature | | | | header to the binary and perform NULL | | | | signing on it. | +------------+---------------------------------------+----------------------------------------+ .. todo:: In the first entry, it's not clear what "...must be associated with the specific partition type" means. Please clarify. In the third entry, the original appeared to specify two unconditional but mutually exclusive actions. I interpreted it to mean they correspond to the True and False values. Is that accurate? Child Elements ########################## The following tags specify the properties of a ```` element: .. raw:: html :file: PartitionConfiguration/PartitionElementChildElements.htm List of Translated Keywords ########################### The following table provides keywords that you can use as the text for some ```` child elements. When the partition configuration file processor encounters one of these keywords, it substitutes the value shown or described in the table. ================= ============================================================ Keyword Default translated value in ``flash.xml`` ================= ============================================================ MB1FILE ``mb1_t194_prod.bin`` SPEFILE ``spe_t194.bin`` TEGRABOOT ``nvtboot_t194.bin`` MTSPREBOOT ``preboot_c10_prod_cr.bin`` APPSIZE 30064771072 APPFILE ``system.img`` MTS_MCE ``mce_c10_prod_cr.bin`` MTSPROPER ``mts_c10_prod_cr.bin`` TBCFILE ``uefi_jetson.bin`` TBCDTB-FILE Appropriate bootloader DTB file name TOSFILE ``tos_t194.img`` EKSFILE ``eks.img`` BPFFILE ``bpmp_t194.bin`` BPFDTB-FILE Appropriate BPMP DTB file name CAMERAFW ``camera-rtcpu-rce.bin`` WBOBOOT ``warmboot_t194_prod.bin`` LNXSIZE 67108864 LNXFILE ``boot.img`` DTB_FILE Appropriate kernel DTB file name RECFILE Name of appropriate recovery kernel image RECDTB-FILE Name of appropriate recovery kernel dtb file BOOTCTRL-FILE ``kernel_bootctrl.bin`` ================= ============================================================ .. _AR.BootArchitecture.PartitionConfiguration-ExternalStorageDevicePartition: External Storage Device Partition @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ To create a partition configuration file for flashing to an external storage device, start with a default SD card partition table as a template (for example, the Jetson Xavier NX development module SD Card partition from the table of `partition configuration files <#partition-configuration-files>`__). Change the device type to ``nvme``, and the instance number to zero, as in the example below. An external partition configuration file must contain at least three partitions: ``master_boot_record``, ``primary_gpt``, and ``secondary_gpt``. For both SCSI devices (e.g. SCSI flash drives and hard disk drives) and NVMe devices, for example NVMe SSDs, the device type is ``nvme``. You must also update ``num_sectors`` to correctly specify the total amount of storage available on your external device. For example, if an NVMe device has 1024209543168 bytes available, you must change ``num_sectors`` to 1024209543168/512\ |nbsp|\ = 2000409264 sectors. .. code-block:: xml sequential basic 512 0 8 0 **Required.** Contains protective MBR. sequential basic PPTSIZE 0 8 0 **Required.** Contains primary GPT of the `sdmmc_user` device. All partitions defined after this entry are configured in the kernel, and are accessible by standard partition tools such as gdisk and parted. sequential basic 0xFFFFFFFFFFFFFFFF 0 8 0 **Required.** Contains secondary GPT of the `sdmmc_user` device.