public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v1 1/8] OMAP3: tam3517: add function to read MAC from EEPROM
@ 2012-08-28  7:46 Stefano Babic
  2012-08-28  7:46 ` [U-Boot] [PATCH v1 2/8] OMAP3: twister : get MAC address " Stefano Babic
                   ` (8 more replies)
  0 siblings, 9 replies; 42+ messages in thread
From: Stefano Babic @ 2012-08-28  7:46 UTC (permalink / raw)
  To: u-boot

The manufacturer delivers the TAM3517 SOM with 4 MAC address.
They are stored on the EEPROM of the SOM. The patch adds a
function to get their values and set the ethaddr variables.


Signed-off-by: Stefano Babic <sbabic@denx.de>
---
 include/configs/tam3517-common.h |   66 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/include/configs/tam3517-common.h b/include/configs/tam3517-common.h
index 24f6f7e..51503da 100644
--- a/include/configs/tam3517-common.h
+++ b/include/configs/tam3517-common.h
@@ -125,6 +125,7 @@
 #define CONFIG_CMD_NAND		/* NAND support			*/
 #define CONFIG_CMD_PING
 #define CONFIG_CMD_USB
+#define CONFIG_CMD_EEPROM
 
 #undef CONFIG_CMD_FLASH		/* only NAND on the SOM */
 #undef CONFIG_CMD_IMLS
@@ -135,6 +136,9 @@
 #define CONFIG_SYS_I2C_SLAVE		1
 #define CONFIG_SYS_I2C_BUS		0
 #define CONFIG_SYS_I2C_BUS_SELECT	1
+#define CONFIG_SYS_I2C_EEPROM_ADDR	0x50		/* base address */
+#define CONFIG_SYS_I2C_EEPROM_ADDR_LEN	1		/* bytes of address */
+#define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW	0x07
 #define CONFIG_DRIVER_OMAP34XX_I2C
 
 
@@ -354,4 +358,66 @@
 		"fi;"							\
 		"else echo U-Boot not downloaded..exiting;fi\0"		\
 
