xref: /rk3399_rockchip-uboot/test/rockchip/test-download.c (revision 443feaabc131897fe35c274a3f433719de94016d)
199d14b01SJoseph Chen /*
299d14b01SJoseph Chen  * (C) Copyright 2019 Rockchip Electronics Co., Ltd
399d14b01SJoseph Chen  *
499d14b01SJoseph Chen  * SPDX-License-Identifier:     GPL-2.0+
599d14b01SJoseph Chen  */
699d14b01SJoseph Chen 
799d14b01SJoseph Chen #include "test-rockchip.h"
899d14b01SJoseph Chen 
999d14b01SJoseph Chen #ifdef CONFIG_CMD_GO
do_test_brom(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])1099d14b01SJoseph Chen static int do_test_brom(cmd_tbl_t *cmdtp, int flag,
1199d14b01SJoseph Chen 			int argc, char *const argv[])
1299d14b01SJoseph Chen {
1399d14b01SJoseph Chen 	return run_command("rbrom", 0);
1499d14b01SJoseph Chen }
1599d14b01SJoseph Chen #endif
1699d14b01SJoseph Chen 
1799d14b01SJoseph Chen #ifdef CONFIG_CMD_FASTBOOT
do_test_fastboot(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])1899d14b01SJoseph Chen static int do_test_fastboot(cmd_tbl_t *cmdtp, int flag,
1999d14b01SJoseph Chen 			    int argc, char *const argv[])
2099d14b01SJoseph Chen {
2199d14b01SJoseph Chen 	return run_command("fastboot usb 0", 0);
2299d14b01SJoseph Chen }
2399d14b01SJoseph Chen #endif
2499d14b01SJoseph Chen 
2599d14b01SJoseph Chen #ifdef CONFIG_CMD_ROCKUSB
do_test_rockusb(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])2699d14b01SJoseph Chen static int do_test_rockusb(cmd_tbl_t *cmdtp, int flag,
2799d14b01SJoseph Chen 			   int argc, char *const argv[])
2899d14b01SJoseph Chen {
2999d14b01SJoseph Chen 	return run_command("rockusb 0 ${devtype} ${devnum}", 0);
3099d14b01SJoseph Chen }
3199d14b01SJoseph Chen #endif
3299d14b01SJoseph Chen 
3399d14b01SJoseph Chen #ifdef CONFIG_CMD_NET
do_test_tftp(cmd_tbl_t * cmdtp,int flag,int argc,char * const argv[])3499d14b01SJoseph Chen static int do_test_tftp(cmd_tbl_t *cmdtp, int flag,
3599d14b01SJoseph Chen 			int argc, char *const argv[])
3699d14b01SJoseph Chen {
3799d14b01SJoseph Chen 	char load_cmd[64];
3899d14b01SJoseph Chen 	char serverip_cmd[64];
3999d14b01SJoseph Chen 	int ret = 0;
4099d14b01SJoseph Chen 
4199d14b01SJoseph Chen 	if (argc != 3)
4299d14b01SJoseph Chen 		return CMD_RET_USAGE;
4399d14b01SJoseph Chen 
4499d14b01SJoseph Chen 	snprintf(serverip_cmd, 64, "env set serverip %s", argv[1]);
4599d14b01SJoseph Chen 	snprintf(load_cmd, 64, "tftp %s", argv[2]);
4699d14b01SJoseph Chen 	ret |= run_command(serverip_cmd, 0);
4799d14b01SJoseph Chen 	ret |= run_command("dhcp", 0);
4899d14b01SJoseph Chen 	ret |= run_command(load_cmd, 0);
4999d14b01SJoseph Chen 
50*443feaabSJoseph Chen 	if (ret)
51*443feaabSJoseph Chen 		ut_err("tftp: failed to download file\n");
52*443feaabSJoseph Chen 
5399d14b01SJoseph Chen 	return ret;
5499d14b01SJoseph Chen }
5599d14b01SJoseph Chen #endif
5699d14b01SJoseph Chen 
5799d14b01SJoseph Chen static cmd_tbl_t sub_cmd[] = {
5899d14b01SJoseph Chen #ifdef CONFIG_CMD_GO
5999d14b01SJoseph Chen 	UNIT_CMD_ATTR_DEFINE(brom, 0, CMD_FLG_NORETURN),
6099d14b01SJoseph Chen #endif
6199d14b01SJoseph Chen #ifdef CONFIG_CMD_FASTBOOT
6299d14b01SJoseph Chen 	UNIT_CMD_ATTR_DEFINE(fastboot, 0, CMD_FLG_NORETURN),
6399d14b01SJoseph Chen #endif
6499d14b01SJoseph Chen #ifdef CONFIG_CMD_ROCKUSB
6599d14b01SJoseph Chen 	UNIT_CMD_ATTR_DEFINE(rockusb, 0, CMD_FLG_NORETURN),
6699d14b01SJoseph Chen #endif
6799d14b01SJoseph Chen #ifdef CONFIG_CMD_NET
6899d14b01SJoseph Chen 	UNIT_CMD_ATTR_DEFINE(tftp, 0, CMD_FLG_NORETURN),
6999d14b01SJoseph Chen #endif
7099d14b01SJoseph Chen };
7199d14b01SJoseph Chen 
7299d14b01SJoseph Chen static const char sub_cmd_help[] =
7399d14b01SJoseph Chen #ifdef CONFIG_CMD_GO
7499d14b01SJoseph Chen "    [n] rktest brom                        - test bootrom, enter download mode\n"
7599d14b01SJoseph Chen #endif
7699d14b01SJoseph Chen #ifdef CONFIG_CMD_FASTBOOT
7799d14b01SJoseph Chen "    [n] rktest fastboot                    - test fastboot, enter download mode\n"
7899d14b01SJoseph Chen #endif
7999d14b01SJoseph Chen #ifdef CONFIG_CMD_ROCKUSB
8099d14b01SJoseph Chen "    [n] rktest rockusb                     - test rockusb, enter download mode\n"
8199d14b01SJoseph Chen #endif
8299d14b01SJoseph Chen #ifdef CONFIG_CMD_NET
8399d14b01SJoseph Chen "    [.] rktest tftp [serverip] [file]      - test tftp download\n"
8499d14b01SJoseph Chen #endif
8599d14b01SJoseph Chen ;
8699d14b01SJoseph Chen 
8799d14b01SJoseph Chen const struct cmd_group cmd_grp_download = {
8899d14b01SJoseph Chen 	.id	= TEST_ID_DOWNLOAD,
8999d14b01SJoseph Chen 	.help	= sub_cmd_help,
9099d14b01SJoseph Chen 	.cmd	= sub_cmd,
9199d14b01SJoseph Chen 	.cmd_n	= ARRAY_SIZE(sub_cmd),
9299d14b01SJoseph Chen };
93