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, 19b7195498SJoseph Chen BOOT_MODE_UNDEFINE, 2006621a79SKever Yang }; 2106621a79SKever Yang 2206621a79SKever Yang #define PART_MISC "misc" 2306621a79SKever Yang #define PART_KERNEL "kernel" 2406621a79SKever Yang #define PART_BOOT "boot" 2506621a79SKever Yang #define PART_RECOVERY "recovery" 26f8dbe861SJoseph Chen #define PART_DTBO "dtbo" 2706621a79SKever Yang 2806621a79SKever Yang #define RK_BLK_SIZE 512 2906621a79SKever Yang 3006621a79SKever Yang int rockchip_get_boot_mode(void); 3106621a79SKever Yang int boot_rockchip_image(struct blk_desc *dev, disk_partition_t *boot_part); 32*6e15146eSJoseph Chen int read_rockchip_image(struct blk_desc *dev_desc, 33*6e15146eSJoseph Chen disk_partition_t *part_info, void *dst); 34*6e15146eSJoseph Chen 3506621a79SKever Yang struct blk_desc *rockchip_get_bootdev(void); 3606621a79SKever Yang 37f61a997eSqiujian /* 38f61a997eSqiujian * reboot into recovery and wipe data 39f61a997eSqiujian */ 40f61a997eSqiujian void board_run_recovery_wipe_data(void); 41f61a997eSqiujian 42f61a997eSqiujian /* 43f61a997eSqiujian * reboot into recovery 44f61a997eSqiujian */ 45f61a997eSqiujian void board_run_recovery(void); 46f61a997eSqiujian 4706621a79SKever Yang #endif 48