Partition Layout
Changes since v23.0
Since v23.0 release, the partition layout has dramatic changes, which is depicted below:
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:
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).