mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-03 10:17:21 +00:00
spl: fit: don't load the firmware twice
When u-boot.img is a FIT image generated automatically by mkimage, the configuration node has the following structure: conf-1 { description = "k3-am654-base-board"; firmware = "firmware-1"; loadables = "firmware-1"; fdt = "fdt-1"; }; The firmware is referenced twice. Once by the 'firmware' property and once by the 'loadables' property. Currently this result in the firmware being loaded twice. This is not a big problem but has an impact on the boot time. Fixing it by not loading a loadable image if it is also the firmware image. Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org> Tested-by: Andreas Dannenberg <dannenberg@ti.com>
This commit is contained in:
parent
e3cd06be93
commit
6b8b98d54d
1 changed files with 10 additions and 0 deletions
|
@ -373,6 +373,7 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
|
||||||
int images, ret;
|
int images, ret;
|
||||||
int base_offset, hsize, align_len = ARCH_DMA_MINALIGN - 1;
|
int base_offset, hsize, align_len = ARCH_DMA_MINALIGN - 1;
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
int firmware_node;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* For FIT with external data, figure out where the external images
|
* For FIT with external data, figure out where the external images
|
||||||
|
@ -502,6 +503,7 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
|
||||||
spl_fit_append_fdt(spl_image, info, sector, fit,
|
spl_fit_append_fdt(spl_image, info, sector, fit,
|
||||||
images, base_offset);
|
images, base_offset);
|
||||||
|
|
||||||
|
firmware_node = node;
|
||||||
/* Now check if there are more images for us to load */
|
/* Now check if there are more images for us to load */
|
||||||
for (; ; index++) {
|
for (; ; index++) {
|
||||||
uint8_t os_type = IH_OS_INVALID;
|
uint8_t os_type = IH_OS_INVALID;
|
||||||
|
@ -510,6 +512,14 @@ int spl_load_simple_fit(struct spl_image_info *spl_image,
|
||||||
if (node < 0)
|
if (node < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* if the firmware is also a loadable, skip it because
|
||||||
|
* it already has been loaded. This is typically the case with
|
||||||
|
* u-boot.img generated by mkimage.
|
||||||
|
*/
|
||||||
|
if (firmware_node == node)
|
||||||
|
continue;
|
||||||
|
|
||||||
ret = spl_load_fit_image(info, sector, fit, base_offset, node,
|
ret = spl_load_fit_image(info, sector, fit, base_offset, node,
|
||||||
&image_info);
|
&image_info);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
|
Loading…
Add table
Reference in a new issue