From f320a4d845ab160dd539888280b6452deebdb3d0 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Wed, 10 Jul 2013 23:08:10 -0700 Subject: 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 --- common/image-fit.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'common/image-fit.c') diff --git a/common/image-fit.c b/common/image-fit.c index b75e119d930..e28dd054743 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; } -- cgit v1.2.3