1aade077eSHeiko Stübner /* 2aade077eSHeiko Stübner * (C) Copyright 2017 Heiko Stuebner <heiko@sntech.de> 3*3513fb1eSPhilipp Tomsich * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH 4aade077eSHeiko Stübner * 5aade077eSHeiko Stübner * SPDX-License-Identifier: GPL-2.0 6aade077eSHeiko Stübner */ 7aade077eSHeiko Stübner 8aade077eSHeiko Stübner #ifndef _ASM_ARCH_BOOTROM_H 9aade077eSHeiko Stübner #define _ASM_ARCH_BOOTROM_H 10aade077eSHeiko Stübner 11aade077eSHeiko Stübner /* 12aade077eSHeiko Stübner * Saved Stack pointer address. 13aade077eSHeiko Stübner * Access might be needed in some special cases. 14aade077eSHeiko Stübner */ 15aade077eSHeiko Stübner extern u32 SAVE_SP_ADDR; 16aade077eSHeiko Stübner 17e1bc64eeSSimon Glass /** 18*3513fb1eSPhilipp Tomsich * back_to_bootrom() - return to bootrom (for TPL/SPL), passing a 19*3513fb1eSPhilipp Tomsich * result code 20*3513fb1eSPhilipp Tomsich * 21*3513fb1eSPhilipp Tomsich * Transfer control back to the Rockchip BROM, restoring necessary 22*3513fb1eSPhilipp Tomsich * register context and passing a command/result code to the BROM 23*3513fb1eSPhilipp Tomsich * to instruct its next actions (e.g. continue boot sequence, enter 24*3513fb1eSPhilipp Tomsich * download mode, ...). 25*3513fb1eSPhilipp Tomsich * 26*3513fb1eSPhilipp Tomsich * This function does not return. 27aade077eSHeiko Stübner */ 28*3513fb1eSPhilipp Tomsich enum rockchip_bootrom_cmd { 29*3513fb1eSPhilipp Tomsich /* 30*3513fb1eSPhilipp Tomsich * These can not start at 0, as 0 has a special meaning 31*3513fb1eSPhilipp Tomsich * for setjmp(). 32*3513fb1eSPhilipp Tomsich */ 33*3513fb1eSPhilipp Tomsich 34*3513fb1eSPhilipp Tomsich BROM_BOOT_NEXTSTAGE = 1, /* continue boot-sequence */ 35*3513fb1eSPhilipp Tomsich BROM_BOOT_ENTER_DNL, /* have BROM enter download-mode */ 36*3513fb1eSPhilipp Tomsich }; 37*3513fb1eSPhilipp Tomsich 38e1bc64eeSSimon Glass void back_to_bootrom(void); 39aade077eSHeiko Stübner #endif 40