summaryrefslogtreecommitdiff
path: root/cmd/fpga.c
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2018-06-04 14:55:20 +0200
committerMichal Simek <michal.simek@xilinx.com>2018-09-11 10:58:42 +0200
commit9657d97cf5f0284dbab36915654fb5d082332281 (patch)
treefa498ddede3058e7f5ac1b27dbf878235b59c31b /cmd/fpga.c
parent5cadab60fbd917648335d5d672eb3b1752d5b225 (diff)
cmd: fpga: Create new do_fpga_wrapper for using u-boot subcommands
Create command wrapper to clean fpga subcommands. The function logic is taken from cmd_dm.c Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'cmd/fpga.c')
-rw-r--r--cmd/fpga.c42
1 files changed, 40 insertions, 2 deletions
diff --git a/cmd/fpga.c b/cmd/fpga.c
index 0e5f4117c0..ac12af2fa0 100644
--- a/cmd/fpga.c
+++ b/cmd/fpga.c
@@ -331,10 +331,48 @@ int do_fpga(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
return rc;
}
+static cmd_tbl_t fpga_commands[] = {
+};
+
+static int do_fpga_wrapper(cmd_tbl_t *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ cmd_tbl_t *fpga_cmd;
+ int ret;
+
+ if (argc < 2)
+ return CMD_RET_USAGE;
+
+ fpga_cmd = find_cmd_tbl(argv[1], fpga_commands,
+ ARRAY_SIZE(fpga_commands));
+
+ /* This should be removed when all functions are converted */
+ if (!fpga_cmd)
+ return do_fpga(cmdtp, flag, argc, argv);
+
+ /* FIXME This can't be reached till all functions are converted */
+ if (!fpga_cmd) {
+ debug("fpga: non existing command\n");
+ return CMD_RET_USAGE;
+ }
+
+ argc -= 2;
+ argv += 2;
+
+ if (argc > fpga_cmd->maxargs) {
+ debug("fpga: more parameters passed\n");
+ return CMD_RET_USAGE;
+ }
+
+ ret = fpga_cmd->cmd(fpga_cmd, flag, argc, argv);
+
+ return cmd_process_error(fpga_cmd, ret);
+}
+
#if defined(CONFIG_CMD_FPGA_LOADFS) || defined(CONFIG_CMD_FPGA_LOAD_SECURE)
-U_BOOT_CMD(fpga, 9, 1, do_fpga,
+U_BOOT_CMD(fpga, 9, 1, do_fpga_wrapper,
#else
-U_BOOT_CMD(fpga, 6, 1, do_fpga,
+U_BOOT_CMD(fpga, 6, 1, do_fpga_wrapper,
#endif
"loadable FPGA image support",
"[operation type] [device number] [image address] [image size]\n"