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:
T Michael Turney 2018-04-12 13:36:40 -07:00 committed by Patrick Georgi
parent 79f1c3e2a5
commit 809fa7b5c2
3 changed files with 10 additions and 9 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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, &params,
sizeof(params)) != sizeof(params)))
(cbfs_boot_load_file(config_file, &params, sizeof(params),
CBFS_TYPE_STRUCT) != sizeof(params)))
die("Cannot load SDRAM parameter file!");
return &params;