diff options
author | Simon Glass <sjg@chromium.org> | 2015-02-07 10:47:29 -0700 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2015-02-16 20:15:06 +0100 |
commit | c01c71bc16d2836c3ff81af54529dab0686bca00 (patch) | |
tree | b00fe26254f131d3b38769e8df271048cbeaa255 | |
parent | e11c6c279d823dc0d2f470c5c2e3c0a9854a640f (diff) | |
download | u-boot-imx-c01c71bc16d2836c3ff81af54529dab0686bca00.zip u-boot-imx-c01c71bc16d2836c3ff81af54529dab0686bca00.tar.gz u-boot-imx-c01c71bc16d2836c3ff81af54529dab0686bca00.tar.bz2 |
arm: spl: Provide for a board-specific loader
Some boards have a special way of loading U-Boot that does not fit with
the existing SPL code. For example sunxi uses an 'FEL' mode where U-Boot
is loaded over USB. Add a CONFIG option and boot mode for this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r-- | arch/arm/include/asm/spl.h | 4 | ||||
-rw-r--r-- | common/spl/spl.c | 5 |
2 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/include/asm/spl.h b/arch/arm/include/asm/spl.h index 8acd7cd..17b6f54 100644 --- a/arch/arm/include/asm/spl.h +++ b/arch/arm/include/asm/spl.h @@ -26,10 +26,14 @@ enum { BOOT_DEVICE_SPI, BOOT_DEVICE_SATA, BOOT_DEVICE_I2C, + BOOT_DEVICE_BOARD, BOOT_DEVICE_NONE }; #endif +/* Board-specific load method */ +void spl_board_load_image(void); + /* Linker symbols. */ extern char __bss_start[], __bss_end[]; diff --git a/common/spl/spl.c b/common/spl/spl.c index daaeb50..ded0f30 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -229,6 +229,11 @@ void board_init_r(gd_t *dummy1, ulong dummy2) spl_sata_load_image(); break; #endif +#ifdef CONFIG_SPL_BOARD_LOAD_IMAGE + case BOOT_DEVICE_BOARD: + spl_board_load_image(); + break; +#endif default: #if defined(CONFIG_SPL_SERIAL_SUPPORT) && defined(CONFIG_SPL_LIBCOMMON_SUPPORT) puts("SPL: Unsupported Boot Device!\n"); |