[coreboot-gerrit] Change in coreboot[master]: ec/google/chromeec: Update google_chromeec_get_board_version prototype
Karthik Ramasubramanian (Code Review)
gerrit at coreboot.org
Tue Sep 11 21:17:37 CEST 2018
Karthik Ramasubramanian has uploaded this change for review. ( https://review.coreboot.org/28576
Change subject: ec/google/chromeec: Update google_chromeec_get_board_version prototype
......................................................................
ec/google/chromeec: Update google_chromeec_get_board_version prototype
The helper function to get the board version from EC returns 0 on
failure. But 0 is also a valid board version. Update the helper function
to return -1 on failure and update the use-cases.
BUG=b:114001972,b:114677884,b:114677887
Change-Id: I93e8dbce2ff26e76504b132055985f53cbf07d31
Signed-off-by: Karthikeyan Ramasubramanian <kramasub at google.com>
Tested-by: Karthikeyan Ramasubramanian <kramasub at google.com>
---
M src/ec/google/chromeec/ec.c
M src/ec/google/chromeec/ec.h
M src/ec/google/chromeec/ec_boardid.c
M src/mainboard/google/link/mainboard.c
M src/mainboard/google/slippy/onboard.h
M src/mainboard/google/slippy/variants/peppy/romstage.c
M src/mainboard/google/zoombini/boardid.c
M src/mainboard/google/zoombini/variants/baseboard/boardid.c
M src/mainboard/google/zoombini/variants/baseboard/include/baseboard/variants.h
M src/mainboard/intel/glkrvp/variants/baseboard/boardid.c
M src/mainboard/intel/glkrvp/variants/baseboard/include/baseboard/variants.h
11 files changed, 29 insertions(+), 11 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/76/28576/1
diff --git a/src/ec/google/chromeec/ec.c b/src/ec/google/chromeec/ec.c
index 449eaf3..24a597d 100644
--- a/src/ec/google/chromeec/ec.c
+++ b/src/ec/google/chromeec/ec.c
@@ -633,10 +633,11 @@
}
#ifndef __SMM__
-u16 google_chromeec_get_board_version(void)
+int google_chromeec_get_board_version(void)
{
struct chromeec_command cmd;
struct ec_response_board_version board_v;
+ int rv;
cmd.cmd_code = EC_CMD_GET_BOARD_VERSION;
cmd.cmd_version = 0;
@@ -645,8 +646,9 @@
cmd.cmd_data_out = &board_v;
cmd.cmd_dev_index = 0;
- if (google_chromeec_command(&cmd) != 0)
- return 0;
+ rv = google_chromeec_command(&cmd);
+ if (rv)
+ return -1;
return board_v.board_version;
}
diff --git a/src/ec/google/chromeec/ec.h b/src/ec/google/chromeec/ec.h
index 2c6f1d6..6a63b14 100644
--- a/src/ec/google/chromeec/ec.h
+++ b/src/ec/google/chromeec/ec.h
@@ -46,7 +46,15 @@
int google_chromeec_check_feature(int feature);
uint8_t google_chromeec_calc_checksum(const uint8_t *data, int size);
-u16 google_chromeec_get_board_version(void);
+
+/**
+ * google_chromeec_get_board_version() - Get the board version
+ *
+ * Return: non-negative board version on success, -1 on failure.
+ *
+ * This function is used to get the board version information from EC.
+ */
+int google_chromeec_get_board_version(void);
u32 google_chromeec_get_sku_id(void);
int google_chromeec_set_sku_id(u32 skuid);
uint64_t google_chromeec_get_events_b(void);
diff --git a/src/ec/google/chromeec/ec_boardid.c b/src/ec/google/chromeec/ec_boardid.c
index 9ec058d..09e7f99 100644
--- a/src/ec/google/chromeec/ec_boardid.c
+++ b/src/ec/google/chromeec/ec_boardid.c
@@ -19,9 +19,12 @@
uint32_t board_id(void)
{
MAYBE_STATIC int id = -1;
+ MAYBE_STATIC bool done_once = false;
- if (id < 0)
+ if (!done_once) {
id = google_chromeec_get_board_version();
+ done_once = true;
+ }
return id;
}
diff --git a/src/mainboard/google/link/mainboard.c b/src/mainboard/google/link/mainboard.c
index 91b7e59..a5a9e05 100644
--- a/src/mainboard/google/link/mainboard.c
+++ b/src/mainboard/google/link/mainboard.c
@@ -144,7 +144,7 @@
/* Initialize the Embedded Controller */
link_ec_init();
- if (google_chromeec_get_board_version() == 0) {
+ if (google_chromeec_get_board_version() <= 0) {
/* If running on proto1 - enable reversion of gpio11. */
u32 gpio_inv;
u16 gpio_base = pci_read_config16
diff --git a/src/mainboard/google/slippy/onboard.h b/src/mainboard/google/slippy/onboard.h
index 9e1dc8b..cd48f6b 100644
--- a/src/mainboard/google/slippy/onboard.h
+++ b/src/mainboard/google/slippy/onboard.h
@@ -33,6 +33,7 @@
#define BOARD_TOUCHSCREEN_I2C_BUS 2 /* I2C1 */
#define BOARD_TOUCHSCREEN_I2C_ADDR 0x4a
+#define PEPPY_BOARD_VERSION_UNKNOWN -1
#define PEPPY_BOARD_VERSION_PROTO 0
#define PEPPY_BOARD_VERSION_EVT 1
diff --git a/src/mainboard/google/slippy/variants/peppy/romstage.c b/src/mainboard/google/slippy/variants/peppy/romstage.c
index bf21cbc..6447174 100644
--- a/src/mainboard/google/slippy/variants/peppy/romstage.c
+++ b/src/mainboard/google/slippy/variants/peppy/romstage.c
@@ -96,6 +96,7 @@
memcpy(peid->spd_data[0], spd_file + (spd_index * spd_len), spd_len);
switch (google_chromeec_get_board_version()) {
+ case PEPPY_BOARD_VERSION_UNKNOWN:
case PEPPY_BOARD_VERSION_PROTO:
/* Index 0 is 2GB config with CH0 only. */
if (spd_index == 0)
diff --git a/src/mainboard/google/zoombini/boardid.c b/src/mainboard/google/zoombini/boardid.c
index 4b05c52..4f39444 100644
--- a/src/mainboard/google/zoombini/boardid.c
+++ b/src/mainboard/google/zoombini/boardid.c
@@ -20,9 +20,12 @@
uint32_t board_id(void)
{
MAYBE_STATIC int id = -1;
+ MAYBE_STATIC bool done_once = false;
- if (id < 0)
+ if (!done_once) {
id = variant_board_id();
+ done_once = true;
+ }
return id;
}
diff --git a/src/mainboard/google/zoombini/variants/baseboard/boardid.c b/src/mainboard/google/zoombini/variants/baseboard/boardid.c
index c8a5cf1..ad7e3ad 100644
--- a/src/mainboard/google/zoombini/variants/baseboard/boardid.c
+++ b/src/mainboard/google/zoombini/variants/baseboard/boardid.c
@@ -17,7 +17,7 @@
#include <compiler.h>
#include <ec/google/chromeec/ec.h>
-uint8_t __weak variant_board_id(void)
+int __weak variant_board_id(void)
{
return google_chromeec_get_board_version();
}
diff --git a/src/mainboard/google/zoombini/variants/baseboard/include/baseboard/variants.h b/src/mainboard/google/zoombini/variants/baseboard/include/baseboard/variants.h
index eac0fee..e8c7c20 100644
--- a/src/mainboard/google/zoombini/variants/baseboard/include/baseboard/variants.h
+++ b/src/mainboard/google/zoombini/variants/baseboard/include/baseboard/variants.h
@@ -23,7 +23,7 @@
#include <vendorcode/google/chromeos/chromeos.h>
/* Return the board id for the current variant board. */
-uint8_t variant_board_id(void);
+int variant_board_id(void);
/*
* The next set of functions return the gpio table and fill in the number of
diff --git a/src/mainboard/intel/glkrvp/variants/baseboard/boardid.c b/src/mainboard/intel/glkrvp/variants/baseboard/boardid.c
index 530c06a..1aac275 100644
--- a/src/mainboard/intel/glkrvp/variants/baseboard/boardid.c
+++ b/src/mainboard/intel/glkrvp/variants/baseboard/boardid.c
@@ -17,7 +17,7 @@
#include <compiler.h>
#include <ec/google/chromeec/ec.h>
-uint8_t __weak variant_board_id(void)
+int __weak variant_board_id(void)
{
if (IS_ENABLED(CONFIG_EC_GOOGLE_CHROMEEC))
return google_chromeec_get_board_version();
diff --git a/src/mainboard/intel/glkrvp/variants/baseboard/include/baseboard/variants.h b/src/mainboard/intel/glkrvp/variants/baseboard/include/baseboard/variants.h
index c278cde..4ed7a73 100644
--- a/src/mainboard/intel/glkrvp/variants/baseboard/include/baseboard/variants.h
+++ b/src/mainboard/intel/glkrvp/variants/baseboard/include/baseboard/variants.h
@@ -22,7 +22,7 @@
#include <vendorcode/google/chromeos/chromeos.h>
/* Return the board id for the current variant board. */
-uint8_t variant_board_id(void);
+int variant_board_id(void);
/* The next set of functions return the gpio table and fill in the number of
* entries for each table. */
--
To view, visit https://review.coreboot.org/28576
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I93e8dbce2ff26e76504b132055985f53cbf07d31
Gerrit-Change-Number: 28576
Gerrit-PatchSet: 1
Gerrit-Owner: Karthik Ramasubramanian <kramasub at google.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180911/fff83b40/attachment-0001.html>
More information about the coreboot-gerrit
mailing list