xref: /OK3568_Linux_fs/u-boot/test/rockchip/test-download.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * (C) Copyright 2019 Rockchip Electronics Co., Ltd
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6 
7 #include "test-rockchip.h"
8 
9 #ifdef CONFIG_CMD_GO
do_test_brom(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])10 static int do_test_brom(cmd_tbl_t *cmdtp, int flag,
11 			int argc, char *const argv[])
12 {
13 	return run_command("rbrom", 0);
14 }
15 #endif
16 
17 #ifdef CONFIG_CMD_FASTBOOT
do_test_fastboot(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])18 static int do_test_fastboot(cmd_tbl_t *cmdtp, int flag,
19 			    int argc, char *const argv[])
20 {
21 	return run_command("fastboot usb 0", 0);
22 }
23 #endif
24 
25 #ifdef CONFIG_CMD_ROCKUSB
do_test_rockusb(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])26 static int do_test_rockusb(cmd_tbl_t *cmdtp, int flag,
27 			   int argc, char *const argv[])
28 {
29 	return run_command("rockusb 0 ${devtype} ${devnum}", 0);
30 }
31 #endif
32 
33 #ifdef CONFIG_CMD_NET
do_test_tftp(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])34 static int do_test_tftp(cmd_tbl_t *cmdtp, int flag,
35 			int argc, char *const argv[])
36 {
37 	char load_cmd[64];
38 	char serverip_cmd[64];
39 	int ret = 0;
40 
41 	if (argc != 3)
42 		return CMD_RET_USAGE;
43 
44 	snprintf(serverip_cmd, 64, "env set serverip %s", argv[1]);
45 	snprintf(load_cmd, 64, "tftp %s", argv[2]);
46 	ret |= run_command(serverip_cmd, 0);
47 	ret |= run_command("dhcp", 0);
48 	ret |= run_command(load_cmd, 0);
49 
50 	if (ret)
51 		ut_err("tftp: failed to download file\n");
52 
53 	return ret;
54 }
55 #endif
56 
57 static cmd_tbl_t sub_cmd[] = {
58 #ifdef CONFIG_CMD_GO
59 	UNIT_CMD_ATTR_DEFINE(brom, 0, CMD_FLG_NORETURN),
60 #endif
61 #ifdef CONFIG_CMD_FASTBOOT
62 	UNIT_CMD_ATTR_DEFINE(fastboot, 0, CMD_FLG_NORETURN),
63 #endif
64 #ifdef CONFIG_CMD_ROCKUSB
65 	UNIT_CMD_ATTR_DEFINE(rockusb, 0, CMD_FLG_NORETURN),
66 #endif
67 #ifdef CONFIG_CMD_NET
68 	UNIT_CMD_ATTR_DEFINE(tftp, 0, CMD_FLG_NORETURN),
69 #endif
70 };
71 
72 static const char sub_cmd_help[] =
73 #ifdef CONFIG_CMD_GO
74 "    [n] rktest brom                        - test bootrom, enter download mode\n"
75 #endif
76 #ifdef CONFIG_CMD_FASTBOOT
77 "    [n] rktest fastboot                    - test fastboot, enter download mode\n"
78 #endif
79 #ifdef CONFIG_CMD_ROCKUSB
80 "    [n] rktest rockusb                     - test rockusb, enter download mode\n"
81 #endif
82 #ifdef CONFIG_CMD_NET
83 "    [.] rktest tftp [serverip] [file]      - test tftp download\n"
84 #endif
85 ;
86 
87 const struct cmd_group cmd_grp_download = {
88 	.id	= TEST_ID_DOWNLOAD,
89 	.help	= sub_cmd_help,
90 	.cmd	= sub_cmd,
91 	.cmd_n	= ARRAY_SIZE(sub_cmd),
92 };
93