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