提交 9d0225b7 编写于 作者: P Pali Rohár 提交者: Stefan Roese

arm: mvebu: Implement return_to_bootrom() via U-Boot's SPL framework

U-Boot's SPL framework already has an API for loading U-Boot via
BootROM.

Implement the function board_return_to_bootrom() for mvebu SPL code.
Signed-off-by: NPali Rohár <pali@kernel.org>
Reviewed-by: NMarek Behún <marek.behun@nic.cz>
Reviewed-by: NStefan Roese <sr@denx.de>
Reviewed-by: NChris Packham <judge.packham@gmail.com>
Tested-by: NChris Packham <judge.packham@gmail.com>
上级 e1cd0d42
......@@ -257,6 +257,7 @@ config MVEBU_SPL_BOOT_DEVICE_SPI
select SPL_SPI_FLASH_SUPPORT
select SPL_SPI_LOAD
select SPL_SPI_SUPPORT
select SPL_BOOTROM_SUPPORT
config MVEBU_SPL_BOOT_DEVICE_MMC
bool "SDIO/MMC card"
......@@ -267,14 +268,17 @@ config MVEBU_SPL_BOOT_DEVICE_MMC
select SPL_GPIO
select SPL_LIBDISK_SUPPORT
select SPL_MMC_SUPPORT
select SPL_BOOTROM_SUPPORT
config MVEBU_SPL_BOOT_DEVICE_SATA
bool "SATA"
select SPL_SATA_SUPPORT
select SPL_LIBDISK_SUPPORT
select SPL_BOOTROM_SUPPORT
config MVEBU_SPL_BOOT_DEVICE_UART
bool "UART"
select SPL_BOOTROM_SUPPORT
endchoice
......
......@@ -79,6 +79,18 @@ u32 spl_boot_device(void)
return get_boot_device();
}
int board_return_to_bootrom(struct spl_image_info *spl_image,
struct spl_boot_device *bootdev)
{
u32 *regs = *(u32 **)CONFIG_SPL_BOOTROM_SAVE;
printf("Returning to BootROM (return address 0x%08x)...\n", regs[13]);
return_to_bootrom();
/* NOTREACHED - return_to_bootrom() does not return */
hang();
}
void board_init_f(ulong dummy)
{
int ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册