cbfs: Add cbfs_boot_load_file()
Generalize cbfs_boot_load_struct() by passing in CBFS type Change-Id: I6e5f845cb4ce5b00f01a39619919f85e39028f19 Signed-off-by: T Michael Turney <mturney@codeaurora.org> Reviewed-on: https://review.coreboot.org/25648 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
		
				
					committed by
					
						 Patrick Georgi
						Patrick Georgi
					
				
			
			
				
	
			
			
			
						parent
						
							79f1c3e2a5
						
					
				
				
					commit
					809fa7b5c2
				
			| @@ -37,11 +37,12 @@ void *cbfs_boot_map_with_leak(const char *name, uint32_t type, size_t *size); | ||||
| /* Locate file in a specific region of fmap. Return 0 on success. < 0 on error*/ | ||||
| int cbfs_locate_file_in_region(struct cbfsf *fh, const char *region_name, | ||||
| 		const char *name, uint32_t *type); | ||||
| /* Load a struct file from CBFS into a buffer. Returns amount of loaded | ||||
|  * bytes on success or 0 on error. File will get decompressed as necessary. | ||||
|  * Same decompression requirements as cbfs_load_and_decompress(). */ | ||||
| size_t cbfs_boot_load_struct(const char *name, void *buf, size_t buf_size); | ||||
|  | ||||
| /* Load an arbitrary type file from CBFS into a buffer. Returns amount of | ||||
|  * loaded bytes on success or 0 on error. File will get decompressed as | ||||
|  * necessary.  Same decompression requirements as | ||||
|  * cbfs_load_and_decompress(). */ | ||||
| size_t cbfs_boot_load_file(const char *name, void *buf, size_t buf_size, | ||||
| 	uint32_t type); | ||||
| /* Load |in_size| bytes from |rdev| at |offset| to the |buffer_size| bytes | ||||
|  * large |buffer|, decompressing it according to |compression| in the process. | ||||
|  * Returns the decompressed file size, or 0 on error. | ||||
|   | ||||
| @@ -182,12 +182,12 @@ void *cbfs_boot_load_stage_by_name(const char *name) | ||||
| 	return prog_entry(&stage); | ||||
| } | ||||
|  | ||||
| size_t cbfs_boot_load_struct(const char *name, void *buf, size_t buf_size) | ||||
| size_t cbfs_boot_load_file(const char *name, void *buf, size_t buf_size, | ||||
| 			   uint32_t type) | ||||
| { | ||||
| 	struct cbfsf fh; | ||||
| 	uint32_t compression_algo; | ||||
| 	size_t decompressed_size; | ||||
| 	uint32_t type = CBFS_TYPE_STRUCT; | ||||
|  | ||||
| 	if (cbfs_boot_locate(&fh, name, &type) < 0) | ||||
| 		return 0; | ||||
|   | ||||
| @@ -67,8 +67,8 @@ const struct rk3399_sdram_params *get_sdram_config() | ||||
| 	if (ramcode >= ARRAY_SIZE(sdram_configs) || | ||||
| 	    !snprintf(config_file, sizeof(config_file), "%s-%d", | ||||
| 	    sdram_configs[ramcode], get_sdram_target_mhz()) || | ||||
| 	    (cbfs_boot_load_struct(config_file, ¶ms, | ||||
| 				   sizeof(params)) != sizeof(params))) | ||||
| 	    (cbfs_boot_load_file(config_file, ¶ms, sizeof(params), | ||||
| 				 CBFS_TYPE_STRUCT) != sizeof(params))) | ||||
| 		die("Cannot load SDRAM parameter file!"); | ||||
|  | ||||
| 	return ¶ms; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user