From: Nikita Kiryanov <[email protected]>

Read revision from EEPROM and pass it to Linux.

Signed-off-by: Nikita Kiryanov <[email protected]>
Signed-off-by: Igor Grinberg <[email protected]>
---
 board/cm_t35/eeprom.c |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/board/cm_t35/eeprom.c b/board/cm_t35/eeprom.c
index 3bd7751..8386d18 100644
--- a/board/cm_t35/eeprom.c
+++ b/board/cm_t35/eeprom.c
@@ -27,6 +27,10 @@
 #define EEPROM_LAYOUT_VER_OFFSET       44
 #define BOARD_SERIAL_OFFSET            20
 #define BOARD_SERIAL_OFFSET_LEGACY     8
+#define BOARD_REV_OFFSET               0
+#define BOARD_REV_OFFSET_LEGACY                6
+#define BOARD_REV_SIZE                 4
+#define BOARD_REV_SIZE_LEGACY          2
 
 #define LAYOUT_INVALID 0
 #define LAYOUT_LEGACY  0xff
@@ -77,3 +81,27 @@ void get_board_serial(struct tag_serialnr *serialnr)
                serialnr->high = serial[1];
        }
 }
+
+/*
+ * Routine: get_board_rev
+ * Description: read system revision
+ */
+u32 get_board_rev(void)
+{
+       u32 rev = 0;
+       uint offset = BOARD_REV_OFFSET_LEGACY;
+       int len = BOARD_REV_SIZE_LEGACY;
+
+       if (eeprom_setup_layout())
+               return 0;
+
+       if (eeprom_layout != LAYOUT_LEGACY) {
+               offset = BOARD_REV_OFFSET;
+               len = BOARD_REV_SIZE;
+       }
+
+       if (cm_t3x_eeprom_read(offset, (uchar *)&rev, len))
+               return 0;
+
+       return rev;
+};
-- 
1.7.3.4

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to