diff options
author | Jett Rink <jettrink@chromium.org> | 2019-12-02 10:26:49 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-12-16 17:55:58 +0000 |
commit | 25002abca7e900d6473b40354c8bc79c4dfa11c7 (patch) | |
tree | 414c5bdcbef5509aaadb5bb1c5ed8aaedbf9b7fd /common/cbi.c | |
parent | e25c81318a06506c79423900b9592a7caa36cfed (diff) | |
download | chrome-ec-25002abca7e900d6473b40354c8bc79c4dfa11c7.tar.gz |
cbi: add FW_CONFIG CBI field
This field will be used to describe which "features" or path the firmware
code should enable or disable. Firmware code should look at the firmware
configuration value to make code decision for un-discoverable hardware
connections or layouts that differ within the same firmware binary.
Firmware should no longer use SKU_ID/VARIANT_ID to make decisions, only
this new FW_CONFIG field.
BRANCH=none
BUG=b:145519081
TEST=Created cbi image with FW_CONFIG field
Change-Id: I1db8e7638a15343173ea5061e9038a7d53bda090
Signed-off-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1945821
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'common/cbi.c')
-rw-r--r-- | common/cbi.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/common/cbi.c b/common/cbi.c index f29ae2040c..1f92e584c2 100644 --- a/common/cbi.c +++ b/common/cbi.c @@ -262,27 +262,39 @@ static int write_board_info(void) int cbi_get_board_version(uint32_t *ver) { uint8_t size = sizeof(*ver); + return cbi_get_board_info(CBI_TAG_BOARD_VERSION, (uint8_t *)ver, &size); } int cbi_get_sku_id(uint32_t *id) { uint8_t size = sizeof(*id); + return cbi_get_board_info(CBI_TAG_SKU_ID, (uint8_t *)id, &size); } int cbi_get_oem_id(uint32_t *id) { uint8_t size = sizeof(*id); + return cbi_get_board_info(CBI_TAG_OEM_ID, (uint8_t *)id, &size); } int cbi_get_model_id(uint32_t *id) { uint8_t size = sizeof(*id); + return cbi_get_board_info(CBI_TAG_MODEL_ID, (uint8_t *)id, &size); } +int cbi_get_fw_config(uint32_t *fw_config) +{ + uint8_t size = sizeof(*fw_config); + + return cbi_get_board_info(CBI_TAG_FW_CONFIG, (uint8_t *)fw_config, + &size); +} + static enum ec_status hc_cbi_get(struct host_cmd_handler_args *args) { const struct __ec_align4 ec_params_get_cbi *p = args->params; @@ -397,6 +409,7 @@ static void dump_cbi(void) print_tag("OEM_ID", cbi_get_oem_id(&val), &val); print_tag("MODEL_ID", cbi_get_model_id(&val), &val); print_tag("SKU_ID", cbi_get_sku_id(&val), &val); + print_tag("FW_CONFIG", cbi_get_fw_config(&val), &val); } static int cc_cbi(int argc, char **argv) |