From 8cb2f185d11ba1ebcb86bd4add5ebec2f4650d68 Mon Sep 17 00:00:00 2001 From: Eric Lai Date: Mon, 19 Dec 2022 09:14:39 +0800 Subject: vc/google/chromeos: use fw_config field to return sar filename Use fw_config field to return sar filename instead of fw_config probe. Return filename unconditionly because the sar_id must be valid in CBI. If invalid sar_id, the file won't exist in CBFS by design. Signed-off-by: Eric Lai Change-Id: I7b75c5d4fd3c459ad7232bb16c6218a6218f1f77 Reviewed-on: https://review.coreboot.org/c/coreboot/+/70896 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner Reviewed-by: Subrata Banik Reviewed-by: Ivy Jian --- src/include/sar.h | 3 +++ src/vendorcode/google/chromeos/sar.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) (limited to 'src') diff --git a/src/include/sar.h b/src/include/sar.h index beccb377cd..87edf1a5b7 100644 --- a/src/include/sar.h +++ b/src/include/sar.h @@ -2,6 +2,7 @@ #ifndef _SAR_H_ #define _SAR_H_ +#include #include #define MAX_ANT_GAINS_REVISION 2 @@ -88,4 +89,6 @@ int get_wifi_sar_limits(union wifi_sar_limits *sar_limits); const char *get_wifi_sar_cbfs_filename(void); +char *get_wifi_sar_fw_config_filename(const struct fw_config_field *field); + #endif /* _SAR_H_ */ diff --git a/src/vendorcode/google/chromeos/sar.c b/src/vendorcode/google/chromeos/sar.c index 4250b4ce7e..c42bf65437 100644 --- a/src/vendorcode/google/chromeos/sar.c +++ b/src/vendorcode/google/chromeos/sar.c @@ -3,8 +3,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -304,3 +306,19 @@ const char *get_wifi_sar_cbfs_filename(void) { return WIFI_SAR_CBFS_DEFAULT_FILENAME; } + +char *get_wifi_sar_fw_config_filename(const struct fw_config_field *field) +{ + uint64_t sar_id = fw_config_get_field(field); + if (sar_id == UNDEFINED_FW_CONFIG) { + printk(BIOS_WARNING, "fw_config unprovisioned, set sar filename to NULL\n"); + return NULL; + } + static char filename[20]; + printk(BIOS_INFO, "Use wifi_sar_%lld.hex.\n", sar_id); + if (snprintf(filename, sizeof(filename), "wifi_sar_%lld.hex", sar_id) < 0) { + printk(BIOS_ERR, "Error occurred with snprintf, set sar filename to NULL\n"); + return NULL; + } + return filename; +} -- cgit v1.2.3