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>
This commit is contained in:
Simon Glass 2015-02-07 10:47:29 -07:00 committed by Hans de Goede
parent e11c6c279d
commit c01c71bc16
2 changed files with 9 additions and 0 deletions

View File

@ -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[];

View File

@ -228,6 +228,11 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
case BOOT_DEVICE_SATA:
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)