diff options
author | Vicente <vicencb@gmail.com> | 2012-10-09 00:55:23 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-11-16 15:32:31 +0100 |
commit | 1dc9cbade4ed9b3f76060c5f72fe39f33c161758 (patch) | |
tree | 4c4f1be6a40edf9b1fcf5aaacfdd3884555864b4 /arch | |
parent | 64254636af6fb536b5a3cf4ff04f7de751284abc (diff) | |
download | barebox-1dc9cbade4ed9b3f76060c5f72fe39f33c161758.tar.gz barebox-1dc9cbade4ed9b3f76060c5f72fe39f33c161758.tar.xz |
omap4: add support for loading second stage from usb
Signed-off-by: Vicente <vicencb@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap/xload.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/mach-omap/xload.c b/arch/arm/mach-omap/xload.c index 9fa8221ec9..240d3ff71f 100644 --- a/arch/arm/mach-omap/xload.c +++ b/arch/arm/mach-omap/xload.c @@ -139,6 +139,24 @@ static void *omap_xload_boot_spi(int offset) return to; } +static void *omap4_xload_boot_usb(void){ + int ret; + void *buf; + int len; + + ret = mount("omap4_usbboot", "omap4_usbbootfs", "/"); + if (ret) { + printf("Unable to mount omap4_usbbootfs (%d)\n", ret); + return NULL; + } + + buf = read_file("/barebox.bin", &len); + if (!buf) + printf("could not read barebox.bin from omap4_usbbootfs\n"); + + return buf; +} + enum omap_boot_src omap_bootsrc(void) { #if defined(CONFIG_ARCH_OMAP3) @@ -161,6 +179,14 @@ int run_shell(void) printf("booting from MMC1\n"); func = omap_xload_boot_mmc(); break; + case OMAP_BOOTSRC_USB1: + if (IS_ENABLED(CONFIG_FS_OMAP4_USBBOOT)) { + printf("booting from USB1\n"); + func = omap4_xload_boot_usb(); + break; + } else { + printf("booting from usb1 not enabled\n"); + } case OMAP_BOOTSRC_UNKNOWN: printf("unknown boot source. Fall back to nand\n"); case OMAP_BOOTSRC_NAND: |