NVIDIA Tegra
NVIDIA Tegra Linux Driver Package

Development Guide
32.1 Release


 
Partition Configuration
 
Partition Configuration File
Root Element
Device Element
Partition Element
Default Partition Overview
NVIDIA® Linux® for Tegra® releases support formatting mass storage media into multiple partitions for storing data, such as the device OS image, bootloader image, device firmware, and bootloader splash screens.
Partition Configuration File
The partition configuration file describes the entire mass storage devices and partitions in devices. For Linux for Tegra releases the default partition configuration file directory is available at:
<top>/Linux_for_Tegra/bootloader/t186ref/cfg/
The filename is specified in <device>.conf; typical values for systems booting from eMMC are:
NVIDIA® Jetson AGX Xavier™: flash_t194_sdmmc.xml
NVIDIA® Jetson™ TX2 or Jetson TX2i: flash_l4t_t186.xml
During the flashing procedure, flash.sh reads in the partition configuration file, translates keywords into values specified in <device>.conf or in option parameters and saves the data in bootloader/flash.xml. Then bootloader/tegraflash.py reads in bootloader/flash.xml and performs actual flashing as specified by bootloader/flash.xml.
For details, see List of Translated Keywords.
The partition configuration file is composed of the following XML format elements:
Root element
Device elements
Partition elements
Root Element
The root element in a configuration file has following syntax:
<?xml version="1.0"?>
 
<!-- NVIDIA Tegra Partition Layout Version 1.0.0 -->
 
<partition_layout version="01.00.0000">
<!-- Device elements go here. -->
</partition>
Device Element
The partition configuration file contains a device element for each sub-device; for example in the eMMC boot and user hardware partitions. This element must be present even if the devices are not divided into sub-devices.
There may be multiple device elements in the root element and each has following syntax:
<device type="<device type>" instance="<instance>">
<!-- Partition elements go here. -->
</device>
Device Attributes Table
The supported device attributes and their legal values are as follows.
Device Attributes
Values
Description
device type
 
sdmmc_boot
sdmmc_user
sata
(Required) Specifies the type of device.
eMMC boot0 and boot1 hardware partitions are treated as a single sdmmc_boot entry.
Instance
0-3
(Required) the device instance.
0 for SATA.
3 is typical for eMMC.
Partition Element
There may be multiple partition elements within a device element. Each has the following syntax:
<partition name="<name>" type="<type>" oem_sign=”true”>
<!-- partition properties go here -->
</partition>
Partition Element Attributes
The supported attributes for partition elements, and their legal values, are as follows.
Attribute
Values
Description
name
For a complete list of pre-defined names, see Default Partition Overview.
(Required) Specifies a name for the partition. The name can have a maximum 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 specified partition names must be associated with partition type “data”.
type
For a complete list of types, see the Default Partition Overview.
(Required) Specifies the type of partition. Certain partition types are valid only when they are associated with specific partition names.
oem_sign
True
False
or attribute not present
Append generic signature header to the binary and perform OEM signing on that.
Append NULL signature header to the binary and perform NULL signing on that.
Partition Element Child Elements
The supported partition element child elements and their legal values are as follows.
Element
Values
Description
allocation_policy
sequential
Specifies the type of allocation policy. Sequential partitions begin immediately after the preceding partition. (The legacy “absolute” allocation policy has been deprecated.)
filesystem_type
basic
The basic filesystem_type specifies “raw” partition. (The legacy “ext2” filesystem has been deprecated.)
size
<byte size>
(Required) Specifies the size of the partition in bytes. Decimal and hexadecimal values are valid.
The partition size may be equal to or larger than the size of the file to be written to the partition. Specifying a larger size allows the file size to increase later without requiring the partition configuration file to be modified.
If the partition size specified is less than an erase block size, it will align itself to the partition erase block boundary.
The size property of the secondary GPT partition, which is defined at the end of each device, must always be 0xffffffffffffffff. Tegraflash calculates the size automatically, the preceding partition is extended to fill any free space before the secondary GPT.
file_system_attribute
0
Not implemented.
allocation_attribute
0x8
0x808
Must be 0x808 for the partition immediately preceding the secondary GPT.
percent_reserved
0
Reserved for future use.
filename
<filename>
or empty
Specifies the name of the file to write into the partition. If the filename is empty, no data is written to the partition.
List of Translated Keywords
The list of keywords that may appear in the partition configuration file, and the value for each keyword, is as follows.
For Jetson AGX Xavier:
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
Cboot_t194.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
CBOOTOPTION_FILE
Appropriate CBoot boot option file name; default is cbo.dtb
For Jetson TX2 or Jetson TX2i:
Keyword
Default translated value in flash.xml
MB1NAME
mb1
MB1TYPE
mb1_bootloader
SPENAME
spe-fw
SPETYPE
spe_fw
MB2NAME
mb2
MB2TYPE
mb2_bootloader
MB2FILE
nvtboot.bin
MPBNAME
mts-preboot
MPBTYPE
mts_preboot
MPBFILE
preboot_d15_prod_cr.bin
APPSIZE
30064771072
APPFILE
system.img
MBPNAME
mts-bootpack
MBPTYPE
mts_bootpack
MBPFILE
mce_mts_d15_prod_cr.bin
TBCNAME
cpu-bootloader
TBCTYPE
bootloader
TBCFILE
cboot.bin
TBCDTB-NAME
bootloader-dtb
TBCDTB-FILE
Appropriate bootloader DTB file name
TOSNAME
secure-os
TOSFILE
tos.img
EKSFILE
eks.img
BPFNAME
bpmp-fw
BPFSIGN
true
BPFFILE
bpmp.bin
BPFDTB-NAME
bpmp-fw-dtb
BPFDTB-SIGN
true
BPFDTB-FILE
Appropriate bpmp DTB file name
SCENAME
sce-fw
Default Partition Overview
The Jetson AGX Xavier and Jetson TX2/TX2i usage for each partition in sdmmc_boot device is as follows:
Name
Type
Supported in
Description
AGX Xavier
TX2/
TX2i
 
