[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