]> git.ipfire.org Git - people/ms/u-boot.git/blame - arch/arm/include/asm/arch-rockchip/bootrom.h
rockchip: back-to-bootrom: replace assembly-implementation with C-code
[people/ms/u-boot.git] / arch / arm / include / asm / arch-rockchip / bootrom.h
CommitLineData
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 */
15extern 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
28enum 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
38void back_to_bootrom(void);
aade077e 39
3b4f8773
PT
40/**
41 * Boot-device identifiers as used by the BROM
42 */
43enum {
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