NVIDIA Tegra
NVIDIA Tegra Linux Driver Package

Development Guide
28.3 Release


 
TX1/TX2 Mass Storage Partitions Configuration
 
Partition Configuration File
Root Element
Device Element
Partition Element
Default Partition Overview
NVIDIA® Linux® for Tegra® TX1 or TX2 releases support formatting mass storage media into multiple partitions for storing data, such as the device OS image, boot loader image, device firmware, and boot loader 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/<board name>/cfg/
The filename is specified in <device>.conf; typical values for systems booting from eMMC are:
Jetson TX1: gnu_linux_tegraboot_emmc_full.xml
Jetson TX2: flash_l4t_t186.xml
During the flashing procedure, flash.sh reads in the partition configuration file and translated keywords into values specified in <device>.conf or in option parameters and saves it in bootloader/flash.xml file. Then, the bootloader/tegraflash.py reads in bootloader/flash.xml file and performs actual flashing as specified by bootloader/flash.xml file.
For details, see List of Translated Keywords.
The partition configuration file is composed of the following XML format elements:
Root element
Device elements for Jetson TX2 only
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 Jetson TX1 partition configuration file does not contain any device elements; all partition definitions appear directly in the root element. When the storage medium is divided into multiple sub-devices; for example in the eMMC boot and user hardware partitions, those sub-devices are treated as if they are a single linear device that spans all the sub-devices.
The Jetson TX2 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 that 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 root Jetson TX1 or device Jetson TX2 element and 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, seethe Keywords Table.
(Required) Specifies a name for the partition. The name can have a maximum of 36 characters. There are 3 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 Keyword Table.
(Required) Specifies the type of partition. Certain partition types are valid only when they are associated with specific partition names.
oem_sign
Jetson TX2 only
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:
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
SCESIGN
true
SCEFILE
camera-rtcpu-sce.bin
SC7NAME
sc7
WB0TYPE
WB0
WB0FILE
warmboot.bin
FBNAME
FBNAME (Not used)
FBTYPE
data
FBSIGN
false
FBFILE
Removed/Unused
SOSFILE
Removed/Unused
LNXNAME
kernel
LNXSIZE
67108864
LNXFILE
boot.img
KERNELDTB-NAME
Kernel-dtb
KERNELDTB-FILE
Appropriate kernel DTB file name
Default Partition Overview
The Jetson TX 2 usage for each partition in sdmmc_boot device is as follows:
Name
Type
Description
BCT
boot_config_table
(Mandatory) Contains the Boot Configuration Table.
mb1
mb1_bootloader
(Mandatory) Contains NVIDIA signed MB1 binary.
MB1_BCT
mb1_boot_config_table
(Mandatory) Contains the MB1 boot configuration table.
spe-fw
spe-fw
Contains the BPMP spe-fw binary.
mb2
mb2_bootloader
Contains the primary copy of the TegraBoot binary..
mts-preboot
mts_preboot
Contains Denver preboot firmware.
secondary_gpt
secondary_gpt
Contains the secondary GPT of sdmmc_boot device.
The usage for each partition in sdmmc_user device is as follows:
Name
Type
Description
master_boot_record
protective_master_boot_record
(Mandatory) Contains protective MBR.
primary_gpt
primary_gpt
(Mandatory) 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
(Mandatory) 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-bootpack
Mts_bootpack
(Mandatory) Contains Denver boot pack firmware.
cpu-bootloader
bootloader
(Mandatory) Contains the final boot stage CPU bootloader binary that loads the binary in kernel partition.
bootloader-dtb
data
(Mandatory) Contains the bootloader device tree blob (DTB).
secure-os
data
(Mandatory) Contains the trusted OS.
eks
data
(Optional) Contains the encrypted keys.
adsp-fw
data
(Mandatory) Contains ADSP software.
bpmp-fw
data
(Mandatory) Contains BPMP firmware.
bpmp-fw-dtb
data
(Mandatory) Contains the BPMP firmware device tree blob (DTB).
sce-fw
data
(Optional) Contains camera-rtcpu-sce firmware.
sc7
WB0
(Mandatory) Contains warm boot binary.
FBNAME
data
(Optional) Reserved for future use. Removable.
BMP
data
(Optional) Contains BMP images (if any) for display during boot.
SOS
data
(Optional) Contains a partition used for recovery. Removable.
kernel
data
(Mandatory) 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
(Mandatory) Contains the kernel device tree blob (DTB).
CAC
data
(Optional) Reserved for future use. Removable.
UDA
data
(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
(Mandatory) Contains the secondary GPT of sdmmc_user device.