]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: am57xx: Fix Linux boot from eMMC
authorSam Protsenko <semen.protsenko@linaro.org>
Thu, 21 Sep 2017 19:37:56 +0000 (22:37 +0300)
committerTom Rini <trini@konsulko.com>
Fri, 29 Sep 2017 18:07:57 +0000 (14:07 -0400)
Right now on OMAP5-based boards we have only one partition defined for
Linux boot, which is rootfs. That doesn't work with bootpart=1:2 (that
is defined in include/environment/ti/boot.h). To fix Linux boot we may
either:

 1. Change bootpart to be 1:1
 2. Or add preceding partition, so that rootfs is actually 1:2

Second choice seems more reasonable, as DFU is already using similar
partition table and can rely on bootpart to be 1:2.

This patch adds "bootloader" partition. So now eMMC layout for Linux
boot looks like this:

offset               content                 size          partition
(KiB)                                        (KiB)
Reviewed-by: Tom Rini <trini@konsulko.com>
=======================================================================

0       +--------------------------------+
        | MBR/GPT header                 |   128           -
128     +--------------------------------+
        | MLO                            |   256           -
384     +--------------------------------+
        | u-boot.img                     |   1792          bootloader
2176    +--------------------------------+
        | //////////// hole //////////// |   256           -
2432    +--------------------------------+
        | U-Boot environment             |   128           -
2560    +--------------------------------+
        | U-Boot environment (redundant) |   128           -
2688    +--------------------------------+
        | rootfs                         |   remaining     rootfs
end     +--------------------------------+

=======================================================================

Guard hole appears because U-Boot environment offset was calculated for
Android partition table, which has two additional partitions in place of
that hole ("environment" and "misc" partitions).

This patch also changes rootfs offset from 2 MiB further to 2688 KiB,
so that there won't be any collisions with U-Boot environment when we
flash rootfs.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
include/configs/am57xx_evm.h

index 0c70c5305033e30fa757af80801148b648d507d8..bf555ccdc2ed4c430f3aaca582dee15bf90b162d 100644 (file)
@@ -44,7 +44,8 @@
 #define PARTS_DEFAULT \
        /* Linux partitions */ \
        "uuid_disk=${uuid_gpt_disk};" \
-       "name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}\0" \
+       "name=bootloader,start=384K,size=1792K,uuid=${uuid_gpt_bootloader};" \
+       "name=rootfs,start=2688K,size=-,uuid=${uuid_gpt_rootfs}\0" \
        /* Android partitions */ \
        "partitions_android=" \
        "uuid_disk=${uuid_gpt_disk};" \