xref: /rk3399_rockchip-uboot/cmd/bootrkp.c (revision a0e58cf2cc5f85a68cc478474f369913a3320283)
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