ectool: Allow cbi set to accept 4 byte filed

This patch makes 'cbi set' command accept a 4 byte field.

Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>

BUG=b:79514391
BRANCH=none
TEST=Run ectool cbi set 2 0xabc 4 on Nami.

Change-Id: I4ebfa6d35bf6dccbae80ec91ffd6bcc01fec03e5
Reviewed-on: https://chromium-review.googlesource.com/1056199
Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Randall Spangler <rspangler@chromium.org>
This commit is contained in:
Daisuke Nojiri
2018-05-11 09:02:09 -07:00
committed by chrome-bot
parent 88ffd86551
commit fa6c5abae5

View File

@@ -6510,7 +6510,7 @@ static void cmd_cbi_help(char *cmd)
" 0: BOARD_VERSION\n"
" 1: OEM_ID\n"
" 2: SKU_ID\n"
" <size> is the size of the data\n"
" <size> is the size of the data in byte\n"
" <value> is integer to be set. No raw data support yet.\n"
" [get_flag] is combination of:\n"
" 01b: Invalidate cache and reload data from EEPROM\n"
@@ -6594,8 +6594,9 @@ static int cmd_cbi(int argc, char *argv[])
return -1;
}
size = strtol(argv[4], &e, 0);
if ((e && *e) || val >= (1 << size*8)) {
fprintf(stderr, "Bad size\n");
if ((e && *e) || size < 1 || 4 < size ||
val >= (1ull << size*8)) {
fprintf(stderr, "Bad size: %d\n", size);
return -1;
}
/* Little endian */