[U-Boot] [RFC PATCH 2/2] arm64: zynqmp: Try to create bootcm_mmcX at run time
Michal Simek
michal.simek at xilinx.com
Wed Apr 25 12:38:08 UTC 2018
Just an attept to create boot commands for mmcs above 2 which is not
generated.
Signed-off-by: Michal Simek <michal.simek at xilinx.com>
---
Probably some ifdefs around are missing.
---
board/xilinx/zynqmp/zynqmp.c | 28 ++++++++++++++++++++++++++++
include/configs/xilinx_zynqmp.h | 7 -------
2 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
index 96ea0f578d30..37fa8f4f4d3f 100644
--- a/board/xilinx/zynqmp/zynqmp.c
+++ b/board/xilinx/zynqmp/zynqmp.c
@@ -451,6 +451,32 @@ void reset_cpu(ulong addr)
{
}
+static int create_mmc_boot_commands(void)
+{
+/* Size of strings below + one terminating char \0 + 3 possitions for seq */
+#define MAX_COMMAND_LEN 15
+#define MAX_BODY_LEN 32
+
+ int ret;
+ struct uclass *uc;
+ struct udevice *dev;
+ char body[MAX_BODY_LEN];
+ char command[MAX_COMMAND_LEN];
+
+ ret = uclass_get(UCLASS_MMC, &uc);
+ if (ret)
+ return ret;
+
+ uclass_foreach_dev(dev, uc) {
+ snprintf(body, MAX_BODY_LEN, "setenv devnum %x; run mmc_boot",
+ dev->seq);
+ snprintf(command, MAX_COMMAND_LEN, "bootcmd_mmc%x", dev->seq);
+ env_set(command, body);
+ }
+
+ return 0;
+}
+
int board_late_init(void)
{
u32 reg = 0;
@@ -546,6 +572,8 @@ int board_late_init(void)
debug("Bootseq len: %x\n", bootseq_len);
}
+ create_mmc_boot_commands();
+
/*
* One terminating char + one byte for space between mode
* and default boot_targets
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index c8a0dbb7e3b5..a2590998429e 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -155,12 +155,6 @@
"scriptaddr=0x02000000\0" \
"ramdisk_addr_r=0x02100000\0" \
-#if defined(CONFIG_MMC_SDHCI_ZYNQ)
-# define BOOT_TARGET_DEVICES_MMC(func) func(MMC, mmc, 0) func(MMC, mmc, 1)
-#else
-# define BOOT_TARGET_DEVICES_MMC(func)
-#endif
-
#if defined(CONFIG_SATA_CEVA)
# define BOOT_TARGET_DEVICES_SCSI(func) func(SCSI, scsi, 0)
#else
@@ -186,7 +180,6 @@
#endif
#define BOOT_TARGET_DEVICES(func) \
- BOOT_TARGET_DEVICES_MMC(func) \
BOOT_TARGET_DEVICES_USB(func) \
BOOT_TARGET_DEVICES_SCSI(func) \
BOOT_TARGET_DEVICES_PXE(func) \
--
2.17.0
More information about the U-Boot
mailing list