On 31.5.2018 11:40, Siva Durga Prasad Paladugu wrote: > This patch modifies the arguments parsing code by parsing > based on requested operation for fpga loadfs and then > parses the most common/basic args for other fpga load > commands. This makes it easy for new command extensions > or additions especially the commands with more args. > > Signed-off-by: Siva Durga Prasad Paladugu <[email protected]> > --- > Changes for v2: > - Correct the argc check as per comment. > --- > cmd/fpga.c | 31 +++++++++++++++++++------------ > 1 file changed, 19 insertions(+), 12 deletions(-) > > diff --git a/cmd/fpga.c b/cmd/fpga.c > index 14ad4e5..3f09d42 100644 > --- a/cmd/fpga.c > +++ b/cmd/fpga.c > @@ -60,15 +60,31 @@ int do_fpga(cmd_tbl_t *cmdtp, int flag, int argc, char > *const argv[]) > if (datastr) > fpga_data = (void *)simple_strtoul(datastr, NULL, 16); > > - switch (argc) { > + if (argc > 9 || argc < 2) { > + debug("%s: Too many or too few args (%d)\n", __func__, argc); > + return CMD_RET_USAGE; > + } > + > + op = (int)fpga_get_op(argv[1]); > + > + switch (op) { > #if defined(CONFIG_CMD_FPGA_LOADFS) > - case 9: > + case FPGA_LOADFS: > + if (argc < 9) > + return CMD_RET_USAGE; > fpga_fsinfo.blocksize = (unsigned int) > - simple_strtoul(argv[5], NULL, 16); > + simple_strtoul(argv[5], NULL, 16); > fpga_fsinfo.interface = argv[6]; > fpga_fsinfo.dev_part = argv[7]; > fpga_fsinfo.filename = argv[8]; > + argc = 5; > + break; > #endif > + default: > + break; > + } > + > + switch (argc) { > case 5: /* fpga <op> <dev> <data> <datasize> */ > data_size = simple_strtoul(argv[4], NULL, 16); > > @@ -117,15 +133,6 @@ int do_fpga(cmd_tbl_t *cmdtp, int flag, int argc, char > *const argv[]) > __func__, (ulong)fpga_data); > dev = FPGA_INVALID_DEVICE; /* reset device num */ > } > - > - case 2: /* fpga <op> */ > - op = (int)fpga_get_op(argv[1]); > - break; > - > - default: > - debug("%s: Too many or too few args (%d)\n", __func__, argc); > - op = FPGA_NONE; /* force usage display */ > - break; > } > > if (dev == FPGA_INVALID_DEVICE) { >
Applied all. Thanks, Michal _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

