[U-Boot] [PATCH 032/172] arm: socfpga: misc: Export bootmode into environment variable

Marek Vasut marex at denx.de
Mon Jul 27 22:49:55 CEST 2015


setenv an environment variable called "bootmode" , which contains the
board boot mode. This can be in turn used in scripts to determine from
where to load kernel and such.

Signed-off-by: Marek Vasut <marex at denx.de>
---
 arch/arm/mach-socfpga/misc.c     | 34 +++++++++++++++++++++++-----------
 include/configs/socfpga_common.h |  1 +
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-socfpga/misc.c b/arch/arm/mach-socfpga/misc.c
index 3982c29..a2cffbb 100644
--- a/arch/arm/mach-socfpga/misc.c
+++ b/arch/arm/mach-socfpga/misc.c
@@ -99,26 +99,38 @@ int cpu_mmc_init(bd_t *bis)
 }
 #endif
 
-#if defined(CONFIG_DISPLAY_CPUINFO)
-const char * const bsel_str[] = {
-	"Reserved",
-	"FPGA (HPS2FPGA Bridge)",
-	"NAND Flash (1.8V)",
-	"NAND Flash (3.0V)",
-	"SD/MMC External Transceiver (1.8V)",
-	"SD/MMC Internal Transceiver (3.0V)",
-	"QSPI Flash (1.8V)",
-	"QSPI Flash (3.0V)",
+struct {
+	const char	*mode;
+	const char	*name;
+} bsel_str[] = {
+	{ "rsvd", "Reserved", },
+	{ "fpga", "FPGA (HPS2FPGA Bridge)", },
+	{ "nand", "NAND Flash (1.8V)", },
+	{ "nand", "NAND Flash (3.0V)", },
+	{ "sd", "SD/MMC External Transceiver (1.8V)", },
+	{ "sd", "SD/MMC Internal Transceiver (3.0V)", },
+	{ "qspi", "QSPI Flash (1.8V)", },
+	{ "qspi", "QSPI Flash (3.0V)", },
 };
 
 /*
  * Print CPU information
  */
+#if defined(CONFIG_DISPLAY_CPUINFO)
 int print_cpuinfo(void)
 {
 	const u32 bsel = readl(&sysmgr_regs->bootinfo) & 0x7;
 	puts("CPU:   Altera SoCFPGA Platform\n");
-	printf("BOOT:  %s\n", bsel_str[bsel]);
+	printf("BOOT:  %s\n", bsel_str[bsel].name);
+	return 0;
+}
+#endif
+
+#ifdef CONFIG_ARCH_MISC_INIT
+int arch_misc_init(void)
+{
+	const u32 bsel = readl(&sysmgr_regs->bootinfo) & 0x7;
+	setenv("bootmode", bsel_str[bsel].mode);
 	return 0;
 }
 #endif
diff --git a/include/configs/socfpga_common.h b/include/configs/socfpga_common.h
index dde6938..615d51e 100644
--- a/include/configs/socfpga_common.h
+++ b/include/configs/socfpga_common.h
@@ -18,6 +18,7 @@
  */
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO_LATE
+#define CONFIG_ARCH_MISC_INIT
 #define CONFIG_ARCH_EARLY_INIT_R
 #define CONFIG_SYS_NO_FLASH
 #define CONFIG_CLOCKS
-- 
2.1.4



More information about the U-Boot mailing list