Partition Layout

Changes since v23.0

Since v23.0 release, the partition layout has dramatic changes, which is depicted below:

../../_images/part_relayout_v231.png

These changes are summarized as follows:

  • Several new partitions are added to accommodate future integration of additional features, including A/B firmware updating, Over-the-Air (OTA) upgrading, and more.

  • Although unrelated to the partition layout, the boot script has been relocated from kernel fitImage to fip.bin (bundled with U-Boot binary), to enhance the speed of kernel loading.

Partitions in detail

To better understanding the partition layout, we classify partitions in following categories:

  • A “firmware” defined partition is a partition defined and controlled by the board firmware (bootloader) vendors. This kind of partition is usually crucial to the firmware to be functional. If the partition is absent, or the content of the partition is corrupted, the firmware may fail and is unable to boot the board. Please consult the vendor for advice before making any change to the partitions in this category.

  • An “OS” defined partition is a partition defined and controlled by the operating system vendors or the system integrators. This type of partition stores the data required for booting an operating system. And the order, size, or number of partitions can be adjusted by the OS vendors or system integrators to meet their specific requirements.

The following table describes the partition scheme for Genio EVK boards using EMMC storage:

Partition Layout on Genio EVK boards

Category

Partition Label

Size

Partition Image

Remark

OS

rootfs

OS dependent

N/A

Rootfs generated by IoT Yocto

OS

kernel

32MB

fitImage

IoT Yocto kernel

OS

EFI system partition

100MB

capsule.vfat

Reserved to be consistent with EBBR, and currently not required for booting IoT Yocto. It also acts as a temporary area for storing EFI capsules during firmware update.

Firmware

bootassets

32MB

bootassets.vfat

Static bootloader data such as boot logos

Firmware

misc

1MB

N/A

Support A/B firmware update feature

Firmware

dramk

512KB

N/A

One-time programming for per-board DRAM calibration data

Firmware

firmware_b

32MB

N/A

Preserved for future use

Firmware

firmware

32MB

N/A

Preserved for future use

Firmware

bootloaders_b

4MB

fip.bin

The content in bootloaders and bootloaders_b should be the same initially

Firmware

bootloaders

4MB

fip.bin

Containing fip.bin, which consists of BL3* loaders (BL31, BL32, BL33)

Firmware

mmc0boot1

HW dependent

u-boot-env.bin

Runtime generated by genio-flash tool based on u-boot-initial-env plain text file and additional configurations

Firmware

mmc0boot0

HW dependent

bl2.img

2nd stage bootloader based on Trusted-Firmware-A

Firmware

rpmb

HW dependent

N/A

Storage for user defined secure data

Partition layout creation

The Genio image flash tool genio-flash uses wic generated image for flashing storage. The wic image packs a partition table and content of all partitions, thus it can be used for creating partition layout on the target board just by one flashing. Some individual images for partitions used for creating wic image are also included in the image tarball, so an user can also flash specific partition with corresponding image (by specifying partition name in genio-flash command option).