arm: socfpga: misc: Export bootmode into environment variable
authorMarek Vasut <marex@denx.de>
Wed, 22 Jul 2015 03:40:12 +0000 (05:40 +0200)
committerMarek Vasut <marex@denx.de>
Sat, 8 Aug 2015 12:14:08 +0000 (14:14 +0200)
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@denx.de>
arch/arm/mach-socfpga/misc.c
include/configs/socfpga_common.h

index d653bf624bc7bd685531cda6bd0fe2735301a510..27193e08f7075ae1b0f7347d900dc85f4076084c 100644 (file)
@@ -100,26 +100,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
index c62c78ad8da83ad80d05e786fdfb5da09459f668..bed8600a94a109559744bc8283d5120c33b67a26 100644 (file)
@@ -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