diff options
author | YH Lin <yueherngl@google.com> | 2022-06-22 00:22:37 +0000 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-07-06 17:00:00 +0000 |
commit | 2b020b9b1a7578bf382163801aa0f65eb4edb343 (patch) | |
tree | a82e131fe5b0fc63e70d123b56242c1986f87d97 /util | |
parent | b6058211c0259083cb1bdeb731d580e8ae760996 (diff) | |
download | chrome-ec-2b020b9b1a7578bf382163801aa0f65eb4edb343.tar.gz |
ec: add cbi data tag/field for factory_calibration_data
Add a CBI factory_calibration_data tag to carry 32 bit data in the CBI
as well as the accessor for this data.
BUG=b:236048046
TEST=None
BRANCH=None
Signed-off-by: YH Lin <yueherngl@chromium.org>
Change-Id: Iab31422b8a6d2e25e238aa0c6c72a297b6663e09
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3716800
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'util')
-rw-r--r-- | util/cbi-util.c | 15 | ||||
-rw-r--r-- | util/ectool.c | 1 |
2 files changed, 15 insertions, 1 deletions
diff --git a/util/cbi-util.c b/util/cbi-util.c index fb38cd86e1..20268e43a4 100644 --- a/util/cbi-util.c +++ b/util/cbi-util.c @@ -41,6 +41,7 @@ enum { OPT_PCB_SUPPLIER, OPT_SSFC, OPT_REWORK_ID, + OPT_FACTORY_CALIBRATION_DATA, OPT_SIZE, OPT_ERASE_BYTE, OPT_SHOW_ALL, @@ -59,6 +60,7 @@ static const struct option opts_create[] = { { "pcb_supplier", 1, 0, OPT_PCB_SUPPLIER }, { "ssfc", 1, 0, OPT_SSFC }, { "rework_id", 1, 0, OPT_REWORK_ID }, + { "factory_calibration_data", 1, 0, OPT_FACTORY_CALIBRATION_DATA}, { "size", 1, 0, OPT_SIZE }, { "erase_byte", 1, 0, OPT_ERASE_BYTE }, { NULL, 0, 0, 0 } @@ -72,7 +74,7 @@ static const char *field_name[] = { /* Same order as enum cbi_data_tag */ "BOARD_VERSION", "OEM_ID", "SKU_ID", "DRAM_PART_NUM", "OEM_NAME", "MODEL_ID", "FW_CONFIG", "PCB_SUPPLIER", - "SSFC", "REWORK_ID", + "SSFC", "REWORK_ID", "FACTORY_CALIBRATION_DATA", }; BUILD_ASSERT(ARRAY_SIZE(field_name) == CBI_TAG_COUNT); @@ -96,6 +98,7 @@ const char help_create[] = " --pcb_supplier <value> PCB supplier\n" " --ssfc <value> Second Source Factory Cache bit-field\n" " --rework_id <lvalue> REWORK_ID\n" + " --factory_calibration_data <value> Factory calibration data\n" "\n" "<value> must be a positive integer <= 0XFFFFFFFF, <lvalue> must be a\n" " positive integer <= 0xFFFFFFFFFFFFFFFF and field size can be\n" @@ -306,6 +309,7 @@ static int cmd_create(int argc, char **argv) struct integer_field pcb_supplier; struct integer_field ssfc; struct long_integer_field rework; + struct integer_field factory_calibration_data; const char *dram_part_num; const char *oem_name; } bi; @@ -390,6 +394,11 @@ static int cmd_create(int argc, char **argv) if (parse_uint64_field(optarg, &bi.rework)) return -1; break; + case OPT_FACTORY_CALIBRATION_DATA: + if (parse_integer_field(optarg, + &bi.factory_calibration_data)) + return -1; + break; } } @@ -422,6 +431,9 @@ static int cmd_create(int argc, char **argv) bi.pcb_supplier.size); p = cbi_set_data(p, CBI_TAG_SSFC, &bi.ssfc.val, bi.ssfc.size); p = cbi_set_data(p, CBI_TAG_REWORK_ID, &bi.rework.val, bi.rework.size); + p = cbi_set_data(p, CBI_TAG_FACTORY_CALIBRATION_DATA, + &bi.factory_calibration_data.val, + bi.factory_calibration_data.size); p = cbi_set_string(p, CBI_TAG_DRAM_PART_NUM, bi.dram_part_num); p = cbi_set_string(p, CBI_TAG_OEM_NAME, bi.oem_name); @@ -556,6 +568,7 @@ static int cmd_show(int argc, char **argv) print_integer(buf, CBI_TAG_PCB_SUPPLIER); print_integer(buf, CBI_TAG_SSFC); print_integer(buf, CBI_TAG_REWORK_ID); + print_integer(buf, CBI_TAG_FACTORY_CALIBRATION_DATA); print_string(buf, CBI_TAG_DRAM_PART_NUM); print_string(buf, CBI_TAG_OEM_NAME); diff --git a/util/ectool.c b/util/ectool.c index 6e4bd1ff35..d80a3404cf 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -8241,6 +8241,7 @@ static void cmd_cbi_help(char *cmd) " 7: PCB_VENDOR\n" " 8: SSFC\n" " 9: REWORK_ID\n" + " 10: FACTORY_CALIBRATION_DATA\n" " <size> is the size of the data in byte. It should be zero for\n" " string types.\n" " <value/string> is an integer or a string to be set\n" |