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