diff options
| author | Simon Glass <sjg@chromium.org> | 2013-07-10 23:08:10 -0700 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2013-07-12 10:32:39 -0400 | 
| commit | f320a4d845ab160dd539888280b6452deebdb3d0 (patch) | |
| tree | 82ab3ab1b74dcfa79dcd7de4acf0d3f7c27a3e0f /common/image-fit.c | |
| parent | 7af26b1669b75a02e1cfaa68ac526897e790af84 (diff) | |
| download | olio-uboot-2014.01-f320a4d845ab160dd539888280b6452deebdb3d0.tar.xz olio-uboot-2014.01-f320a4d845ab160dd539888280b6452deebdb3d0.zip | |
bootm: Use selected configuration for ramdisk and fdt
If a specific configuraion is selected by the bootm command, e.g. with
'bootm 84000000#recoveryconf' we must honour this for not just the kernel,
but also the ramdisk and FDT.
In the conversion to using a common fit_image_load() function for loading
images from FITs (commits a51ec63 and 53f375f) this feature was lost.
Reinstate it by passing the selected configuration back from
fit_image_load() to boot_get_kernel(), then use this configuration
(which is stored in images->fit_uname_cfg) in both boot_get_ramdisk()
and boot_get_fdt().
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/image-fit.c')
| -rw-r--r-- | common/image-fit.c | 6 | 
1 files changed, 5 insertions, 1 deletions
| 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;  } |