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