
Hi Jonathan,
On Sat, Feb 10, 2018 at 10:57:26AM +0100, Lukasz Majewski wrote:
Hi Jonathan,
On Sat, Feb 10, 2018 at 01:45:16AM +0100, Lukasz Majewski wrote:
Hi Jonathan,
On Sat, Feb 03, 2018 at 11:00:35AM -0200, Fabio Estevam wrote:
On Sat, Feb 3, 2018 at 5:29 AM, Lukasz Majewski lukma@denx.de wrote: > The goal of this patch is to clean up the code related to > choosing SPL MMC boot mode. > > The spl_boot_mode() now is called only in > spl_mmc_load_image() function, which is only compiled in > if CONFIG_SPL_MMC_SUPPORT is enabled. > > To achieve the goal, all per mach/arch implementations > eligible for unification has been replaced with one __weak > implementation. > > Signed-off-by: Lukasz Majewski lukma@denx.de > Reviewed-by: Marek Vasut marex@denx.de > Reviewed-by: Stefano Babic sbabic@denx.de > Acked-by: Michal Simek michal.simek@xilinx.com (For > ZynqMP)
Nice cleanup:
Reviewed-by: Fabio Estevam fabio.estevam@nxp.com
This has broken booting via mmc with mx6cuboxi for me.
SPL loops on
U-Boot SPL 2018.03-rc1-00212-g48914fc119 (Feb 10 2018 - 11:04:33 +1300) Trying to boot from MMC1 Failed to mount ext2 filesystem... spl_load_image_ext: ext4fs mount err - 0
Could you check what is the status of following defines in your .config file:
CONFIG_SPL_FAT_SUPPORT CONFIG_SUPPORT_EMMC_BOOT
"# CONFIG_SPL_FAT_SUPPORT is not set"
CONFIG_SUPPORT_EMMC_BOOT is not in the .config at all
CONFIG_SPL_EXT_SUPPORT previously for imx6 would result in MMCSD_MODE_RAW but now it results in MMCSD_MODE_FS.
And if by any chance your don't have: CONFIG_SPL_EXT_SUPPORT defined?
CONFIG_SPL_EXT_SUPPORT=y
Could you for test comment out the above define?
Removing CONFIG_SPL_EXT_SUPPORT=y from the defconfig or using the following diff makes the system boot.
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index 351f4edd41..1541a4837d 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -283,7 +283,7 @@ static int spl_mmc_do_fs_boot(struct spl_image_info *spl_image, struct mmc *mmc) u32 __weak spl_boot_mode(const u32 boot_device) { -#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT) +#if defined(CONFIG_SPL_FAT_SUPPORT) return MMCSD_MODE_FS; #elif defined(CONFIG_SUPPORT_EMMC_BOOT) return MMCSD_MODE_EMMCBOOT;
Original iMX code (CONFIG_SPL_EXT_SUPPORT is not taken into account at all): ----------------------------------------------------------------------------
-#if defined(CONFIG_SPL_MMC_SUPPORT) -/* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */ -u32 spl_boot_mode(const u32 boot_device) -{ - switch (spl_boot_device()) { - /* for MMC return either RAW or FAT mode */ - case BOOT_DEVICE_MMC1: - case BOOT_DEVICE_MMC2: -#if defined(CONFIG_SPL_FAT_SUPPORT) - return MMCSD_MODE_FS; -#elif defined(CONFIG_SUPPORT_EMMC_BOOT) - return MMCSD_MODE_EMMCBOOT; -#else - return MMCSD_MODE_RAW; -#endif - break; - default: - puts("spl: ERROR: unsupported device\n"); - hang(); - } -} -#endif
Current code (socfpga):
+u32 __weak spl_boot_mode(const u32 boot_device) +{ +#if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT) + return MMCSD_MODE_FS; +#elif defined(CONFIG_SUPPORT_EMMC_BOOT) + return MMCSD_MODE_EMMCBOOT; +#else + return MMCSD_MODE_RAW; +#endif +}
So with the original iMX code the MMCSD_MODE_RAW is returned even when you do have CONFIG_SPL_EXT_SUPPORT enabled.
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-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de