aboutsummaryrefslogtreecommitdiff
path: root/src/ec/google/chromeec/ec.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ec/google/chromeec/ec.c')
-rw-r--r--src/ec/google/chromeec/ec.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c
index 0915833b91..affe66ef8f 100644
--- a/src/ec/google/chromeec/ec.c
+++ b/src/ec/google/chromeec/ec.c
@@ -848,8 +848,19 @@ int google_chromeec_cbi_get_fw_config(uint64_t *fw_config)
if (cbi_get_uint32(&config, CBI_TAG_FW_CONFIG))
return -1;
- /* FIXME: Yet to determine source of other 32 bits... */
*fw_config = (uint64_t)config;
+ /*
+ * If SSFC is configured to be part of FW_CONFIG, add it at the most significant
+ * 32 bits.
+ */
+ if (CONFIG(EC_GOOGLE_CHROMEEC_INCLUDE_SSFC_IN_FW_CONFIG)) {
+ uint32_t ssfc;
+
+ if (google_chromeec_cbi_get_ssfc(&ssfc))
+ return -1;
+
+ *fw_config |= (uint64_t)ssfc << 32;
+ }
return 0;
}