/* * Replaces the default shell in xload configuration */ static __noreturn int omap_xload(void) { void *func; if (!barebox_part) barebox_part = &default_part; switch (bootsource_get()) { case BOOTSOURCE_MMC: printf("booting from MMC\n"); func = omap_xload_boot_mmc(); break; case BOOTSOURCE_USB: if (IS_ENABLED(CONFIG_OMAP3_USBBOOT) && cpu_is_omap3()) { printf("booting from USB\n"); func = omap3_xload_boot_usb(); } else if (IS_ENABLED(CONFIG_FS_OMAP4_USBBOOT)) { printf("booting from USB\n"); func = omap4_xload_boot_usb(); } else { printf("booting from USB not enabled\n"); func = NULL; } break; case BOOTSOURCE_NAND: printf("booting from NAND\n"); func = omap_xload_boot_nand(barebox_part); break; case BOOTSOURCE_SPI: printf("booting from SPI\n"); func = omap_xload_boot_spi(barebox_part); break; case BOOTSOURCE_SERIAL: if (IS_ENABLED(CONFIG_OMAP_SERIALBOOT)) { printf("booting from serial\n"); func = omap_serial_boot(); break; } case BOOTSOURCE_NET: if (IS_ENABLED(CONFIG_AM33XX_NET_BOOT)) { printf("booting from NET\n"); func = am33xx_net_boot(); break; } else { printf("booting from network not enabled\n"); } default: printf("unknown boot source. Fall back to nand\n"); func = omap_xload_boot_nand(barebox_part); break; } if (!func) { printf("booting failed\n"); while (1); } omap_start_barebox(func); }
/* * Replaces the default shell in xload configuration */ static __noreturn int omap_xload(void) { void *func; if (!barebox_part) barebox_part = &default_part; switch (bootsource_get()) { case BOOTSOURCE_MMC: printf("booting from MMC\n"); func = omap_xload_boot_mmc(); break; case BOOTSOURCE_USB: if (IS_ENABLED(CONFIG_FS_OMAP4_USBBOOT)) { printf("booting from USB\n"); func = omap4_xload_boot_usb(); break; } else { printf("booting from USB not enabled\n"); } case BOOTSOURCE_NAND: printf("booting from NAND\n"); func = omap_xload_boot_nand(barebox_part->nand_offset, barebox_part->nand_size); break; case BOOTSOURCE_SPI: printf("booting from SPI\n"); func = omap_xload_boot_spi(barebox_part->nor_offset, barebox_part->nor_size); break; default: printf("unknown boot source. Fall back to nand\n"); func = omap_xload_boot_nand(barebox_part->nand_offset, barebox_part->nand_size); break; } if (!func) { printf("booting failed\n"); while (1); } omap_start_barebox(func); }