+
+/*
+ * this is common code for all TAM3517 boards.
+ * MAC address is stored from manufacturer in
+ * I2C EEPROM
+ */
+#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__))
+
+/*
+ * The I2C EEPROM on the TAM3517 contains
+ * mac address and production data
+ */
+struct tam3517_module_info {
+	char customer[48];
+	char product[48];
+
+	/*
+	 * bit 0~47  : sequence number
+	 * bit 48~55 : week of year, from 0.
+	 * bit 56~63 : year
+	 */
+	unsigned long long sequence_number;
+
+	/*
+	 * bit 0~7   : revision fixed
+	 * bit 8~15  : revision major
+	 * bit 16~31 : TNxxx
+	 */
+	unsigned int revision;
+	unsigned char eth_addr[4][8];
+	unsigned char _rev[100];
+};
+
+#define TAM3517_READ_MAC_FROM_EEPROM	\
+do {					\
+	struct tam3517_module_info info;\
+	char buf[80], ethname[20];	\
+	int i;				\
+	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);	\
+	if (eeprom_read(CONFIG_SYS_I2C_EEPROM_ADDR, 0,		\
+			(void *)&info, sizeof(info)))		\
+		break;						\
+	memset(buf, 0, sizeof(buf));				\
+	for (i = 0 ; i < ARRAY_SIZE(info.eth_addr); i++) {	\
+		sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X",	\
+			info.eth_addr[i][5],			\
+			info.eth_addr[i][4],			\
+			info.eth_addr[i][3],			\
+			info.eth_addr[i][2],			\
+			info.eth_addr[i][1],			\
+			info.eth_addr[i][0]);			\
+								\
+		if (i)						\
+			sprintf(ethname, "eth%daddr", i);	\
+		else						\
+			sprintf(ethname, "ethaddr");		\
+		printf("Setting %s from EEPROM with %s\n", ethname, buf);\
+		setenv(ethname, buf);				\
+	}							\
+} while (0)
+#endif
+
 #endif /* __TAM3517_H */
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2012-08-31 23:07 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-28  7:46 [U-Boot] [PATCH v1 1/8] OMAP3: tam3517: add function to read MAC from EEPROM Stefano Babic
2012-08-28  7:46 ` [U-Boot] [PATCH v1 2/8] OMAP3: twister : get MAC address " Stefano Babic
2012-08-28  7:46 ` [U-Boot] [PATCH v1 3/8] OMAP3: mt_ventoux: Correct board pinmux Stefano Babic
2012-08-28  7:46 ` [U-Boot] [PATCH v1 4/8] OMAP3: mt_ventoux: activate GPIO4 Stefano Babic
2012-08-28  7:46 ` [U-Boot] [PATCH v1 5/8] OMAP3: mt_ventoux: read MAC address from EEPROM Stefano Babic
2012-08-28  7:46 ` [U-Boot] [PATCH v1 6/8] OMAP3: mt_ventoux: disable the buzzer at start-up Stefano Babic
2012-08-28  7:46 ` [U-Boot] [PATCH v1 7/8] video: drop duplicate set of DISPC_CONFIG register Stefano Babic
2012-08-28 10:40   ` Jeroen Hofstee
2012-08-28 10:59     ` Stefano Babic
2012-08-28  7:46 ` [U-Boot] [PATCH v1 8/8] OMAP3: mt_ventoux: added video support Stefano Babic
2012-08-28  8:11   ` Heiko Schocher
2012-08-28  8:28     ` Stefano Babic
2012-08-28  8:47       ` Jeroen Hofstee
2012-08-28 11:05         ` Stefano Babic
2012-08-28 12:21 ` [U-Boot] [PATCH v2 0/9] This patchset updates boards based on the TAM3517 SOM Stefano Babic
2012-08-28 12:21   ` [U-Boot] [PATCH v2 1/9] OMAP3: tam3517: add function to read MAC from EEPROM Stefano Babic
2012-08-28 12:21   ` [U-Boot] [PATCH v2 2/9] OMAP3: twister : get MAC address " Stefano Babic
2012-08-28 12:21   ` [U-Boot] [PATCH v2 3/9] OMAP3: mt_ventoux: Correct board pinmux Stefano Babic
2012-08-28 12:21   ` [U-Boot] [PATCH v2 4/9] OMAP3: mt_ventoux: activate GPIO4 Stefano Babic
2012-08-28 12:21   ` [U-Boot] [PATCH v2 5/9] OMAP3: mt_ventoux: read MAC address from EEPROM Stefano Babic
2012-08-28 12:21   ` [U-Boot] [PATCH v2 6/9] OMAP3: mt_ventoux: disable the buzzer at start-up Stefano Babic
2012-08-28 12:21   ` [U-Boot] [PATCH v2 7/9] video: drop duplicate set of DISPC_CONFIG register Stefano Babic
2012-08-28 20:49     ` Jeroen Hofstee
2012-08-28 12:21   ` [U-Boot] [PATCH v2 8/9] OMAP3: video: add macros to set display parameters Stefano Babic
2012-08-28 14:01     ` Heiko Schocher
2012-08-28 22:22     ` Jeroen Hofstee
2012-08-28 22:29       ` Tom Rini
2012-08-29  7:40         ` Stefano Babic
2012-08-28 12:21   ` [U-Boot] [PATCH v2 9/9] OMAP3: mt_ventoux: added video support Stefano Babic
2012-08-29 11:21 ` [U-Boot] [PATCH v3 0/9] This patchset updates boards based on the TAM3517 SOM Stefano Babic
2012-08-29 11:21   ` [U-Boot] [PATCH v3 1/9] OMAP3: tam3517: add function to read MAC from EEPROM Stefano Babic
2012-08-29 11:22   ` [U-Boot] [PATCH v3 2/9] OMAP3: twister : get MAC address " Stefano Babic
2012-08-29 11:22   ` [U-Boot] [PATCH v3 3/9] OMAP3: mt_ventoux: Correct board pinmux Stefano Babic
2012-08-29 11:22   ` [U-Boot] [PATCH v3 4/9] OMAP3: mt_ventoux: activate GPIO4 Stefano Babic
2012-08-29 11:22   ` [U-Boot] [PATCH v3 5/9] OMAP3: mt_ventoux: read MAC address from EEPROM Stefano Babic
2012-08-29 11:22   ` [U-Boot] [PATCH v3 6/9] OMAP3: mt_ventoux: disable the buzzer at start-up Stefano Babic
2012-08-29 11:22   ` [U-Boot] [PATCH v3 7/9] video: drop duplicate set of DISPC_CONFIG register Stefano Babic
2012-08-29 11:22   ` [U-Boot] [PATCH v3 8/9] OMAP3: video: add macros to set display parameters Stefano Babic
2012-08-29 11:22   ` [U-Boot] [PATCH v3 9/9] OMAP3: mt_ventoux: added video support Stefano Babic
2012-08-29 15:13   ` [U-Boot] [PATCH v3 0/9] This patchset updates boards based on the TAM3517 SOM Tom Rini
2012-08-31 23:07     ` Tom Rini
2012-08-29 16:28   ` Tom Rini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox