summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorYH Lin <yueherngl@google.com>2022-06-22 00:22:37 +0000
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-07-06 17:00:00 +0000
commit2b020b9b1a7578bf382163801aa0f65eb4edb343 (patch)
treea82e131fe5b0fc63e70d123b56242c1986f87d97 /util
parentb6058211c0259083cb1bdeb731d580e8ae760996 (diff)
downloadchrome-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.c15
-rw-r--r--util/ectool.c1
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"