1*a0e58cf2SKever Yang /* 2*a0e58cf2SKever Yang * (C) Copyright 2017 Rockchip Electronics Co., Ltd 3*a0e58cf2SKever Yang * 4*a0e58cf2SKever Yang * SPDX-License-Identifier: GPL-2.0+ 5*a0e58cf2SKever Yang */ 6*a0e58cf2SKever Yang 7*a0e58cf2SKever Yang #include <common.h> 8*a0e58cf2SKever Yang #include <android_bootloader.h> 9*a0e58cf2SKever Yang #include <boot_rkimg.h> 10*a0e58cf2SKever Yang 11*a0e58cf2SKever Yang static int do_boot_rockchip(cmd_tbl_t *cmdtp, int flag, int argc, 12*a0e58cf2SKever Yang char * const argv[]) 13*a0e58cf2SKever Yang { 14*a0e58cf2SKever Yang disk_partition_t part_info; 15*a0e58cf2SKever Yang struct blk_desc *dev_desc; 16*a0e58cf2SKever Yang int mode = 0; 17*a0e58cf2SKever Yang char *boot_partname = PART_BOOT; 18*a0e58cf2SKever Yang int ret = 0; 19*a0e58cf2SKever Yang 20*a0e58cf2SKever Yang dev_desc = rockchip_get_bootdev(); 21*a0e58cf2SKever Yang mode = rockchip_get_boot_mode(); 22*a0e58cf2SKever Yang if (mode == BOOT_MODE_RECOVERY) 23*a0e58cf2SKever Yang boot_partname = PART_RECOVERY; 24*a0e58cf2SKever Yang ret = part_get_info_by_name(dev_desc, boot_partname, &part_info); 25*a0e58cf2SKever Yang 26*a0e58cf2SKever Yang if(boot_rockchip_image(dev_desc, &part_info)) 27*a0e58cf2SKever Yang ret = CMD_RET_FAILURE; 28*a0e58cf2SKever Yang 29*a0e58cf2SKever Yang return ret; 30*a0e58cf2SKever Yang } 31*a0e58cf2SKever Yang 32*a0e58cf2SKever Yang U_BOOT_CMD( 33*a0e58cf2SKever Yang boot_rockchip, CONFIG_SYS_MAXARGS, 1, do_boot_rockchip, 34*a0e58cf2SKever Yang "boot Linux Image image from rockchip partition storage", 35*a0e58cf2SKever Yang "" 36*a0e58cf2SKever Yang ); 37