summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCooper Jr., Franklin <fcooper@ti.com>2017-06-16 17:25:08 -0500
committerTom Rini <trini@konsulko.com>2017-07-10 14:25:53 -0400
commit69e8d4ba7f183fcde32ffff1f3136cd10c30dda9 (patch)
tree5696d7246dc343159c6690b8a8949db0e257520f
parent2059ecf30f389ec0e396fccc067f6f9fecb36a2c (diff)
downloadu-boot-69e8d4ba7f183fcde32ffff1f3136cd10c30dda9.tar.gz
u-boot-69e8d4ba7f183fcde32ffff1f3136cd10c30dda9.tar.xz
u-boot-69e8d4ba7f183fcde32ffff1f3136cd10c30dda9.zip
ti: common: board_detect: Add function to determine if EEPROM was read
When the EEPROM is first read its contents are stored in memory as a cache to avoid further I2C operations. To determine if the EEPROM was previously read the easiest way is to check the memory to see if the EEPROM's magic header value is set. Create a new function that can determine if the EEPROM was previously read or not without having to perform a I2C transaction. Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r--board/ti/common/board_detect.c10
-rw-r--r--board/ti/common/board_detect.h9
2 files changed, 19 insertions, 0 deletions
diff --git a/board/ti/common/board_detect.c b/board/ti/common/board_detect.c
index bf594cb1ab..1da5ace923 100644
--- a/board/ti/common/board_detect.c
+++ b/board/ti/common/board_detect.c
@@ -457,3 +457,13 @@ void board_ti_set_ethaddr(int index)
}
}
}
+
+bool __maybe_unused board_ti_was_eeprom_read(void)
+{
+ struct ti_common_eeprom *ep = TI_EEPROM_DATA;
+
+ if (ep->header == TI_EEPROM_HEADER_MAGIC)
+ return true;
+ else
+ return false;
+}
diff --git a/board/ti/common/board_detect.h b/board/ti/common/board_detect.h
index e8d94844a7..893e1ed998 100644
--- a/board/ti/common/board_detect.h
+++ b/board/ti/common/board_detect.h
@@ -206,6 +206,15 @@ void set_board_info_env(char *name);
void board_ti_set_ethaddr(int index);
/**
+ * board_ti_was_eeprom_read() - Check to see if the eeprom contents have been read
+ *
+ * This function is useful to determine if the eeprom has already been read and
+ * its contents have already been loaded into memory. It utiltzes the magic
+ * number that the header value is set to upon successful eeprom read.
+ */
+bool board_ti_was_eeprom_read(void);
+
+/**
* ti_i2c_eeprom_am_set() - Setup the eeprom data with predefined values
* @name: Name of the board
* @rev: Revision of the board