diff options
Diffstat (limited to 'common/image-fdt.c')
| -rw-r--r-- | common/image-fdt.c | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/common/image-fdt.c b/common/image-fdt.c index 0d421d92f..d99f444de 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -248,13 +248,16 @@ int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,  	ulong		default_addr;  	int		fdt_noffset;  #endif +	const char *select = NULL;  	*of_flat_tree = NULL;  	*of_size = 0; -	if (argc > 3 || genimg_has_config(images)) { +	if (argc > 2) +		select = argv[2]; +	if (select || genimg_has_config(images)) {  #if defined(CONFIG_FIT) -		if (argc > 3) { +		if (select) {  			/*  			 * If the FDT blob comes from the FIT image and the  			 * FIT image address is omitted in the command line @@ -268,18 +271,18 @@ int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,  			else  				default_addr = load_addr; -			if (fit_parse_conf(argv[3], default_addr, +			if (fit_parse_conf(select, default_addr,  					   &fdt_addr, &fit_uname_config)) {  				debug("*  fdt: config '%s' from image at 0x%08lx\n",  				      fit_uname_config, fdt_addr); -			} else if (fit_parse_subimage(argv[3], default_addr, +			} else if (fit_parse_subimage(select, default_addr,  				   &fdt_addr, &fit_uname_fdt)) {  				debug("*  fdt: subimage '%s' from image at 0x%08lx\n",  				      fit_uname_fdt, fdt_addr);  			} else  #endif  			{ -				fdt_addr = simple_strtoul(argv[3], NULL, 16); +				fdt_addr = simple_strtoul(select, NULL, 16);  				debug("*  fdt: cmdline image address = 0x%08lx\n",  				      fdt_addr);  			} |