Partition Attributes Table

The following table shows supported partition attributes and their legal values.

Partition Attribute Values Description
encryption_derivation_string Binary Hex String For normal partitions, this is a max 32 byte hex string. For name=bct, this is a max 8 byte hex string. The string can be proceeded by 0x. Default is zero.
derivation_const1_string Binary Hex String For name=bct only, this is a max 16 byte hex string. The string can be proceeded by 0x. Default is zero.
derivation_const2_string Binary Hex String For name=bct only, this is a max 16 byte hex string. The string can be proceeded by 0x. Default is zero.
derivation_const_tz_string Binary Hex String For name=bct only, this is a max 16 byte hex string. The string can be proceeded by 0x. Default is zero.
derivation_const_gp_string Binary Hex String For name=bct only, this is a max 16 byte hex string. The string can be proceeded by 0x. Default is zero.
derivation_const_fsi_string Binary Hex String For name=bct only, this is a max 16 byte hex string. The string can be proceeded by 0x. Default is zero.
virtual_storage_ivc_ch 32-bit unsigned number. The following table describes the virtual_storage_ivc_ch attribute bit field:
Bits Description
31 Is Virtual Storage Flag [virt = 1, non-virt = 0]
30-24 Storage Server ID [int value from 0-0x7F]
23 Shared Partition Flag [ Shared = 1 , Exclusive = 0 ]
22 Reserved for attributes.
21:18 Partition Priority. [ Values from 1 thru 5 where 1 is highest priority ]
17 Disable Pass-through [ 1 = Disable, 0 = Enable ]
16 Read only flag [ RO = 1, RW = 0 ]
15:8 Mempool ID [int value from 0-0xFF]
7:0 IVC Queue ID [int value from 0-0xFF]
Example: Virtualized GOS persistent storage with IVC Queue=0xEC, Mempool ID=0x0x35, Read Write partition, Passthrough disabled, Priority Partition of 4, exclusive partition.

[partition]
name=gos0-misc-pers
allocation_policy=sequential
filesystem_type=basic
size=0x6600000
partition_attribute=<GID_GUEST0_VM+1>
virtual_storage_ivc_ch=0x8<GID_VSC_SERVER>1235EC
Every virtualized partition must have the virtual_storage_ivc_ch attribute. The VSC server relies on this attribute to configure the virtualization aspects of storage partitions.
encryption <true or false> Optional: true to encrypt with either global key or encryption_key.
encryption_key <filename> Optional: Partition-specific encryption key. Encryption must be true for partition to be encrypted.
name <name>

Specifies up to a 20-character name for the partition. This name is used when opening a partition for read/write access.

Names longer than 20 characters are not supported.

id <identifier> Identifier.
type

boot_config_table

bootloader

partition_table

extended_boot_record

GP1

GPT

data

Specifies the type of partition.

• boot_config_table is for the BCT.

• partition_table is for the partition table.

• extended_boot_record is for the EBR.

• GP1 is for the primary GPT partition.

• GPT is for the secondary GPT partition.

• data is for the remaining partitions.

type (continued)

mb1_boot_config_table

mb2_bootloader

mts_preboot

mts_bootpack

bpmp_fw

bpmp_fw_dtb

bootloader_cpu

secure_os

kernel_dtb

kernel

ramdisk

WB0

spe-fw

ape-fw

sce-fw

allocation_policy

absolute

sequential

extended

Specifies the type of allocation policy.

sequential—The begin immediately after the preceding partition.

absolute—The partition begins at the location specified by the start_location attribute.

extended—The partition is extended until end of the device just before GPT partition. Only one extended partition is allowed per device.

filesystem_type

basic

ext2

ext3

ext4

qnx

Specifies the type of filesystem formatted on the partition when the partition is created. The value may be:

basic—No file system. The partition can be overloaded with a file system image by providing a filename for the partition (see the filename entry in this table), or by formatting the partition after it is created.

ext2, ext3, or ext4—An ext2, ext3, or ext4 filesystem.

Applies to: eMMC, SD card, and NOR media in Linux: UBIFS for QSPI media.

qnx—A qnx6 filesystem.

Applies to DRIVE OS QNX:

External file system support depends on the support available in the flashing tool.

For a qnx6 filesystem the following environment variables must be set:

$ export QNX_HOST=<QNX_TOOLCHAIN_BASE>/host/linux/x86_64/

$ export QNX_TARGET=<QNX_TOOLCHAIN_BASE>/target/qnx7/

Where <QNX_TOOLCHAIN_BASE> is the pathname of the toolchain base.

start_location <start> Specifies the starting location of the partition in the mass storage device. Valid for absolute partitions only.
size <size>

Specifies the size of the partition in bytes. Decimal and hexadecimal values are valid. The boot loader requires that the partition size be aligned and the alignment size be:

• For QSPI: 128K (131072) bytes

• For eMMC/SD card: 8K (8192) bytes

partition_attribute 32-bit unsigned number

For CFG v1:

For virtualization, this property specifies to which guest this partition belongs. Partition_attribute must be equal to guest_id + 1 as defined in the PCT. Additionally, per device only one partition can be allocated to a given guest.

For CFG v2:

The bits of partition_attribute have the following definitions:

•Bit 31: Set if the partition’s storage device is the boot medium for the guest.

•Bit 30: Set if the partition holds a blob for boot-chain (and sub_cfg_file is present if the partition is present on the global boot device).

•Bit 29: Set if the partition holds a blob for guest partitions (and sub_cfg_file is present).

