diff options
author | Tom Hughes <tomhughes@chromium.org> | 2022-09-21 14:10:01 -0700 |
---|---|---|
committer | Tom Hughes <tomhughes@chromium.org> | 2022-09-22 12:49:33 -0700 |
commit | 2bcf863b492fe7ed8105c853814dba6ed32ba719 (patch) | |
tree | fcf6ce5810f9ff9e3c8cce434812dd75492269ed /common/cbi.c | |
parent | e5fb0b9ba488614b5684e640530f00821ab7b943 (diff) | |
parent | 28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff) | |
download | chrome-ec-2bcf863b492fe7ed8105c853814dba6ed32ba719.tar.gz |
Merge remote-tracking branch cros/main into firmware-fpmcu-bloonchipper-releasefirmware-fpmcu-bloonchipper-release
Generated by: ./util/update_release_branch.py --board bloonchipper
--relevant_paths_file ./util/fingerprint-relevant-paths.txt firmware-
fpmcu-bloonchipper-release
Relevant changes:
git log --oneline e5fb0b9ba4..28712dae9d -- board/hatch_fp
board/bloonchipper common/fpsensor docs/fingerprint driver/fingerprint
util/getversion.sh
ded9307b79 util/getversion.sh: Fix version when not in a git repo
956055e692 board: change Google USB vendor info
71b2ef709d Update license boilerplate text in source code files
33e11afda0 Revert "fpsensor: Build fpsensor source file with C++"
c8d0360723 fpsensor: Build fpsensor source file with C++
bc113abd53 fpsensor: Fix g++ compiler error
150a58a0dc fpsensor: Fix fp_set_sensor_mode return type
b33b5ce85b fpsensor: Remove nested designators for C++ compatibility
2e864b2539 tree-wide: const-ify argv for console commands
56d8b360f9 test: Add test for get ikm failure when seed not set
3a3d6c3690 test: Add test for fpsensor trivial key failure
233e6bbd08 fpsensor_crypto: Abstract calls to hmac_SHA256
0a041b285b docs/fingerprint: Typo correction
c03fab67e2 docs/fingerprint: Fix the path of fputils.py
0b5d4baf5a util/getversion.sh: Fix empty file list handling
6e128fe760 FPMCU dev board environment with Satlab
3eb29b6aa5 builtin: Move ssize_t to sys/types.h
345d62ebd1 docs/fingerprint: Update power numbers for latest dartmonkey release
c25ffdb316 common: Conditionally support printf %l and %i modifiers
9a3c514b45 test: Add a test to check if the debugger is connected
54e603413f Move standard library tests to their own file
43fa6b4bf8 docs/fingerprint: Update power numbers for latest bloonchipper release
25536f9a84 driver/fingerprint/fpc/bep/fpc_sensor_spi.c: Format with clang-format
4face99efd driver/fingerprint/fpc/libfp/fpc_sensor_pal.h: Format with clang-format
738de2b575 trng: Rename rand to trng_rand
14b8270edd docs/fingerprint: Update dragonclaw power numbers
0b268f93d1 driver/fingerprint/fpc/libfp/fpc_private.c: Format with clang-format
f80da163f2 driver/fingerprint/fpc/libfp/fpc_private.h: Format with clang-format
5e9c85c9b1 driver/fingerprint/fpc/libfp/fpc_sensor_pal.c: Format with clang-format
c1f9dd3cf8 driver/fingerprint/fpc/libfp/fpc_bio_algorithm.h: Format with clang-format
eb1e1bed8d driver/fingerprint/fpc/libfp/fpc1145_private.h: Format with clang-format
6e7b611821 driver/fingerprint/fpc/bep/fpc_bio_algorithm.h: Format with clang-format
e0589cd5e2 driver/fingerprint/fpc/bep/fpc1035_private.h: Format with clang-format
7905e556a0 common/fpsensor/fpsensor_crypto.c: Format with clang-format
21289d170c driver/fingerprint/fpc/bep/fpc1025_private.h: Format with clang-format
98a20f937e common/fpsensor/fpsensor_state.c: Format with clang-format
a2d255d8af common/fpsensor/fpsensor.c: Format with clang-format
73055eeb3f driver/fingerprint/fpc/bep/fpc_private.c: Format with clang-format
0f7b5cb509 common/fpsensor/fpsensor_private.h: Format with clang-format
1ceade6e65 driver/fingerprint/fpc/bep/fpc_private.h: Format with clang-format
dc3e9008b8 board/hatch_fp/board.h: Format with clang-format
dca9d74321 Revert "trng: Rename rand to trng_rand"
a6b0b3554f trng: Rename rand to trng_rand
28d0b75b70 third_party/boringssl: Remove unused header
BRANCH=None
BUG=b:246424843 b:234181908 b:244781166 b:234181908 b:244387210
BUG=b:242720240 chromium:1098010 b:180945056 b:236025198 b:234181908
BUG=b:234181908 b:237344361 b:131913998 b:236386294 b:234143158
BUG=b:234781655 b:215613183 b:242720910
TEST=`make -j buildall`
TEST=./test/run_device_tests.py --board bloonchipper
Test "aes": PASSED
Test "cec": PASSED
Test "cortexm_fpu": PASSED
Test "crc": PASSED
Test "flash_physical": PASSED
Test "flash_write_protect": PASSED
Test "fpsensor_hw": PASSED
Test "fpsensor_spi_ro": PASSED
Test "fpsensor_spi_rw": PASSED
Test "fpsensor_uart_ro": PASSED
Test "fpsensor_uart_rw": PASSED
Test "mpu_ro": PASSED
Test "mpu_rw": PASSED
Test "mutex": PASSED
Test "pingpong": PASSED
Test "printf": PASSED
Test "queue": PASSED
Test "rollback_region0": PASSED
Test "rollback_region1": PASSED
Test "rollback_entropy": PASSED
Test "rtc": PASSED
Test "sha256": PASSED
Test "sha256_unrolled": PASSED
Test "static_if": PASSED
Test "stdlib": PASSED
Test "system_is_locked_wp_on": PASSED
Test "system_is_locked_wp_off": PASSED
Test "timer_dos": PASSED
Test "utils": PASSED
Test "utils_str": PASSED
Test "stm32f_rtc": PASSED
Test "panic_data_bloonchipper_v2.0.4277": PASSED
Test "panic_data_bloonchipper_v2.0.5938": PASSED
Force-Relevant-Builds: all
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: I264ad0ffe7afcd507a1e483c6e934a9c4fea47c3
Diffstat (limited to 'common/cbi.c')
-rw-r--r-- | common/cbi.c | 73 |
1 files changed, 39 insertions, 34 deletions
diff --git a/common/cbi.c b/common/cbi.c index e18f15e5a9..26125c902e 100644 --- a/common/cbi.c +++ b/common/cbi.c @@ -1,4 +1,4 @@ -/* Copyright 2018 The Chromium OS Authors. All rights reserved. +/* Copyright 2018 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * @@ -31,8 +31,8 @@ uint8_t cbi_crc8(const struct cbi_header *h) h->total_size - sizeof(h->magic) - sizeof(h->crc)); } -uint8_t *cbi_set_data(uint8_t *p, enum cbi_data_tag tag, - const void *buf, int size) +uint8_t *cbi_set_data(uint8_t *p, enum cbi_data_tag tag, const void *buf, + int size) { struct cbi_data *d = (struct cbi_data *)p; @@ -77,11 +77,11 @@ struct cbi_data *cbi_find_tag(const void *buf, enum cbi_data_tag tag) */ #ifndef HOST_TOOLS_BUILD -#define CPRINTS(format, args...) cprints(CC_SYSTEM, "CBI " format, ## args) +#define CPRINTS(format, args...) cprints(CC_SYSTEM, "CBI " format, ##args) static int cache_status = CBI_CACHE_STATUS_INVALID; static uint8_t cbi[CBI_IMAGE_SIZE]; -static struct cbi_header * const head = (struct cbi_header *)cbi; +static struct cbi_header *const head = (struct cbi_header *)cbi; int cbi_create(void) { @@ -133,21 +133,21 @@ static int do_cbi_read(void) * buffer has practical limitation. */ if (head->total_size < sizeof(*head) || - head->total_size > CBI_IMAGE_SIZE) { + head->total_size > CBI_IMAGE_SIZE) { CPRINTS("Bad size: %d", head->total_size); return EC_ERROR_OVERFLOW; } /* Read the data */ if (cbi_config.drv->load(sizeof(*head), head->data, - head->total_size - sizeof(*head))) { + head->total_size - sizeof(*head))) { CPRINTS("Failed to read body"); return EC_ERROR_INVAL; } /* Check CRC. This supports new fields unknown to this parser. */ if (cbi_config.storage_type != CBI_STORAGE_TYPE_GPIO && - cbi_crc8(head) != head->crc) { + cbi_crc8(head) != head->crc) { CPRINTS("Bad CRC"); return EC_ERROR_INVAL; } @@ -175,8 +175,8 @@ static int cbi_read(void) return rv; } -__attribute__((weak)) -int cbi_board_override(enum cbi_data_tag tag, uint8_t *buf, uint8_t *size) +__attribute__((weak)) int cbi_board_override(enum cbi_data_tag tag, + uint8_t *buf, uint8_t *size) { return EC_SUCCESS; } @@ -294,8 +294,7 @@ int cbi_get_ssfc(uint32_t *ssfc) { uint8_t size = sizeof(*ssfc); - return cbi_get_board_info(CBI_TAG_SSFC, (uint8_t *)ssfc, - &size); + return cbi_get_board_info(CBI_TAG_SSFC, (uint8_t *)ssfc, &size); } int cbi_get_pcb_supplier(uint32_t *pcb_supplier) @@ -303,7 +302,7 @@ int cbi_get_pcb_supplier(uint32_t *pcb_supplier) uint8_t size = sizeof(*pcb_supplier); return cbi_get_board_info(CBI_TAG_PCB_SUPPLIER, (uint8_t *)pcb_supplier, - &size); + &size); } int cbi_get_rework_id(uint64_t *id) @@ -312,6 +311,14 @@ int cbi_get_rework_id(uint64_t *id) return cbi_get_board_info(CBI_TAG_REWORK_ID, (uint8_t *)id, &size); } +int cbi_get_factory_calibration_data(uint32_t *calibration_data) +{ + uint8_t size = sizeof(*calibration_data); + + return cbi_get_board_info(CBI_TAG_FACTORY_CALIBRATION_DATA, + (uint8_t *)calibration_data, &size); +} + static enum ec_status hc_cbi_get(struct host_cmd_handler_args *args) { const struct __ec_align4 ec_params_get_cbi *p = args->params; @@ -326,19 +333,16 @@ static enum ec_status hc_cbi_get(struct host_cmd_handler_args *args) args->response_size = size; return EC_RES_SUCCESS; } -DECLARE_HOST_COMMAND(EC_CMD_GET_CROS_BOARD_INFO, - hc_cbi_get, - EC_VER_MASK(0)); +DECLARE_HOST_COMMAND(EC_CMD_GET_CROS_BOARD_INFO, hc_cbi_get, EC_VER_MASK(0)); -static enum ec_status common_cbi_set(const struct __ec_align4 - ec_params_set_cbi * p) +static enum ec_status +common_cbi_set(const struct __ec_align4 ec_params_set_cbi *p) { /* * If we ultimately cannot write to the flash, then fail early unless * we are explicitly trying to write to the in-memory CBI only */ - if (cbi_config.drv->is_protected() && - !(p->flag & CBI_SET_NO_SYNC)) { + if (cbi_config.drv->is_protected() && !(p->flag & CBI_SET_NO_SYNC)) { CPRINTS("Failed to write due to WP"); return EC_RES_ACCESS_DENIED; } @@ -386,7 +390,7 @@ static enum ec_status common_cbi_set(const struct __ec_align4 static enum ec_status hc_cbi_set(struct host_cmd_handler_args *args) { - const struct __ec_align4 ec_params_set_cbi * p = args->params; + const struct __ec_align4 ec_params_set_cbi *p = args->params; /* Given data size exceeds the packet size. */ if (args->params_size < sizeof(*p) + p->size) @@ -394,12 +398,10 @@ static enum ec_status hc_cbi_set(struct host_cmd_handler_args *args) return common_cbi_set(p); } -DECLARE_HOST_COMMAND(EC_CMD_SET_CROS_BOARD_INFO, - hc_cbi_set, - EC_VER_MASK(0)); +DECLARE_HOST_COMMAND(EC_CMD_SET_CROS_BOARD_INFO, hc_cbi_set, EC_VER_MASK(0)); #ifdef CONFIG_CMD_CBI -static void print_tag(const char * const tag, int rv, const uint32_t *val) +static void print_tag(const char *const tag, int rv, const uint32_t *val) { ccprintf("%s", tag); if (rv == EC_SUCCESS && val) @@ -408,7 +410,7 @@ static void print_tag(const char * const tag, int rv, const uint32_t *val) ccprintf(": (Error %d)\n", rv); } -static void print_uint64_tag(const char * const tag, int rv, +static void print_uint64_tag(const char *const tag, int rv, const uint64_t *lval) { ccprintf("%s", tag); @@ -429,7 +431,8 @@ static void dump_cbi(void) cbi_read(); if (cbi_get_cache_status() != CBI_CACHE_STATUS_SYNCED) { - ccprintf("Cannot Read CBI (Error %d)\n", cbi_get_cache_status()); + ccprintf("Cannot Read CBI (Error %d)\n", + cbi_get_cache_status()); return; } @@ -450,12 +453,12 @@ static void dump_cbi(void) * Space for the set command (does not include data space) plus maximum * possible console input */ -static uint8_t buf[sizeof(struct ec_params_set_cbi) + \ - CONFIG_CONSOLE_INPUT_LINE_SIZE]; +static uint8_t + buf[sizeof(struct ec_params_set_cbi) + CONFIG_CONSOLE_INPUT_LINE_SIZE]; -static int cc_cbi(int argc, char **argv) +static int cc_cbi(int argc, const char **argv) { - struct __ec_align4 ec_params_set_cbi * setter = + struct __ec_align4 ec_params_set_cbi *setter = (struct __ec_align4 ec_params_set_cbi *)buf; int last_arg; char *e; @@ -494,8 +497,9 @@ static int cc_cbi(int argc, char **argv) if (setter->size < 1) { ccprintf("Set size too small\n"); return EC_ERROR_PARAM4; - } else if ((setter->size > 8) || (setter->size > 4 && - setter->tag != CBI_TAG_REWORK_ID)) { + } else if ((setter->size > 8) || + (setter->size > 4 && + setter->tag != CBI_TAG_REWORK_ID)) { ccprintf("Set size too large\n"); return EC_ERROR_PARAM4; } @@ -542,7 +546,8 @@ static int cc_cbi(int argc, char **argv) return EC_ERROR_UNKNOWN; } -DECLARE_CONSOLE_COMMAND(cbi, cc_cbi, "[set <tag> <value> <size> | " +DECLARE_CONSOLE_COMMAND(cbi, cc_cbi, + "[set <tag> <value> <size> | " "remove <tag>] [init | skip_write]", "Print or change Cros Board Info from flash"); #endif /* CONFIG_CMD_CBI */ |