summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin TerAvest <teravest@chromium.org>2018-12-14 11:05:03 -0700
committerAaron Durbin <adurbin@chromium.org>2018-12-17 14:26:10 +0000
commitc650d6c5bb3bdc864e2b8b1051c1beffb45d2d6a (patch)
treea7bc9e0de03969ff8c8e2c3fa82ebd04d9da8aba
parentc4d55e43977d7533b7707cf6d18c3c40ee4e2327 (diff)
downloadcoreboot-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.h2
-rw-r--r--src/vendorcode/google/chromeos/sar.c11
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;
+}