diff options
author | Justin TerAvest <teravest@chromium.org> | 2018-12-14 11:05:03 -0700 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2018-12-17 14:26:10 +0000 |
commit | c650d6c5bb3bdc864e2b8b1051c1beffb45d2d6a (patch) | |
tree | a7bc9e0de03969ff8c8e2c3fa82ebd04d9da8aba | |
parent | c4d55e43977d7533b7707cf6d18c3c40ee4e2327 (diff) | |
download | coreboot-c650d6c5bb3bdc864e2b8b1051c1beffb45d2d6a.tar.xz |
vendorcode/google: support multiple SAR filenames
Using a fixed filename only allows for one SAR configuration to be
checked into CBFS. However, we have devices with shared firmware that
would desire separate SAR configurations. This change allows boards to
define a function to select one of multiple files stored in CBFS to be
used.
BUG=b:120958726
BRANCH=octopus
TEST=build
Signed-off-by: Justin TerAvest <teravest@chromium.org>
Change-Id: Ib852aaaff39f1e9149fa43bf8dc25b2400737ea5
Reviewed-on: https://review.coreboot.org/c/30222
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r-- | src/include/sar.h | 2 | ||||
-rw-r--r-- | src/vendorcode/google/chromeos/sar.c | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/include/sar.h b/src/include/sar.h index 9da4dd943c..527a51a89d 100644 --- a/src/include/sar.h +++ b/src/include/sar.h @@ -54,4 +54,6 @@ struct wifi_sar_limits { */ int get_wifi_sar_limits(struct wifi_sar_limits *sar_limits); +const char *get_wifi_sar_cbfs_filename(void); + #endif /* _SAR_H_ */ diff --git a/src/vendorcode/google/chromeos/sar.c b/src/vendorcode/google/chromeos/sar.c index 6799f12a24..417b9b6744 100644 --- a/src/vendorcode/google/chromeos/sar.c +++ b/src/vendorcode/google/chromeos/sar.c @@ -26,7 +26,10 @@ static int load_sar_file_from_cbfs(void *buf, size_t buffer_size) { - return cbfs_boot_load_file(WIFI_SAR_CBFS_FILENAME, buf, + const char *filename = get_wifi_sar_cbfs_filename(); + if (filename == NULL) + filename = WIFI_SAR_CBFS_FILENAME; + return cbfs_boot_load_file(filename, buf, buffer_size, CBFS_TYPE_RAW); } @@ -120,3 +123,9 @@ int get_wifi_sar_limits(struct wifi_sar_limits *sar_limits) memcpy(sar_limits, bin_buffer, bin_buff_adjusted_size); return 0; } + +__weak +const char *get_wifi_sar_cbfs_filename(void) +{ + return NULL; +} |