xref: /rk3399_rockchip-uboot/common/spl/spl_bootrom.c (revision c1b62ba9ca0e41fdd548cb3bb9af3b3f90d4a393)
1*225d30b7SPhilipp Tomsich /*
2*225d30b7SPhilipp Tomsich  * Copyright (C) 2017 Theobroma Systems Design und Consulting GmH
3*225d30b7SPhilipp Tomsich  *
4*225d30b7SPhilipp Tomsich  * SPDX-License-Identifier:	GPL-2.0+
5*225d30b7SPhilipp Tomsich  */
6*225d30b7SPhilipp Tomsich 
7*225d30b7SPhilipp Tomsich #include <common.h>
8*225d30b7SPhilipp Tomsich #include <spl.h>
9*225d30b7SPhilipp Tomsich 
board_return_to_bootrom(void)10*225d30b7SPhilipp Tomsich __weak void board_return_to_bootrom(void)
11*225d30b7SPhilipp Tomsich {
12*225d30b7SPhilipp Tomsich }
13*225d30b7SPhilipp Tomsich 
spl_return_to_bootrom(struct spl_image_info * spl_image,struct spl_boot_device * bootdev)14*225d30b7SPhilipp Tomsich static int spl_return_to_bootrom(struct spl_image_info *spl_image,
15*225d30b7SPhilipp Tomsich 				 struct spl_boot_device *bootdev)
16*225d30b7SPhilipp Tomsich {
17*225d30b7SPhilipp Tomsich 	/*
18*225d30b7SPhilipp Tomsich 	 * If the board implements a way to return to its ROM (with
19*225d30b7SPhilipp Tomsich 	 * the expectation that the next stage of will be booted by
20*225d30b7SPhilipp Tomsich 	 * the ROM), it will implement board_return_to_bootrom() and
21*225d30b7SPhilipp Tomsich 	 * should not return from it.
22*225d30b7SPhilipp Tomsich 	 */
23*225d30b7SPhilipp Tomsich 	board_return_to_bootrom();
24*225d30b7SPhilipp Tomsich 	return false;
25*225d30b7SPhilipp Tomsich }
26*225d30b7SPhilipp Tomsich 
27*225d30b7SPhilipp Tomsich SPL_LOAD_IMAGE_METHOD("BOOTROM", 0, BOOT_DEVICE_BOOTROM, spl_return_to_bootrom);
28