diff options
author | T Michael Turney <mturney@codeaurora.org> | 2018-04-12 13:36:40 -0700 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-04-17 10:46:13 +0000 |
commit | 809fa7b5c2df4bf926753a9e35f4330954ac1426 (patch) | |
tree | c18a6fb03a29932ce094edcdeceed9da0f547d37 | |
parent | 79f1c3e2a5c28e7d6b308165428c15188419d1a3 (diff) | |
download | coreboot-809fa7b5c2df4bf926753a9e35f4330954ac1426.tar.xz |
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>
-rw-r--r-- | src/include/cbfs.h | 11 | ||||
-rw-r--r-- | src/lib/cbfs.c | 4 | ||||
-rw-r--r-- | src/mainboard/google/gru/sdram_configs.c | 4 |
3 files changed, 10 insertions, 9 deletions
diff --git a/src/include/cbfs.h b/src/include/cbfs.h index 1dac504242..85e25b3d9b 100644 --- a/src/include/cbfs.h +++ b/src/include/cbfs.h @@ -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. diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index 596abc5ad2..9e81bd3a3a 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -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; diff --git a/src/mainboard/google/gru/sdram_configs.c b/src/mainboard/google/gru/sdram_configs.c index ac5c427027..2091c36b7a 100644 --- a/src/mainboard/google/gru/sdram_configs.c +++ b/src/mainboard/google/gru/sdram_configs.c @@ -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; |