mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 02:15:45 +01: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:
		
				
					committed by
					
						 Tom Rini
						Tom Rini
					
				
			
			
				
	
			
			
			
						parent
						
							e3cd06be93
						
					
				
				
					commit
					6b8b98d54d
				
			| @@ -373,6 +373,7 @@ int spl_load_simple_fit(struct spl_image_info *spl_image, | ||||
| 	int images, ret; | ||||
| 	int base_offset, hsize, align_len = ARCH_DMA_MINALIGN - 1; | ||||
| 	int index = 0; | ||||
| 	int firmware_node; | ||||
|  | ||||
| 	/* | ||||
| 	 * 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, | ||||
| 				   images, base_offset); | ||||
|  | ||||
| 	firmware_node = node; | ||||
| 	/* Now check if there are more images for us to load */ | ||||
| 	for (; ; index++) { | ||||
| 		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) | ||||
| 			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, | ||||
| 					 &image_info); | ||||
| 		if (ret < 0) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user