[U-Boot] [PATCH] am335x_evm: Consolidate eMMC partitions with DFU info
Lokesh Vutla
lokeshvutla at ti.com
Thu Feb 8 05:58:54 UTC 2018
On Thursday 08 February 2018 12:11 AM, Sam Protsenko wrote:
> From DFU_ALT_INFO_EMMC (include/environment/ti/dfu.h) we can see that
> rootfs will be flashed to second partition on eMMC. But at the moment we
> have only one partition in $partitions environment variable. Let's add
> "bootloader" partition prior to "rootfs", so that DFU works correctly.
> This also fixes eMMC boot, which looks for rootfs on second partition.
>
> "bootloader" partition start corresponds to "u-boot.img.raw" in DFU
> eMMC info, which is 0x300 sector (384 KiB offset from eMMC start).
>
> rootfs start address can be also found from DFU eMMC info.
> bootloader-related area is finished at 0x1500 sector (2688 KiB offset
> from eMMC start). This should be the start address for rootfs in
> $partitions environment variable.
>
> While at it, fix U-Boot environment address to be the same as for
> AM57x EVM, so that it doesn't clash with other partitions.
>
> So now eMMC layout looks like this:
>
> ===============================================================
>
> 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 | 128 -
> | (redundant) |
> 2688 +------------------------+
> | rootfs | remaining rootfs
> end +------------------------+
>
> ===============================================================
>
> "hole" area can be used further for storing U-Boot environment (like
> it's done in AM57x EVM config file) or for increasing u-boot.img area
> (in case u-boot.img size increased, e.g. if new dtbs were added).
>
> This commit conforms with Linux partition table from f6d245b8c56c
> ("arm: am57xx: Fix Linux boot from eMMC") commit, making things in
> uniform way.
>
> Signed-off-by: Sam Protsenko <semen.protsenko at linaro.org>
Reviewed-by: Lokesh Vutla <lokeshvutla at ti.com>
Thanks and regards,
Lokesh
> ---
> include/configs/am335x_evm.h | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
> index 31ab503dca..8c2dd2aac8 100644
> --- a/include/configs/am335x_evm.h
> +++ b/include/configs/am335x_evm.h
> @@ -17,12 +17,13 @@
> #define __CONFIG_AM335X_EVM_H
>
> #include <configs/ti_am335x_common.h>
> +#include <linux/sizes.h>
>
> #ifndef CONFIG_SPL_BUILD
> # define CONFIG_TIMESTAMP
> #endif
>
> -#define CONFIG_SYS_BOOTM_LEN (16 << 20)
> +#define CONFIG_SYS_BOOTM_LEN SZ_16M
>
> #define CONFIG_MACH_TYPE MACH_TYPE_AM335XEVM
>
> @@ -34,7 +35,7 @@
> #define CONFIG_SYS_LDSCRIPT "board/ti/am335x/u-boot.lds"
>
> /* Always 128 KiB env size */
> -#define CONFIG_ENV_SIZE (128 << 10)
> +#define CONFIG_ENV_SIZE SZ_128K
>
> #ifdef CONFIG_NAND
> #define NANDARGS \
> @@ -99,7 +100,9 @@
> "console=ttyO0,115200n8\0" \
> "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" \
> "optargs=\0" \
> "ramroot=/dev/ram0 rw\0" \
> "ramrootfstype=ext2\0" \
> @@ -280,8 +283,8 @@
> #define CONFIG_ENV_OFFSET_REDUND (896 << 10) /* 896 KiB in */
> #elif defined(CONFIG_EMMC_BOOT)
> #define CONFIG_SYS_MMC_ENV_DEV 1
> -#define CONFIG_SYS_MMC_ENV_PART 2
> -#define CONFIG_ENV_OFFSET 0x0
> +#define CONFIG_SYS_MMC_ENV_PART 0
> +#define CONFIG_ENV_OFFSET 0x260000
> #define CONFIG_ENV_OFFSET_REDUND (CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
> #define CONFIG_SYS_REDUNDAND_ENVIRONMENT
> #define CONFIG_SYS_MMC_MAX_DEVICE 2
>
More information about the U-Boot
mailing list