From 32ded5022e5606fe1a1220ed5ea3e2f935da0fce Mon Sep 17 00:00:00 2001 From: Anatolij Gustschin Date: Fri, 18 Oct 2019 21:38:33 +0200 Subject: [PATCH] spl: mmc: make eMMC HW boot partition configuration optional Loading U-Boot on i.MX8QXP MEK board is broken since recent changes in spl_mmc: U-Boot SPL 2019.10-00162-gff5bd397e4 (Oct 18 2019 - 15:50:45 +0200) Normal Boot WDT: Not found! Trying to boot from MMC2_2 Load image from MMC/SD 0x46400 spl: mmc partition switch failed SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ### The newly added CONFIG_SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION option is selected automatically and overrides the EXT_CSC_PART_CONFIG configurations with default value, always selecting the eMMC boot partition 1. Boards which place U-Boot image in other partitions became not bootable. Fix this by making the eMMC HW boot partition selection optional. Fixes: 17241ea0543a (spl: mmc: Add option to set eMMC HW boot partition) Reviewed-by: Lukasz Majewski Signed-off-by: Anatolij Gustschin --- common/spl/Kconfig | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 562eafe2e5..86d7edfee1 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -325,12 +325,6 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR Address on the MMC to load U-Boot from, when the MMC is being used in raw mode. Units: MMC sectors (1 sector = 512 bytes). -config SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION - int "Number of the eMMC boot partition to use" - default 1 - help - eMMC boot partition number to use when the eMMC in raw mode. - config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION bool "MMC Raw mode: by partition" help @@ -359,6 +353,28 @@ config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE Partition Type on the MMC to load U-Boot from, when the MMC is being used in raw mode. +config SUPPORT_EMMC_BOOT_OVERRIDE_PART_CONFIG + bool "Override eMMC EXT_CSC_PART_CONFIG by user defined partition" + depends on SUPPORT_EMMC_BOOT + help + eMMC boot partition is normally configured by the bits of the EXT_CSD + register (EXT_CSC_PART_CONFIG), BOOT_PARTITION_ENABLE field. In some + cases it might be required in SPL to load the image from different + partition than the partition selected by EXT_CSC_PART_CONFIG register. + Enable this option if you intend to use an eMMC boot partition other + then selected via EXT_CSC_PART_CONFIG register and specify the custom + partition number by the CONFIG_SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION + option. + +config SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION + int "Number of the eMMC boot partition to use" + depends on SUPPORT_EMMC_BOOT_OVERRIDE_PART_CONFIG + default 1 + help + eMMC boot partition number to use when the eMMC in raw mode and + the eMMC EXT_CSC_PART_CONFIG selection should be overridden in SPL + by user defined partition number. + config SPL_CRC32_SUPPORT bool "Support CRC32" default y if SPL_LEGACY_IMAGE_SUPPORT -- 2.39.5