BCT
boot_config_table
X
X
(Required) Contains Boot Configuration Table.
mb1
mb1_bootloader
X
X
(Required) Contains NVIDIA signed MB1 binary.
MB1_BCT
mb1_boot_config_table
X
X
(Required) Contains MB1 boot configuration table.
MEM_BCT
mem_boot_config_table
X
 
(Required) Contains memory configuration table.
spe-fw
spe-fw
X
X
Contains BPMP spe-fw binary.
mb2
mb2_bootloader
X
X
Contains primary copy of the TegraBoot binary.
mts-preboot
mts_preboot
X
X
Contains Denver preboot firmware.
SMD
smd
X
 
Contains slot status for A/B boot and A/B update.
secondary_gpt
secondary_gpt
X
X
Contains the secondary GPT of sdmmc_boot device.
The usage for each partition in sdmmc_user device is as follows:
Name
Type
Supported in
Description
AGX Xavier
TX2/
TX2i
master_boot_record
protective_master_boot_record
X
X
(Required) Contains protective MBR.
primary_gpt
primary_gpt
X
X
(Required) Contains the primary GPT of sdmmc_user device. All partition defined after this entry will be configured in kernel and accessible by standard partition tools such as gdisk or parted.
APP
data
X
X
(Required) Contains the RootFS. This partition must be defined after primary GPT, so that it can be accessed as fixed known special device /dev/mmcblk0p1.
mts-mce
mts_mce
X
 
(Required) Contains microcode associated with boot, power management, and clocks for the machine.
mts-proper
mts_proper
X
 
(Required) Contains microcode associated with execution and optimization of ARM® code.
mts-bootpack
mts_bootpack
 
X
(Required) Contains Denver boot pack firmware.
cpu-bootloader
bootloader
X
X
(Required) Contains the final boot stage CPU bootloader binary that loads the binary in kernel partition.
bootloader-dtb
data
X
X
(Required) Contains the bootloader device tree blob (DTB).
secure-os
data
X
X
(Required) Contains the trusted OS.
eks
data
X
X
(Optional) Contains the encrypted keys.
adsp-fw
data
 
X
(Required) Contains ADSP software.
bpmp-fw
data
X
X
(Required) Contains BPMP firmware.
bpmp-fw-dtb
data
X
X
(Required) Contains the BPMP firmware device tree blob (DTB).
xusb-fw
Data
X
 
(Required) Contains XUSB module’s firmware file, making XUSB a true USB 3.0 compliant host controller.
rce-fw
data
X
 
(Optional) Contains camera-rtcpu-rce firmware.
adsp-fw
data
X
 
(Optional) Contains ADSP software.
sce-fw
data
X
X
(Optional) Contains camera-rtcpu-sce firmware.
sc7
WB0
X
X
(Required) Contains warm boot binary.
FBNAME
data
 
X
(Optional) Reserved for future use; removable.
BMP
data
X
X
(Optional) Contains BMP images (if any) for display during boot.
SOS
data
 
X
(Optional) contains a partition used for recovery; removable.
kernel
data
X
X
(Required) Contains the U-Boot secondary bootloader by default. The U-Boot searches the root device and loads the Linux kernel from rootdev’s /boot directory. If the U-Boot is not selected during flashing, this partition contains the Linux kernel.
kernel-dtb
data
X
X
(Required) Contains the kernel device tree blob.
CAC
data
 
X
(Optional) Reserved for future use; removable.
CPUBL-CFG
data
X
 
(Optional) Contains boot device selection priority list.
RP1
data
X
 
(Optional) Reserved Partition. Can be mounted and used to store user data.
RP2
data
X
 
(Optional) Reserved Partition. Can be mounted and used to store user data.
UDA
data
X
X
(Optional) This partition, with the allocation attribute set to 0x808, automatically take all of remaining space of the device except secondary GPT space. This partition can be mounted and used to store user data.
secondary_gpt
secondary_gpt
X
X
(Required) Contains the secondary GPT of sdmmc_user device.
The Jetson Nano usage for each partition in SD card device is as follows:
Partition
Location
Partition / Purpose
Note
BCT
SPI-NOR
Boot configuration table, DRAM timing
 
NVC
SPI-NOR
Nvtboot bootloader
Reads DTB from SD card
Passes DTB to nvtboot_cpu
PT
SPI-NOR
Partition Table
 
PAD
SPI-NOR
Move VER to end of QSPI
Empty padding
VER
SPI-NOR
Firmware version field
<NV2>\n<BUILD INFO>\n<BOARDID> <BOARDSKU> <FAB>
APP
SD card
Root file system and kernel
 
TBC
SD card
nvtboot_cpu
Appends DDR timing info to DTB
RP1/DTB
SD card
Device Tree for BL/Kernel
Two copies (RP1 = BL-DTB, DTB = Kernel-DTB)
EBT
SD card
CBoot
Appends bootargs to DTB
Configures Pinmux from DTB
Passes DTB to U-Boot
WB0
SD card
Warmboot code
Used during resume
BPF
SD card
BPMP SC7 firmware
 
BPF-DTB
SD card
BPMP firmware DTB
Not used
FB
SD card
Fuse bypass
Not used
TOS
SD card
Trusted OS
 
LNX
SD card
U-Boot
Loads kernel from rootfs /boot
Launches kernel
EKS
SD card
Encryption key
BMP
SD card
BMP blob
Displayed to HDMI during boot splash
RP4
SD card
XUSB firmware
GPT
SD card
GPT header