]>
Commit | Line | Data |
---|---|---|
aade077e HS |
1 | /* |
2 | * (C) Copyright 2017 Heiko Stuebner <heiko@sntech.de> | |
ecfd7189 | 3 | * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH |
aade077e HS |
4 | * |
5 | * SPDX-License-Identifier: GPL-2.0 | |
6 | */ | |
7 | ||
8 | #ifndef _ASM_ARCH_BOOTROM_H | |
9 | #define _ASM_ARCH_BOOTROM_H | |
10 | ||
11 | /* | |
12 | * Saved Stack pointer address. | |
13 | * Access might be needed in some special cases. | |
14 | */ | |
15 | extern u32 SAVE_SP_ADDR; | |
16 | ||
e1bc64ee | 17 | /** |
ecfd7189 PT |
18 | * back_to_bootrom() - return to bootrom (for TPL/SPL), passing a |
19 | * result code | |
20 | * | |
21 | * Transfer control back to the Rockchip BROM, restoring necessary | |
22 | * register context and passing a command/result code to the BROM | |
23 | * to instruct its next actions (e.g. continue boot sequence, enter | |
24 | * download mode, ...). | |
25 | * | |
26 | * This function does not return. | |
aade077e | 27 | */ |
ecfd7189 PT |
28 | enum rockchip_bootrom_cmd { |
29 | /* | |
30 | * These can not start at 0, as 0 has a special meaning | |
31 | * for setjmp(). | |
32 | */ | |
e1bc64ee | 33 | |
ecfd7189 PT |
34 | BROM_BOOT_NEXTSTAGE = 1, /* continue boot-sequence */ |
35 | BROM_BOOT_ENTER_DNL, /* have BROM enter download-mode */ | |
36 | }; | |
37 | ||
38 | void back_to_bootrom(void); | |
aade077e | 39 | |
3b4f8773 PT |
40 | /** |
41 | * Boot-device identifiers as used by the BROM | |
42 | */ | |
43 | enum { | |
44 | BROM_BOOTSOURCE_NAND = 1, | |
45 | BROM_BOOTSOURCE_EMMC = 2, | |
46 | BROM_BOOTSOURCE_SPINOR = 3, | |
47 | BROM_BOOTSOURCE_SPINAND = 4, | |
48 | BROM_BOOTSOURCE_SD = 5, | |
49 | BROM_BOOTSOURCE_USB = 10, | |
50 | BROM_LAST_BOOTSOURCE = BROM_BOOTSOURCE_USB | |
51 | }; | |
52 | ||
53 | /** | |
54 | * Locations of the boot-device identifier in SRAM | |
55 | */ | |
56 | #define RK3399_BROM_BOOTSOURCE_ID_ADDR 0xff8c0010 | |
57 | ||
aade077e | 58 | #endif |