Merge tag 'u-boot-amlogic-20181126' of git://git.denx.de/u-boot-amlogic
[oweals/u-boot.git] / arch / arm / mach-meson / board-common.c
index 8c4f3074fbc738e3c81dc17ef322f830c4832ee5..8c41301674e3eafb67f69f161f80b610c29e7f20 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <common.h>
+#include <asm/arch/boot.h>
 #include <linux/libfdt.h>
 #include <linux/err.h>
 #include <asm/arch/mem.h>
@@ -66,6 +67,50 @@ void meson_board_add_reserved_memory(void *fdt, u64 start, u64 size)
        }
 }
 
+static void meson_set_boot_source(void)
+{
+       const char *source;
+
+       switch (meson_get_boot_device()) {
+       case BOOT_DEVICE_EMMC:
+               source = "emmc";
+               break;
+
+       case BOOT_DEVICE_NAND:
+               source = "nand";
+               break;
+
+       case BOOT_DEVICE_SPI:
+               source = "spi";
+               break;
+
+       case BOOT_DEVICE_SD:
+               source = "sd";
+               break;
+
+       case BOOT_DEVICE_USB:
+               source = "usb";
+               break;
+
+       default:
+               source = "unknown";
+       }
+
+       env_set("boot_source", source);
+}
+
+__weak int meson_board_late_init(void)
+{
+       return 0;
+}
+
+int board_late_init(void)
+{
+       meson_set_boot_source();
+
+       return meson_board_late_init();
+}
+
 void reset_cpu(ulong addr)
 {
        psci_system_reset();