xref: /rk3399_rockchip-uboot/include/boot_rkimg.h (revision 1d30bcc50cc75cc50f7bb3d5a25af0ee6a71279d)
106621a79SKever Yang /*
206621a79SKever Yang  * (C) Copyright 2017 Rockchip Electronics Co., Ltd
306621a79SKever Yang  *
406621a79SKever Yang  * SPDX-License-Identifier:     GPL-2.0+
506621a79SKever Yang  */
606621a79SKever Yang 
706621a79SKever Yang #ifndef __BOOT_ROCKCHIP_H_
806621a79SKever Yang #define __BOOT_ROCKCHIP_H_
906621a79SKever Yang 
1006621a79SKever Yang /* This is a copy from Android boot loader */
1106621a79SKever Yang enum _boot_mode {
1206621a79SKever Yang 	BOOT_MODE_NORMAL = 0,
1306621a79SKever Yang 	BOOT_MODE_RECOVERY,
14b7195498SJoseph Chen 	BOOT_MODE_BOOTLOADER,	/* Android: Fastboot mode */
15b7195498SJoseph Chen 	BOOT_MODE_LOADER,	/* Rockchip: Rockusb download mode */
16b7195498SJoseph Chen 	BOOT_MODE_CHARGING,
17b7195498SJoseph Chen 	BOOT_MODE_UMS,
18b7195498SJoseph Chen 	BOOT_MODE_BROM_DOWNLOAD,
190bc19640SJoseph Chen 	BOOT_MODE_PANIC,
200bc19640SJoseph Chen 	BOOT_MODE_WATCHDOG,
21b7195498SJoseph Chen 	BOOT_MODE_UNDEFINE,
2206621a79SKever Yang };
2306621a79SKever Yang 
2406621a79SKever Yang #define PART_MISC			"misc"
2506621a79SKever Yang #define PART_KERNEL			"kernel"
2606621a79SKever Yang #define PART_BOOT			"boot"
2706621a79SKever Yang #define PART_RECOVERY			"recovery"
28f8dbe861SJoseph Chen #define PART_DTBO			"dtbo"
29*1d30bcc5SJoseph Chen #define PART_LOGO			"logo"
3006621a79SKever Yang 
3106621a79SKever Yang #define RK_BLK_SIZE 512
3206621a79SKever Yang 
3306621a79SKever Yang int rockchip_get_boot_mode(void);
3406621a79SKever Yang int boot_rockchip_image(struct blk_desc *dev, disk_partition_t *boot_part);
356e15146eSJoseph Chen int read_rockchip_image(struct blk_desc *dev_desc,
366e15146eSJoseph Chen 			disk_partition_t *part_info, void *dst);
376e15146eSJoseph Chen 
3806621a79SKever Yang struct blk_desc *rockchip_get_bootdev(void);
3906621a79SKever Yang 
40f61a997eSqiujian /*
41f61a997eSqiujian  * reboot into recovery and wipe data
42f61a997eSqiujian  */
43f61a997eSqiujian void board_run_recovery_wipe_data(void);
44f61a997eSqiujian 
45f61a997eSqiujian /*
46f61a997eSqiujian  * reboot into recovery
47f61a997eSqiujian  */
48f61a997eSqiujian void board_run_recovery(void);
49f61a997eSqiujian 
5006621a79SKever Yang #endif
51