[U-Boot] [PATCH 4/5] arm: ti: boot: Add dtbo partition for Android boot
Sam Protsenko
semen.protsenko at linaro.org
Mon Apr 16 20:32:26 UTC 2018
New Android boot scheme looks like this [1], and it involves adding new
partition for storing Device Tree Overlays. This patch adds dtbo
partition. While at it, let's revise Android partition table a bit.
List of changes:
- rename "misc" to "hole" (not used for anything, just a guard hole)
- rename "reserved" to "uenv" (because it hold U-Boot environment)
- rename "environment" to "dtb" (because it actually holds .dtb file)
- move "dtb" after "uenv" (so that changes of dtb size won't affect
"uenv" offset)
- make "hole" size twice as bigger (to keep "uenv" offset the same,
because "dtb" was moved after "uenv")
- add "dtbo" partition (after "dtb", to not affect "uenv" offset)
- while at it, increase "boot" partition size up to 20 MiB; that's
needed because while playing with some additional drivers built-in
and different compression techniques, and also for HS signing, we
have seen the boot partition size reach close to border and
sometimes reach over the limit of 10 MiB
Now eMMC layout looks like this:
offset content size partition
(KiB) (KiB)
===============================================================
0 +------------------------+
| MBR/GPT header | 128 -
128 +------------------------+
| MLO | 256 xloader
384 +------------------------+
| u-boot.img | 1792 bootloader
2176 +------------------------+
| //////// hole //////// | 256 hole
2432 +------------------------+
| U-Boot environment | 256 uenv
| (+ redundant) |
2688 +------------------------+
| dtb files | 1024 dtb
3712 +------------------------+
| dtbo files | 1024 dtbo
4736 +------------------------+
Android partitions remaining *
===============================================================
"hole" partition is needed just to keep U-Boot environment at 2432 KiB
offset, because:
- this offset is used in DFU_ALT_INFO_EMMC:
"u-env.raw raw 0x1300 0x200;"
0x1300 = 4864 sectors = 2432 KiB
- which in turn relies on CONFIG_ENV_OFFSET:
CONFIG_ENV_OFFSET = 0x260000 = 2432 KiB
We are using "hole" partition instead of specifying "start" property to
"uenv" partition, because this way it's easier to maintain change of
preceding partitions.
Also fix Android boot commands appropriately.
[1] https://source.android.com/devices/architecture/dto/partitions
Signed-off-by: Sam Protsenko <semen.protsenko at linaro.org>
---
include/environment/ti/boot.h | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/include/environment/ti/boot.h b/include/environment/ti/boot.h
index 4f3d748b5c..f2d91f5298 100644
--- a/include/environment/ti/boot.h
+++ b/include/environment/ti/boot.h
@@ -26,13 +26,14 @@
"uuid_disk=${uuid_gpt_disk};" \
"name=xloader,start=128K,size=256K,uuid=${uuid_gpt_xloader};" \
"name=bootloader,size=1792K,uuid=${uuid_gpt_bootloader};" \
- "name=environment,size=128K,uuid=${uuid_gpt_environment};" \
- "name=misc,size=128K,uuid=${uuid_gpt_misc};" \
- "name=reserved,size=256K,uuid=${uuid_gpt_reserved};" \
+ "name=hole,size=256K,uuid=${uuid_gpt_hole};" \
+ "name=uenv,size=256K,uuid=${uuid_gpt_uenv};" \
+ "name=dtb,size=1M,uuid=${uuid_gpt_dtb};" \
+ "name=dtbo,size=1M,uuid=${uuid_gpt_dtbo};" \
"name=efs,size=16M,uuid=${uuid_gpt_efs};" \
"name=crypto,size=16K,uuid=${uuid_gpt_crypto};" \
"name=recovery,size=40M,uuid=${uuid_gpt_recovery};" \
- "name=boot,size=10M,uuid=${uuid_gpt_boot};" \
+ "name=boot,size=20M,uuid=${uuid_gpt_boot};" \
"name=system,size=768M,uuid=${uuid_gpt_system};" \
"name=vendor,size=256M,uuid=${uuid_gpt_vendor};" \
"name=cache,size=256M,uuid=${uuid_gpt_cache};" \
@@ -66,8 +67,8 @@
"setenv machid fe6; " \
"mmc dev $mmcdev; " \
"mmc rescan; " \
- "part start mmc ${mmcdev} environment fdt_start; " \
- "part size mmc ${mmcdev} environment fdt_size; " \
+ "part start mmc ${mmcdev} dtb fdt_start; " \
+ "part size mmc ${mmcdev} dtb fdt_size; " \
"part start mmc ${mmcdev} boot boot_start; " \
"part size mmc ${mmcdev} boot boot_size; " \
"mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; " \
--
2.17.0
More information about the U-Boot
mailing list