diff options
| -rw-r--r-- | common/cmd_fpga.c | 50 | 
1 files changed, 39 insertions, 11 deletions
diff --git a/common/cmd_fpga.c b/common/cmd_fpga.c index e50c9de87..0ad310f53 100644 --- a/common/cmd_fpga.c +++ b/common/cmd_fpga.c @@ -163,6 +163,7 @@ int do_fpga (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])  	char *devstr = getenv ("fpga");  	char *datastr = getenv ("fpgadata");  	int rc = FPGA_FAIL; +	int wrong_parms = 0;  #if defined (CONFIG_FIT)  	const char *fit_uname = NULL;  	ulong fit_addr; @@ -229,6 +230,32 @@ int do_fpga (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])  		break;  	} +	if (dev == FPGA_INVALID_DEVICE) { +		puts("FPGA device not specified\n"); +		op = FPGA_NONE; +	} + +	switch (op) { +	case FPGA_NONE: +	case FPGA_INFO: +		break; +	case FPGA_LOAD: +	case FPGA_LOADB: +	case FPGA_DUMP: +		if (!fpga_data || !data_size) +			wrong_parms = 1; +		break; +	case FPGA_LOADMK: +		if (!fpga_data) +			wrong_parms = 1; +		break; +	} + +	if (wrong_parms) { +		puts("Wrong parameters for FPGA request\n"); +		op = FPGA_NONE; +	} +  	switch (op) {  	case FPGA_NONE:  		return cmd_usage(cmdtp); @@ -342,17 +369,18 @@ static int fpga_get_op (char *opstr)  }  U_BOOT_CMD (fpga, 6, 1, do_fpga, -	    "loadable FPGA image support", -	    "fpga [operation type] [device number] [image address] [image size]\n" -	    "fpga operations:\n" -	    "\tinfo\tlist known device information\n" -	    "\tload\tLoad device from memory buffer\n" -	    "\tloadb\tLoad device from bitstream buffer (Xilinx devices only)\n" -	    "\tloadmk\tLoad device generated with mkimage\n" -	    "\tdump\tLoad device to memory buffer" +	"loadable FPGA image support", +	"[operation type] [device number] [image address] [image size]\n" +	"fpga operations:\n" +	"  dump\t[dev]\t\t\tLoad device to memory buffer\n" +	"  info\t[dev]\t\t\tlist known device information\n" +	"  load\t[dev] [address] [size]\tLoad device from memory buffer\n" +	"  loadb\t[dev] [address] [size]\t" +	"Load device from bitstream buffer (Xilinx only)\n" +	"  loadmk [dev] [address]\tLoad device generated with mkimage"  #if defined(CONFIG_FIT) -	    "\n" -	    "\tFor loadmk operating on FIT format uImage address must include\n" -	    "\tsubimage unit name in the form of addr:<subimg_uname>" +	"\n" +	"\tFor loadmk operating on FIT format uImage address must include\n" +	"\tsubimage unit name in the form of addr:<subimg_uname>"  #endif  );  |