aboutsummaryrefslogtreecommitdiff
path: root/board/cm_t35
diff options
context:
space:
mode:
authorNikita Kiryanov <nikita@compulab.co.il>2012-05-24 04:01:23 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2012-07-07 14:07:24 +0200
commit2ef6302f8728d52ee4fb3b169be5dc6becae566f (patch)
tree59e1ffe70fb4a555465900e074a4ff1dc50c5336 /board/cm_t35
parent6f3b300c0a324725e468f496f89372388ff5ee66 (diff)
cm-t35: fix legacy board revision representation
Legacy eeprom layout represents the revision number syntactically (i.e. revision 1.00 is written as 0x100). This is inconsistent with the representation in newer layouts, where it is defined semantically (i.e. 0x64). This patch fixes the issue by replacing the syntactic representation with the semantic one. Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il> Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Diffstat (limited to 'board/cm_t35')
-rw-r--r--board/cm_t35/eeprom.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/board/cm_t35/eeprom.c b/board/cm_t35/eeprom.c
index 60538117c..4986b2378 100644
--- a/board/cm_t35/eeprom.c
+++ b/board/cm_t35/eeprom.c
@@ -105,6 +105,7 @@ int cm_t3x_eeprom_read_mac_addr(uchar *buf)
u32 get_board_rev(void)
{
u32 rev = 0;
+ char str[5]; /* Legacy representation can contain at most 4 digits */
uint offset = BOARD_REV_OFFSET_LEGACY;
if (eeprom_setup_layout())
@@ -116,5 +117,14 @@ u32 get_board_rev(void)
if (cm_t3x_eeprom_read(offset, (uchar *)&rev, BOARD_REV_SIZE))
return 0;
+ /*
+ * Convert legacy syntactic representation to semantic
+ * representation. i.e. for rev 1.00: 0x100 --> 0x64
+ */
+ if (eeprom_layout == LAYOUT_LEGACY) {
+ sprintf(str, "%x", rev);
+ rev = simple_strtoul(str, NULL, 10);
+ }
+
return rev;
};