summaryrefslogtreecommitdiff
path: root/util/cbi-util.c
diff options
context:
space:
mode:
authorAbe Levkoy <alevkoy@chromium.org>2020-03-11 09:14:32 -0600
committerCommit Bot <commit-bot@chromium.org>2020-03-24 10:47:30 +0000
commitf28e4caa00393a2bf16f37c929d7b5a95e654e90 (patch)
treee954bb779ae4f3a0823f0f4970c68826d6907363 /util/cbi-util.c
parent4ab2a671173b47366c099feb80fd7e429bf6bef9 (diff)
downloadchrome-ec-f28e4caa00393a2bf16f37c929d7b5a95e654e90.tar.gz
cbi: Support PCB supplier field
Add support for PCB_SUPPLIER, to distinguish boards of the same type with different PCB suppliers. BUG=b:140244489 TEST=ectool cbi set 7 0 1 0; ectool cbi get 7 TEST=cbi on EC console after writing with ectool TEST=/usr/share/userfeedback/scripts/cbi_info after writing with ectool TEST=cbi-util create --pcb_supplier 1 ...; cbi-util show ... BRANCH=none Change-Id: Ieadba91694f4775cc86c2c4b09cdf0874b9ad444 Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2108710 Reviewed-by: Jett Rink <jettrink@chromium.org> Tested-by: George Engelbrecht <engeg@google.com> Commit-Queue: George Engelbrecht <engeg@google.com>
Diffstat (limited to 'util/cbi-util.c')
-rw-r--r--util/cbi-util.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/util/cbi-util.c b/util/cbi-util.c
index 2fd983c1aa..06dc909c20 100644
--- a/util/cbi-util.c
+++ b/util/cbi-util.c
@@ -38,6 +38,7 @@ enum {
OPT_OEM_NAME,
OPT_MODEL_ID,
OPT_FW_CONFIG,
+ OPT_PCB_SUPPLIER,
OPT_SIZE,
OPT_ERASE_BYTE,
OPT_SHOW_ALL,
@@ -53,6 +54,7 @@ static const struct option opts_create[] = {
{"oem_name", 1, 0, OPT_OEM_NAME},
{"model_id", 1, 0, OPT_MODEL_ID},
{"fw_config", 1, 0, OPT_FW_CONFIG},
+ {"pcb_supplier", 1, 0, OPT_PCB_SUPPLIER},
{"size", 1, 0, OPT_SIZE},
{"erase_byte", 1, 0, OPT_ERASE_BYTE},
{NULL, 0, 0, 0}
@@ -73,6 +75,7 @@ static const char *field_name[] = {
"OEM_NAME",
"MODEL_ID",
"FW_CONFIG",
+ "PCB_SUPPLIER",
};
BUILD_ASSERT(ARRAY_SIZE(field_name) == CBI_TAG_COUNT);
@@ -93,6 +96,7 @@ const char help_create[] =
" --format_version <uint16> Data format version\n"
" --model_id <value> Model ID\n"
" --fw_config <value> Firmware configuration bit-field\n"
+ " --pcb_supplier <value> PCB supplier\n"
"\n"
"<value> must be a positive integer <= 0XFFFFFFFF and field size can\n"
" be optionally specified by <value:size> notation: e.g. 0xabcd:4.\n"
@@ -251,6 +255,7 @@ static int cmd_create(int argc, char **argv)
struct integer_field sku;
struct integer_field model;
struct integer_field fw_config;
+ struct integer_field pcb_supplier;
const char *dram_part_num;
const char *oem_name;
} bi;
@@ -323,6 +328,10 @@ static int cmd_create(int argc, char **argv)
if (parse_integer_field(optarg, &bi.fw_config))
return -1;
break;
+ case OPT_PCB_SUPPLIER:
+ if (parse_integer_field(optarg, &bi.pcb_supplier))
+ return -1;
+ break;
}
}
@@ -351,6 +360,8 @@ static int cmd_create(int argc, char **argv)
p = cbi_set_data(p, CBI_TAG_MODEL_ID, &bi.model.val, bi.model.size);
p = cbi_set_data(p, CBI_TAG_FW_CONFIG, &bi.fw_config.val,
bi.fw_config.size);
+ p = cbi_set_data(p, CBI_TAG_PCB_SUPPLIER, &bi.pcb_supplier.val,
+ bi.pcb_supplier.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);
@@ -479,6 +490,7 @@ static int cmd_show(int argc, char **argv)
print_integer(buf, CBI_TAG_FW_CONFIG);
print_string(buf, CBI_TAG_DRAM_PART_NUM);
print_string(buf, CBI_TAG_OEM_NAME);
+ print_integer(buf, CBI_TAG_PCB_SUPPLIER);
free(buf);