diff mbox

[U-Boot,v2,4/5] arm: ls102xa: Add SystemID EEPROM support for LS1021ATWR board

Message ID 1413530796-12881-4-git-send-email-b18965@freescale.com
State Accepted
Delegated to: York Sun
Headers show

Commit Message

Alison Wang Oct. 17, 2014, 7:26 a.m. UTC
SystemID information could be read through I2C1 from EEPROM
on LS1021ATWR board.

As LS1 is a little-endian processor, getting the version ID by
be32_to_cpu() is wrong. Fix it by using e.version directly.
This change will be compatible for both ARM and PowerPC.

As there is an errata that I2C1 could not work in SD boot,
reading EEPROM through I2C1 is disabled too in SD boot.

Signed-off-by: Alison Wang <alison.wang@freescale.com>
---
Change log:
 v2: Add the compatibility in SD boot.

 board/freescale/common/sys_eeprom.c |  4 ++--
 include/configs/ls1021atwr.h        | 11 +++++++++++
 2 files changed, 13 insertions(+), 2 deletions(-)

Comments

York Sun Nov. 25, 2014, 5:56 p.m. UTC | #1
On 10/17/2014 12:26 AM, Alison Wang wrote:
> SystemID information could be read through I2C1 from EEPROM
> on LS1021ATWR board.
> 
> As LS1 is a little-endian processor, getting the version ID by
> be32_to_cpu() is wrong. Fix it by using e.version directly.
> This change will be compatible for both ARM and PowerPC.
> 
> As there is an errata that I2C1 could not work in SD boot,
> reading EEPROM through I2C1 is disabled too in SD boot.
> 
> Signed-off-by: Alison Wang <alison.wang@freescale.com>
> ---
> Change log:
>  v2: Add the compatibility in SD boot.
> 
>  board/freescale/common/sys_eeprom.c |  4 ++--
>  include/configs/ls1021atwr.h        | 11 +++++++++++
>  2 files changed, 13 insertions(+), 2 deletions(-)
> 


Applied to u-boot-fsl-qoriq master. Awaiting upstream. Thanks.

York
diff mbox

Patch

diff --git a/board/freescale/common/sys_eeprom.c b/board/freescale/common/sys_eeprom.c
index 6144c53..3426b8a 100644
--- a/board/freescale/common/sys_eeprom.c
+++ b/board/freescale/common/sys_eeprom.c
@@ -90,7 +90,7 @@  static void show_eeprom(void)
 	/* EEPROM tag ID, either CCID or NXID */
 #ifdef CONFIG_SYS_I2C_EEPROM_NXID
 	printf("ID: %c%c%c%c v%u\n", e.id[0], e.id[1], e.id[2], e.id[3],
-		be32_to_cpu(e.version));
+	       e.version);
 #else
 	printf("ID: %c%c%c%c\n", e.id[0], e.id[1], e.id[2], e.id[3]);
 #endif
@@ -485,7 +485,7 @@  int mac_read_from_eeprom(void)
 
 #ifdef CONFIG_SYS_I2C_EEPROM_NXID
 	printf("%c%c%c%c v%u\n", e.id[0], e.id[1], e.id[2], e.id[3],
-		be32_to_cpu(e.version));
+	       e.version);
 #else
 	printf("%c%c%c%c\n", e.id[0], e.id[1], e.id[2], e.id[3]);
 #endif
diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
index 2427f2e..1914e3d 100644
--- a/include/configs/ls1021atwr.h
+++ b/include/configs/ls1021atwr.h
@@ -155,6 +155,17 @@ 
 #define CONFIG_SYS_I2C
 #define CONFIG_SYS_I2C_MXC
 
+/* EEPROM */
+#ifndef CONFIG_SD_BOOT
+#define CONFIG_ID_EEPROM
+#define CONFIG_SYS_I2C_EEPROM_NXID
+#define CONFIG_SYS_EEPROM_BUS_NUM		1
+#define CONFIG_SYS_I2C_EEPROM_ADDR		0x53
+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN		1
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS	3
+#define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS	5
+#endif
+
 /*
  * MMC
  */