diff options
| -rw-r--r-- | common/cmd_bootm.c | 3 | ||||
| -rw-r--r-- | common/image-fdt.c | 4 | ||||
| -rw-r--r-- | common/image-fit.c | 6 | ||||
| -rw-r--r-- | common/image.c | 4 | ||||
| -rw-r--r-- | include/image.h | 7 | 
5 files changed, 15 insertions, 9 deletions
| diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 998553145..2694c664a 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -988,7 +988,7 @@ static const void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,  	case IMAGE_FORMAT_FIT:  		os_noffset = fit_image_load(images, FIT_KERNEL_PROP,  				img_addr, -				&fit_uname_kernel, fit_uname_config, +				&fit_uname_kernel, &fit_uname_config,  				IH_ARCH_DEFAULT, IH_TYPE_KERNEL,  				BOOTSTAGE_ID_FIT_KERNEL_START,  				FIT_LOAD_IGNORED, os_data, os_len); @@ -997,6 +997,7 @@ static const void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,  		images->fit_hdr_os = map_sysmem(img_addr, 0);  		images->fit_uname_os = fit_uname_kernel; +		images->fit_uname_cfg = fit_uname_config;  		images->fit_noffset_os = os_noffset;  		break;  #endif diff --git a/common/image-fdt.c b/common/image-fdt.c index d99f444de..203404afb 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -243,7 +243,7 @@ int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,  	ulong		load, load_end;  	void		*buf;  #if defined(CONFIG_FIT) -	const char	*fit_uname_config = NULL; +	const char	*fit_uname_config = images->fit_uname_cfg;  	const char	*fit_uname_fdt = NULL;  	ulong		default_addr;  	int		fdt_noffset; @@ -367,7 +367,7 @@ int boot_get_fdt(int flag, int argc, char * const argv[], uint8_t arch,  				fdt_noffset = fit_image_load(images,  					FIT_FDT_PROP,  					fdt_addr, &fit_uname_fdt, -					fit_uname_config, +					&fit_uname_config,  					arch, IH_TYPE_FLATDT,  					BOOTSTAGE_ID_FIT_FDT_START,  					FIT_LOAD_OPTIONAL, &load, &len); diff --git a/common/image-fit.c b/common/image-fit.c index b75e119d9..e28dd0547 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -1478,12 +1478,13 @@ int fit_get_node_from_config(bootm_headers_t *images, const char *prop_name,  }  int fit_image_load(bootm_headers_t *images, const char *prop_name, ulong addr, -		   const char **fit_unamep, const char *fit_uname_config, +		   const char **fit_unamep, const char **fit_uname_configp,  		   int arch, int image_type, int bootstage_id,  		   enum fit_load_op load_op, ulong *datap, ulong *lenp)  {  	int cfg_noffset, noffset;  	const char *fit_uname; +	const char *fit_uname_config;  	const void *fit;  	const void *buf;  	size_t size; @@ -1493,6 +1494,7 @@ int fit_image_load(bootm_headers_t *images, const char *prop_name, ulong addr,  	fit = map_sysmem(addr, 0);  	fit_uname = fit_unamep ? *fit_unamep : NULL; +	fit_uname_config = fit_uname_configp ? *fit_uname_configp : NULL;  	printf("## Loading %s from FIT Image at %08lx ...\n", prop_name, addr);  	bootstage_mark(bootstage_id + BOOTSTAGE_SUB_FORMAT); @@ -1658,6 +1660,8 @@ int fit_image_load(bootm_headers_t *images, const char *prop_name, ulong addr,  	*lenp = len;  	if (fit_unamep)  		*fit_unamep = (char *)fit_uname; +	if (fit_uname_configp) +		*fit_uname_configp = (char *)fit_uname_config;  	return noffset;  } diff --git a/common/image.c b/common/image.c index 1be384f26..327006e5a 100644 --- a/common/image.c +++ b/common/image.c @@ -811,7 +811,7 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,  	char *end;  #endif  #if defined(CONFIG_FIT) -	const char	*fit_uname_config = NULL; +	const char	*fit_uname_config = images->fit_uname_cfg;  	const char	*fit_uname_ramdisk = NULL;  	ulong		default_addr;  	int		rd_noffset; @@ -907,7 +907,7 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,  		case IMAGE_FORMAT_FIT:  			rd_noffset = fit_image_load(images, FIT_RAMDISK_PROP,  					rd_addr, &fit_uname_ramdisk, -					fit_uname_config, arch, +					&fit_uname_config, arch,  					IH_TYPE_RAMDISK,  					BOOTSTAGE_ID_FIT_RD_START,  					FIT_LOAD_REQUIRED, &rd_data, &rd_len); diff --git a/include/image.h b/include/image.h index 9c3e46f32..7b0108f32 100644 --- a/include/image.h +++ b/include/image.h @@ -439,8 +439,9 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,   * @param fit_unamep	On entry this is the requested image name   *			(e.g. "kernel@1") or NULL to use the default. On exit   *			points to the selected image name - * @param fit_uname_config	Requested configuration name, or NULL for the - *			default + * @param fit_uname_configp	On entry this is the requested configuration + *			name (e.g. "conf@1") or NULL to use the default. On + *			exit points to the selected configuration name.   * @param arch		Expected architecture (IH_ARCH_...)   * @param image_type	Required image type (IH_TYPE_...). If this is   *			IH_TYPE_KERNEL then we allow IH_TYPE_KERNEL_NOLOAD @@ -453,7 +454,7 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,   * @param lenp		Returns length of loaded image   */  int fit_image_load(bootm_headers_t *images, const char *prop_name, ulong addr, -		   const char **fit_unamep, const char *fit_uname_config, +		   const char **fit_unamep, const char **fit_uname_configp,  		   int arch, int image_type, int bootstage_id,  		   enum fit_load_op load_op, ulong *datap, ulong *lenp); |