Android Partition Table

  • Odroid-xu3 has Min 8Gbyte eMMC or MicroSD memory card for system area.
  • FAT partition to calculate the remaining blocks to create the partition.
Mainline U-boot (odroidxu4-v2017.05)
Area Name Size From(sector #) To(Sector #) Name for Fastboot Partition Name
MBR 512 0 0
BL1 15KB 1 30 fwbl1
BL2 16KB 31 62 bl2
U-boot 720KB 63 1502 bootloader
TrustZone SW 256KB 1503 2014 tzsw
U-boot Environment 16KB 2015 2046
Kernel 8MB 2047 18431 kernel
Reserved 54.9MB 18432 131071
EXT4 for Android system 1GB 131072 2228223 mmcblk0p2
EXT4 for Android cache 256MB 2228224 2752511 mmcblk0p4
FAT32 for Internal Storage 100Mb 2752512 2957311 mmcblk0p1
EXT4 for Android userdata Up to 120GB 2957312 remaining blocks mmcblk0p3
U-boot (odroidxu3-v2012.07)
Area Name Size From(sector #) To(Sector #) Name for Fastboot Partition Name
MBR 512 0 0
BL1 15KB 1 30 fwbl1
BL2 16KB 31 62 bl2
U-boot 328KB 63 718 bootloader
TrustZone SW 256KB 719 1230 tzsw
U-boot Environment 16KB 1231 1262
Kernel 8MB 1263 17646 kernel
Reserved 55MB 17647 131071
EXT4 for Android system 1GB 131072 2240179 mmcblk0p2
EXT4 for Android userdata 2GB 2228224 6446519 mmcblk0p3
EXT4 for Android cache 256MB 6422528 6979919 mmcblk0p4
FAT32 for Storage Up to 120GB 6946816 remaining blocks mmcblk0p1

* Sector number - 1 in SD map is used in the eMMC map.

* How to adjust the userdata partition manually. Instruction

Ubuntu Partition Table

Mainline U-boot (odroidxu4-v2017.05)
Area Name Size From(sector #) To(Sector #) Name for Fastboot Partition Name
Partition table / MBR 512 0 0
fwbl1 15KB 1 30 fwbl1
bl2 16KB 31 62 bl2
u-boot 720K 63 1502 bootloader
TrustZone SW 256KB 1503 2014 tzsw
u-boot environment 16KB 2015 2046
FAT16 for boot 129M 3072 266239 mmcblk0p1
EXT4 for root file system Up to 64GB 266240 remaining blocks mmcblk0p2
U-boot (odroidxu3-v2012.07)
Area Name Size From(sector #) To(Sector #) Name for Fastboot Partition Name
Partition table / MBR 512 0 0
fwbl1 15KB 1 30 fwbl1
bl2 16KB 31 62 bl2
u-boot 328KB 63 718 bootloader
TrustZone SW 256KB 719 1230 tzsw
u-boot environment 16KB 1231 1262
FAT16 for boot 129M 3072 266239 mmcblk0p1
EXT4 for root file system Up to 64GB 266240 remaining blocks mmcblk0p2

* Sector number - 1 in SD map is used in the eMMC map.

Upon power on the board will search for the boot media. It will perform the following:

  1. iROM (Code inside the SoC) will attempt to read the boot media at the first 512 bytes of it. On those first 512 bytes fwbl1 should exist.
  2. fwbl1 will load bl2 (SPL) that is part of the U-boot.
  3. bl2 will load U-boot.
  4. U-Boot will do whats left, such as handle TrustZone, load kernel image if setted.

fwbl1

This blob is the first thing that CPU will call, we don't have much information on it since its provided by Samsung.

bl2

This is the SPL, part of the U-Boot, upon building U-Boot you'll have the mkspl program what will extract it from the u-boot.bin

u-boot.bin

This is the U-Boot itself built. For more information about U-Boot please check their website: http://www.denx.de/wiki/U-Boot

TrustZone Software

This is the blob done by Samsung/ARM to support Trustzone platform.

Default Env

The default env provided in U-Boot will attempt the following:

  1. Load boot.ini script from the first FAT type partition from the boot media.
  2. Load kernel from its on media (This is the Android Boot)