The ConnectCore MP15 uses a NAND flash as main storage media. The flash is divided into logical partitions per the U-Boot variable mtdparts, which contains a string in the format described by the Linux kernel parameters in drivers/mtd/parsers/cmdlinepart.c.

Partition table

The default NAND partition table on the ConnectCore MP15 establishes the following partitions:

NAND flash layout for dual boot

  • fsbl1, fsbl2: FSBL stands for First Stage Bootloader. These partitions contain (in duplicate) the ARM Trusted Firmware (TF-A), which is the first piece of firmware that runs after the ROM loader. Its primary purpose is to perform any additional initialization required to load and authenticate all third-level firmware images into their executable RAM locations.

    Partitions are redundant. If the ROM loader cannot boot from fsbl1, it will fall back to boot from fsbl2.

  • metadata1, metadata2: These partitions contain (in duplicate) information for the TF-A to localize the FIP partition to use (the active system, A or B).

  • fip-a, fip-b: FIP stands for Firmware Image Package. These partitions contain a FIP image that contains the Trusted Execution Environment (TEE) firmware and the U-Boot bootloader.

    Partitions are redundant. If the TF-A cannot boot from fip-a, it will fall back to boot from fip-b.

  • UBI: This partition extends to all the remaining space and contains the U-Boot environment and the system partitions as UBI volumes.

Dual boot UBI volumes (default)

The ConnectCore MP15 enables Dual boot by default. On a dual boot-enabled system the UBI partition contains the following UBI volumes:

NAND flash layout for dual boot

  • uboot_config, uboot_config_r: (UBI volumes) Contain the U-Boot environment and its redundant copy.

  • linux_a: (UBI volume) Contains the Linux kernel, device tree files, and U-Boot boot scripts. U-Boot reads the operating system files from this default volume.

  • linux_b: (UBI volume) Same as linux_a (for system B).

  • rootfs_a: (UBI volume) Linux root file system volume (for system A)

  • rootfs_b: (UBI volume) Linux root file system volume (for system B)

  • data: Placeholder volume for user data.

Single system UBI volumes

When the NAND capacity doesn’t allow for a dual boot UBI volumes layout, you can alternatively define a single system UBI volumes layout:

NAND flash layout

  • uboot_config, uboot_config_r: (UBI volumes) Contain the U-Boot environment and its redundant copy.

  • linux: (UBI volume) Contains the Linux kernel, device tree files, and U-Boot boot scripts. U-Boot reads the operating system files from this default volume.

  • recovery: (UBI volume) Contains a Linux kernel, device tree files, U-Boot boot scripts, and a recovery ramdisk image that can be launched (instead of the default operating system) to perform firmware updates on the device.

  • rootfs: (UBI volume) Contains the Linux root file system.

  • update: (UBI volume) Placeholder volume to store firmware update files prior to launching a firmware update process on the device.

  • data: Placeholder volume for user data.

To prepare your NAND for single system UBI volumes, run the following in U-Boot:

=> setenv dualboot no
=> run ubivolscript
=> saveenv