summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2019-02-13 13:46:41 +0100
committerMichal Simek <michal.simek@xilinx.com>2019-02-14 14:31:10 +0100
commit35e2b92344b1feee818a8e778b403c8a6a136230 (patch)
treee558005c35eda31284961bd032b11ce2ad485cfe /arch
parent027b1134b20b253b71de306738ed8d2d3f8ddc21 (diff)
arm64: zynqmp: Fix logic around CONFIG_ZYNQ_SDHCI
Replace SDHCI controller listing by Kconfig symbol to let SPL know that this board is using multiple SDHCIs controllers. Kconfig help message should explain why this is needed. Origin symbols were used in full u-boot but with moving to distro boot this was fixed already. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-zynqmp/Kconfig11
-rw-r--r--arch/arm/mach-zynqmp/spl.c2
2 files changed, 12 insertions, 1 deletions
diff --git a/arch/arm/mach-zynqmp/Kconfig b/arch/arm/mach-zynqmp/Kconfig
index e9f7e7e489..9bb5a5c202 100644
--- a/arch/arm/mach-zynqmp/Kconfig
+++ b/arch/arm/mach-zynqmp/Kconfig
@@ -99,6 +99,17 @@ config SPL_ZYNQMP_ALT_BOOTMODE_ENABLED
config ZYNQ_SDHCI_MAX_FREQ
default 200000000
+config SPL_ZYNQMP_TWO_SDHCI
+ bool "Enable booting from both SDHCIs"
+ depends on SPL
+ help
+ This option reflects that board has two SDHCI controllers which
+ platform can use as boot device. This option ensures that SPL will
+ setup BOOT_DEVICE_MMC2 for SDHCI1 controller and BOOT_DEVICE_MMC1 for
+ SDHCI0 controller. Platforms which have only one SDHCI controller
+ shouldn't enable this option because it for software SDHCI0 or SDHCI1
+ are both covered by BOOT_DEVICE_MMC1.
+
config SPL_ZYNQMP_ALT_BOOTMODE
hex
default 0x0 if JTAG_MODE
diff --git a/arch/arm/mach-zynqmp/spl.c b/arch/arm/mach-zynqmp/spl.c
index fb3955c93f..f6f5414201 100644
--- a/arch/arm/mach-zynqmp/spl.c
+++ b/arch/arm/mach-zynqmp/spl.c
@@ -85,7 +85,7 @@ u32 spl_boot_device(void)
case SD_MODE1:
case SD1_LSHFT_MODE: /* not working on silicon v1 */
/* if both controllers enabled, then these two are the second controller */
-#if defined(CONFIG_ZYNQ_SDHCI0) && defined(CONFIG_ZYNQ_SDHCI1)
+#if defined(SPL_ZYNQMP_TWO_SDHCI)
return BOOT_DEVICE_MMC2;
/* else, fall through, the one SDHCI controller that is enabled is number 1 */
#endif