summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/config.h7
-rw-r--r--include/cros_board_info.h12
2 files changed, 19 insertions, 0 deletions
diff --git a/include/config.h b/include/config.h
index 32ba1b71aa..3136dd18fe 100644
--- a/include/config.h
+++ b/include/config.h
@@ -5167,6 +5167,9 @@
*/
#undef CONFIG_CBI_EEPROM
+/* Define this to support Cros Board Info from GPIO. */
+#undef CONFIG_CBI_GPIO
+
/*****************************************************************************/
/*
* ISH config defaults
@@ -6365,6 +6368,10 @@
"are mutually exclusive. "
#endif /* CONFIG_BOARD_VERSION_CBI && CONFIG_BOARD_VERSION_GPIO */
+#if defined(CONFIG_CBI_EEPROM) && defined(CONFIG_CBI_GPIO)
+#error "CONFIG_CBI_EEPROM and CONFIG_CBI_GPIO are mutually exclusive."
+#endif
+
#if !defined(CONFIG_ZEPHYR) && !defined(CONFIG_ACCELGYRO_ICM_COMM_SPI) && \
!defined(CONFIG_ACCELGYRO_ICM_COMM_I2C)
#ifdef I2C_PORT_ACCEL
diff --git a/include/cros_board_info.h b/include/cros_board_info.h
index 6f2871916e..ee5a717ee5 100644
--- a/include/cros_board_info.h
+++ b/include/cros_board_info.h
@@ -12,7 +12,18 @@
#define CBI_VERSION_MAJOR 0
#define CBI_VERSION_MINOR 0
+
+#ifdef CONFIG_CBI_GPIO
+/*
+ * if CBI is sourced from GPIO, the CBI cache only needs to accomondate
+ * BOARD_VERSION and SKU_ID
+ */
+#define CBI_IMAGE_SIZE (sizeof(struct cbi_header) + (2 * \
+ (sizeof(struct cbi_data) + sizeof(uint32_t))))
+#else
#define CBI_IMAGE_SIZE 256
+#endif
+
static const uint8_t cbi_magic[] = { 0x43, 0x42, 0x49 }; /* 'C' 'B' 'I' */
struct cbi_header {
@@ -48,6 +59,7 @@ enum cbi_cache_status {
enum cbi_storage_type {
CBI_STORAGE_TYPE_EEPROM = 0,
+ CBI_STORAGE_TYPE_GPIO = 1
};
/*