summaryrefslogtreecommitdiff
path: root/common/cbi.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/cbi.c')
-rw-r--r--common/cbi.c73
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 */