diff mbox

[U-Boot,12/23] ARM64: zynqmp: Fix bootmode SD_MODE1

Message ID 6ff658ee1d9ba70bca2818922c52de43e980fe64.1452779188.git.michal.simek@xilinx.com
State Accepted
Commit 2d9925bce3060c91f2495e741a1220eb827338c0
Delegated to: Michal Simek
Headers show

Commit Message

Michal Simek Jan. 14, 2016, 1:46 p.m. UTC
When only sdhci1 IP is enabled and SD_MODE1 bootmode is selected
U-Boot using sdboot1 variable which refers to mmc dev 1.
But this device doesn't exist because only one controller is available.

This patch fix logic around sdboot mode with using sdbootdev internal
variable.

Reported-by: Chris Kohn <ckohn@xilinx.com>
Acked-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 board/xilinx/zynqmp/zynqmp.c    | 5 ++++-
 include/configs/xilinx_zynqmp.h | 6 ++++--
 2 files changed, 8 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index a1d3fef24e8e..ac2362532590 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -103,7 +103,10 @@  int board_late_init(void)
 		break;
 	case SD_MODE1:
 		puts("SD_MODE1\n");
-		setenv("modeboot", "sdboot1");
+#if defined(CONFIG_ZYNQ_SDHCI0) && defined(CONFIG_ZYNQ_SDHCI1)
+		setenv("sdbootdev", "1");
+#endif
+		setenv("modeboot", "sdboot");
 		break;
 	case NAND_MODE:
 		puts("NAND_MODE\n");
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index 03f74508efea..2d9f020f50d7 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -156,8 +156,10 @@ 
 	"kernel_addr=0x80000\0" \
 	"fdt_addr=0x7000000\0" \
 	"fdt_high=0x10000000\0" \
-	"sdboot=mmcinfo && load mmc 0:0 $fdt_addr system.dtb && " \
-		"load mmc 0:0 $kernel_addr Image && booti $kernel_addr - $fdt_addr\0" \
+	"sdbootdev=0\0"\
+	"sdboot=mmc dev $sdbootdev && mmcinfo && load mmc $sdbootdev:$partid $fdt_addr system.dtb && " \
+		"load mmc $sdbootdev:$partid $kernel_addr Image && " \
+		"booti $kernel_addr - $fdt_addr\0" \
 	DFU_ALT_INFO
 
 #define CONFIG_BOOTARGS		"setenv bootargs console=ttyPS0,${baudrate} " \