
Hi Nikita,
On 28 October 2015 at 03:23, Nikita Kiryanov nikita@compulab.co.il wrote:
Now that we support alternative boot devices, it can sometimes be unclear which boot devices was actually used. Provide a function to announce which boot devices are attempted during boot.
Signed-off-by: Nikita Kiryanov nikita@compulab.co.il Cc: Igor Grinberg grinberg@compulab.co.il Cc: Tom Rini trini@konsulko.com Cc: Simon Glass sjg@chromium.org
Changes in V2: - No changes.
common/spl/spl.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+)
diff --git a/common/spl/spl.c b/common/spl/spl.c index 7913c52..ee30290 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -178,6 +178,91 @@ int spl_init(void) return 0; }
+#ifdef CONFIG_SPL_BOARD_LOAD_IMAGE +__weak void spl_board_announce_boot_device(void) { } +#endif
+#ifdef CONFIG_SPL_LIBCOMMON_SUPPORT +static void announce_boot_device(u32 boot_device) +{
puts("Trying to boot from ");
switch (boot_device) {
+#ifdef CONFIG_SPL_RAM_DEVICE
case BOOT_DEVICE_RAM:
puts("RAM");
break;
+#endif +#ifdef CONFIG_SPL_MMC_SUPPORT
case BOOT_DEVICE_MMC1:
case BOOT_DEVICE_MMC2:
case BOOT_DEVICE_MMC2_2:
puts("MMC");
break;
+#endif
Perhaps we need a table of function pointers with the name for each? This code seems very repetitive.
+#ifdef CONFIG_SPL_NAND_SUPPORT
case BOOT_DEVICE_NAND:
puts("NAND");
break;
+#endif +#ifdef CONFIG_SPL_ONENAND_SUPPORT
case BOOT_DEVICE_ONENAND:
puts("OneNAND");
break;
+#endif +#ifdef CONFIG_SPL_NOR_SUPPORT
case BOOT_DEVICE_NOR:
puts("NOR");
break;
+#endif +#ifdef CONFIG_SPL_YMODEM_SUPPORT
case BOOT_DEVICE_UART:
puts("UART");
break;
+#endif +#ifdef CONFIG_SPL_SPI_SUPPORT
case BOOT_DEVICE_SPI:
puts("SPI");
break;
+#endif +#ifdef CONFIG_SPL_ETH_SUPPORT
case BOOT_DEVICE_CPGMAC:
+#ifdef CONFIG_SPL_ETH_DEVICE
puts("eth device");
+#else
puts("net");
+#endif
break;
+#endif +#ifdef CONFIG_SPL_USBETH_SUPPORT
case BOOT_DEVICE_USBETH:
puts("USB eth");
break;
+#endif +#ifdef CONFIG_SPL_USB_SUPPORT
case BOOT_DEVICE_USB:
puts("USB");
break;
+#endif +#ifdef CONFIG_SPL_SATA_SUPPORT
case BOOT_DEVICE_SATA:
puts("SATA");
break;
+#endif +#ifdef CONFIG_SPL_BOARD_LOAD_IMAGE
case BOOT_DEVICE_BOARD:
spl_board_announce_boot_device();
break;
+#endif
default:
printf("%d (unknown boot device)", boot_device);
}
puts("\n");
+} +#else +static inline void announce_boot_device(u32 boot_device) { } +#endif
#ifndef BOOT_DEVICE_NONE #define BOOT_DEVICE_NONE 0xdeadbeef #endif @@ -292,6 +377,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2) board_boot_order(spl_boot_list); for (i = 0; i < ARRAY_SIZE(spl_boot_list) && spl_boot_list[i] != BOOT_DEVICE_NONE; i++) {
announce_boot_device(spl_boot_list[i]); if (!spl_load_image(spl_boot_list[i])) break; }
-- 1.9.1
Regards, Simon