Hi Peng, > On i.MX8, when booting from eMMC boot partition, the whole flash.bin > is stored in boot partition, however SPL switches to user partition > during the init of mmc driver: > spl_mmc_load() -> mmc_init() > > Then it tries to load the container image in > spl_mmc_get_uboot_raw_sector(), but here it reads the data from user > partition and the header is not recognized as a valid header. > > So we move spl_mmc_get_uboot_raw_sector after eMMC partition switch > to address this issue. > > Anyway put spl_mmc_get_uboot_raw_sector before eMMC partition switch > is not correct, so let's move it after eMMC partition switch. >
I assume that this change is not causing regressions on other i.MX boards? (Like i.MX6Q or i.MX53) > Reported-by: Anatolij Gustschin <ag...@denx.de> > Signed-off-by: Peng Fan <peng....@nxp.com> > --- > common/spl/spl_mmc.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c > index 34e1e73d80..2ede096e61 100644 > --- a/common/spl/spl_mmc.c > +++ b/common/spl/spl_mmc.c > @@ -343,8 +343,6 @@ int spl_mmc_load(struct spl_image_info *spl_image, > } > } > > - raw_sect = spl_mmc_get_uboot_raw_sector(mmc); > - > boot_mode = spl_boot_mode(bootdev->boot_device); > err = -EINVAL; > switch (boot_mode) { > @@ -383,6 +381,9 @@ int spl_mmc_load(struct spl_image_info *spl_image, > if (!err) > return err; > } > + > + raw_sect = spl_mmc_get_uboot_raw_sector(mmc); > + > #ifdef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION > err = mmc_load_image_raw_partition(spl_image, mmc, > raw_part, raw_sect); Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lu...@denx.de
pgpxhtu5FjyDr.pgp
Description: OpenPGP digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot