xref: /rk3399_rockchip-uboot/cmd/download.c (revision b6ad8e133c9c2ad3f7413ae3ed43ca112df25340)
1fbf99d91SJoseph Chen /*
2fbf99d91SJoseph Chen  * (C) Copyright 2019 Rockchip Electronics Co., Ltd
3fbf99d91SJoseph Chen  *
4fbf99d91SJoseph Chen  * SPDX-License-Identifier:     GPL-2.0+
5fbf99d91SJoseph Chen  */
6fbf99d91SJoseph Chen 
7fbf99d91SJoseph Chen #include <common.h>
8fbf99d91SJoseph Chen #include <command.h>
974375e35SJoseph Chen #include <console.h>
10fbf99d91SJoseph Chen 
do_board_download(void)11*b6ad8e13SJoseph Chen __weak void do_board_download(void)
12*b6ad8e13SJoseph Chen {
13*b6ad8e13SJoseph Chen }
14*b6ad8e13SJoseph Chen 
do_download(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])15fbf99d91SJoseph Chen static int do_download(cmd_tbl_t *cmdtp, int flag,
16fbf99d91SJoseph Chen 		       int argc, char * const argv[])
17fbf99d91SJoseph Chen {
1874375e35SJoseph Chen 	disable_ctrlc(1);
19*b6ad8e13SJoseph Chen 
20*b6ad8e13SJoseph Chen 	/* Allow board specific download, maybe noreturn */
21*b6ad8e13SJoseph Chen 	do_board_download();
22*b6ad8e13SJoseph Chen 
23*b6ad8e13SJoseph Chen 	/* Generic download */
24fbf99d91SJoseph Chen #ifdef CONFIG_CMD_ROCKUSB
25082e154bSJoseph Chen 	run_command("rockusb 0 $devtype $devnum", 0);
26fbf99d91SJoseph Chen #endif
27fbf99d91SJoseph Chen 	printf("Enter rockusb failed, fallback to bootrom...\n");
28fbf99d91SJoseph Chen 	flushc();
29fbf99d91SJoseph Chen 	run_command("rbrom", 0);
30aedf647fSJoseph Chen 
31fbf99d91SJoseph Chen 	return 0;
32fbf99d91SJoseph Chen }
33fbf99d91SJoseph Chen 
34b704ab33SJoseph Chen U_BOOT_CMD_ALWAYS(
35fbf99d91SJoseph Chen 	download, 1, 1, do_download,
36fbf99d91SJoseph Chen 	"enter rockusb/bootrom download mode", ""
37fbf99d91SJoseph Chen );
38