Message ID | 1486047373-31676-12-git-send-email-jagan@openedev.com |
---|---|
State | Changes Requested |
Delegated to: | Stefano Babic |
Headers | show |
On 02/02/2017 15:56, Jagan Teki wrote: > SPL mmc device index is get based on the boot device, like > - BOOT_DEVICE_MMC1 for mmc device 0 > - BOOT_DEVICE_MMC2 for mmc device 1 > > Currently BOOT_DEVICE_MMC1 is setting both SD/eSD and MMC/eMMC > boot devices in i.MX, So u-boot is loading from mmc device 0 even > "if the board booting from SD/eSD or MMC/eMMC" > > So, this patch set BOOT_DEVICE_MMC2 for MMC/eMMC so for MMC/eMMC > the u-boot is loading from mmc device 1 and the board file need to > take care if the board have different mmc device order intialization. > > Cc: Stefano Babic <sbabic@denx.de> > Cc: Matteo Lisi <matteo.lisi@engicam.com> > Cc: Michael Trimarchi <michael@amarulasolutions.com> > Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> > --- > board/engicam/icorem6_rqs/icorem6_rqs.c | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/board/engicam/icorem6_rqs/icorem6_rqs.c b/board/engicam/icorem6_rqs/icorem6_rqs.c > index 2769177..e3c520f 100644 > --- a/board/engicam/icorem6_rqs/icorem6_rqs.c > +++ b/board/engicam/icorem6_rqs/icorem6_rqs.c > @@ -125,6 +125,32 @@ int board_mmc_init(bd_t *bis) > > return 0; > } > + > +#ifdef CONFIG_ENV_IS_IN_MMC > +void board_boot_order(u32 *spl_boot_list) > +{ > + u32 bmode = imx6_src_get_boot_mode(); > + u8 boot_dev = BOOT_DEVICE_MMC1; > + > + switch ((bmode & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT) { > + case IMX6_BMODE_SD: > + case IMX6_BMODE_ESD: > + /* SD/eSD - BOOT_DEVICE_MMC1 */ > + break; > + case IMX6_BMODE_MMC: > + case IMX6_BMODE_EMMC: > + /* MMC/eMMC */ > + boot_dev = BOOT_DEVICE_MMC2; > + break; > + default: > + /* Default - BOOT_DEVICE_MMC1 */ > + printf("Wrong board boot order\n"); > + break; > + } > + > + spl_boot_list[0] = boot_dev; > +} > +#endif > #endif > > /* > Reviewed by : Stefano Babic |sbabic@denx.de> Best regards, Stefano Babic
diff --git a/board/engicam/icorem6_rqs/icorem6_rqs.c b/board/engicam/icorem6_rqs/icorem6_rqs.c index 2769177..e3c520f 100644 --- a/board/engicam/icorem6_rqs/icorem6_rqs.c +++ b/board/engicam/icorem6_rqs/icorem6_rqs.c @@ -125,6 +125,32 @@ int board_mmc_init(bd_t *bis) return 0; } + +#ifdef CONFIG_ENV_IS_IN_MMC +void board_boot_order(u32 *spl_boot_list) +{ + u32 bmode = imx6_src_get_boot_mode(); + u8 boot_dev = BOOT_DEVICE_MMC1; + + switch ((bmode & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT) { + case IMX6_BMODE_SD: + case IMX6_BMODE_ESD: + /* SD/eSD - BOOT_DEVICE_MMC1 */ + break; + case IMX6_BMODE_MMC: + case IMX6_BMODE_EMMC: + /* MMC/eMMC */ + boot_dev = BOOT_DEVICE_MMC2; + break; + default: + /* Default - BOOT_DEVICE_MMC1 */ + printf("Wrong board boot order\n"); + break; + } + + spl_boot_list[0] = boot_dev; +} +#endif #endif /*
SPL mmc device index is get based on the boot device, like - BOOT_DEVICE_MMC1 for mmc device 0 - BOOT_DEVICE_MMC2 for mmc device 1 Currently BOOT_DEVICE_MMC1 is setting both SD/eSD and MMC/eMMC boot devices in i.MX, So u-boot is loading from mmc device 0 even "if the board booting from SD/eSD or MMC/eMMC" So, this patch set BOOT_DEVICE_MMC2 for MMC/eMMC so for MMC/eMMC the u-boot is loading from mmc device 1 and the board file need to take care if the board have different mmc device order intialization. Cc: Stefano Babic <sbabic@denx.de> Cc: Matteo Lisi <matteo.lisi@engicam.com> Cc: Michael Trimarchi <michael@amarulasolutions.com> Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> --- board/engicam/icorem6_rqs/icorem6_rqs.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)