•Bit 28: Set if the partition holds a blob for user partitions (and sub_cfg_file is present).

•Bits 4:0: guest ID.

filename

<filename>

See Notes at the end of this table.

Specifies the name of the file to write into the partition. The file must be present in the directory in which nvimagegen is running or named with an absolute path.

The filename attribute cannot be used with the following attributes:

• dirname

• imagepath

rcm_filename

<filename*>

See Notes at the end of this table.

Specifies the recovery mode binary for use in microboot 1 (NVC) or microboot 2 (MB2). The file must be present in the directory in which nvimagegen is running or named with an absolute path.

The filename attribute cannot be used with the following attributes:

• dirname

dirname

<Directory Path*>

See Notes at the end of this table.

Specifies the directory path for creating the filesystem image (based on the filesystem_type attribute) and burning the same to the media. This attribute applies to the ext2/3 external file system.

For detailed information, see the *_fs.cfg file.

The dirname and filename attributes cannot be used in the same partition.

imagepath

<file name*>

See Notes at the end of this table.

Specifies the kernel image path, which is usually an OS kernel partition. The Flashing tools create the kernel image, which will be flashed based on the other specified. For detailed information, see the *_fs.cfg file.

The imagepath and filename attributes cannot be used in the same partition.

os_args <String>

Kernel command line to be passed to the kernel. Key-value pairs are separated by spaces. root= is required and, depending on the root=value, rootfstype= may also be required.

The supported key-value pairs are specified in:

kernel/Documentation/kernel-parameters.txt

For more information, see Aligning os_args and the Mass Storage Layout.

Valid only with the kernel_dtb partition.

ramdisk_path

<filename*>

See Notes at the end of this table.

Specifies the name of the ramdisk image file. The specified file must be present in the directory in which nvimagegen is running or the name must be an absolute path.

Valid only with the imagepath attribute.

os_load_address <address>

Specifies address where boot loader must load the kernel image.

When the image is zImage (specified in imagepath), set this property to 0xA00800. When the image is Image, set it to 0x8000.

ramdisk_load_address <address> Specifies the load address for Ram-disk.
decompression_algorithm <lzf | zlib | none>

Specifies the algorithm that Quickboot uses for decompressing images.

lzf is the preferred algorithm.

Ensure that the partition has enough space to hold the image, especially when flashing an uncompressed image (decompression_algorithm=none).

• If this field is not specified, by default, lzf is used as the decompression algorithm.

• Quickboot decompresses images in parallel with loading the image.

• Use only when the imagepath or ramdisk_path attribute points to an image.

Applies to: QSPI media only.

write_protect

0 or 1

Not currently supported.

Specifies whether to write-protect a given partition. Write-protection prevents partition erasures.

This attribute has no effect during flashing. All partitions are unprotected before flashing.

sub_config_file

<cfg_pathname*>

See Notes at the end of this table.

Specifies the path to the configuration file that contains the layout for the guest. The flashing system, including the main configuration file, assumes this is a single blob file.
load_address Numeric_value Specifies the load address for the binary in the given partition.
entry_point Numeric_value Specifies the entry_point for the binary in the given partition.
version Numeric_value Specifies the version for the given binary.
image_type <linux | android | integrity | hypervisor | ramdisk | mods>

Specifies the type of image. Valid only for kernel and ramdisk partitions.

Currently, mods is for internal use.

stream_validation <yes|no>

Specifies whether to validate the image in parallel with loading an decompressing the image.

If decompression_algorithm is selected, this attribute is ignored.

authentication_group <number>

Specifies the partition to a group. All the partitions grouped will be authenticated together.

The minimum group number is 1 and the maximum group number is 15. Group number 0 means not in a group.

For more information, see Grouping of Boot Images.

virtual_storage_ivc_ch 32-bit unsigned number Every virtualized partition must have the virtual_storage_ivc_ch attribute. The VSC server relies on this attribute to configure the virtualization aspects of storage partitions.

The following table describes the virtual_storage_ivc_ch attribute bit field.

Bits Description
31 Is Virtual Storage Flag [virt = 1, non-virt = 0]
30-24 Storage Server ID [int value from 0-0x7F]
23 Shared Partition Flag [ Shared = 1 , Exclusive = 0 ]
22 Reserved for attributes.
21:18 Partition Priority. [ Values from 1 thru 5 where 1 is highest priority ]
17 Disable Pass-through [ 1 = Disable, 0 = Enable ]
16 Read only flag [ RO = 1, RW = 0 ]
15:8 Mempool ID [int value from 0-0xFF]
7:0 IVC Queue ID [int value from 0-0xFF]
Example: Virtualized GOS persistent storage with IVC Queue=0xEC, Mempool ID=0x0x35, Read Write partition, Passthrough disabled, Priority Partition of 4, exclusive partition.

[partition]
name=gos0-misc-pers
allocation_policy=sequential
filesystem_type=basic
size=0x6600000
partition_attribute=<GID_GUEST0_VM+1>
virtual_storage_ivc_ch=0x8<GID_VSC_SERVER>1235EC
Note: *To avoid Bootburn errors, do not use special characters in directory names. Such special characters include the plus sign (+) and pound sign (#).

Configuration files that configure the Flashing tool for an eMMC, or QSPI media depend upon the targeted OS. You can find the configuration files in these locations:

<top>/drive-foundation/tools/flashtools/bootburn_t23x/*.cfg

For best practices, retain the file as provided and add optional partitions based on project requirements.