summaryrefslogtreecommitdiff
path: root/util/ectool.c
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2020-01-06 11:35:10 -0700
committerCommit Bot <commit-bot@chromium.org>2020-01-09 20:44:16 +0000
commit825b3cec015cc2d33d24762370b77a91ae5e396c (patch)
treea5ce3a8405b5e37c9c73d72fc505eae0a1129691 /util/ectool.c
parentfaac542536136a7ac4bd1c6cd52e94924b44779e (diff)
downloadchrome-ec-825b3cec015cc2d33d24762370b77a91ae5e396c.tar.gz
cbi: fix print of 32-bit int value in ectool
The ectool tool only prints the lower 8-bits as an integer. BRANCH=none BUG=none TEST=ectool prints 32-bit integer value correctly Change-Id: Idf05833ad8c0a2f2bb0ad42fd74b86e23987a98e Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1988705 Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'util/ectool.c')
-rw-r--r--util/ectool.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/util/ectool.c b/util/ectool.c
index fca417d6a3..ac2bd878d5 100644
--- a/util/ectool.c
+++ b/util/ectool.c
@@ -7475,8 +7475,8 @@ static int cmd_cbi(int argc, char *argv[])
if (!strcasecmp(argv[1], "get")) {
struct ec_params_get_cbi p = { 0 };
- uint8_t *r;
int i;
+
p.tag = tag;
if (argc > 3) {
p.flag = strtol(argv[3], &e, 0);
@@ -7495,17 +7495,25 @@ static int cmd_cbi(int argc, char *argv[])
fprintf(stderr, "Invalid size: %d\n", rv);
return -1;
}
- r = ec_inbuf;
if (cmd_cbi_is_string_field(tag)) {
- printf("%.*s", rv, (const char *)r);
+ printf("%.*s", rv, (const char *)ec_inbuf);
} else {
- if (rv <= sizeof(uint32_t))
- printf("As integer: %u (0x%x)\n", r[0], r[0]);
+ const uint8_t * const buffer = ec_inbuf;
+
+ if (rv <= sizeof(uint32_t)) {
+ uint32_t int_value = 0;
+
+ for (i = 0; i < rv; i++)
+ int_value |= buffer[i] << (i * 8);
+
+ printf("As uint: %u (0x%x)\n", int_value,
+ int_value);
+ }
printf("As binary:");
for (i = 0; i < rv; i++) {
if (i % 32 == 31)
printf("\n");
- printf(" %02x", r[i]);
+ printf(" %02x", buffer[i]);
}
}
printf("\n");