Booting with images in eMMC hardware boot partition doesn't work because the container header is loaded from user partition, thus the loaded data doesn't have a valid header. Add partition switching to support booting from eMMC boot partitions.
Signed-off-by: Anatolij Gustschin <ag...@denx.de> --- arch/arm/mach-imx/imx8/image.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/arm/mach-imx/imx8/image.c b/arch/arm/mach-imx/imx8/image.c index 58a29e8..b0e9494 100644 --- a/arch/arm/mach-imx/imx8/image.c +++ b/arch/arm/mach-imx/imx8/image.c @@ -72,7 +72,20 @@ static int get_container_size(void *dev, int dev_type, unsigned long offset) if (dev_type == MMC_DEV) { unsigned long count = 0; struct mmc *mmc = (struct mmc *)dev; - + u8 part; + + part = EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config); + if (part == 7) + part = 0; + if (part == 1 || part == 2) { + if (CONFIG_IS_ENABLED(MMC_TINY)) + ret = mmc_switch_part(mmc, part); + else + ret = blk_dselect_hwpart(mmc_get_blk_desc(mmc), + part); + if (ret) + return ret; + } count = blk_dread(mmc_get_blk_desc(mmc), offset / mmc->read_bl_len, CONTAINER_HDR_ALIGNMENT / mmc->read_bl_len, -- 2.7.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot