#endif
 }
 #endif
+
+#if defined(CFG_I2C_MAC_OFFSET)
+int mac_read_from_eeprom(void)
+{
+       uchar buf[28];
+       char str[18];
+       int i = 0;
+       unsigned int crc = 0;
+       unsigned char enetvar[32];
+
+       /* Read MAC addresses from EEPROM */
+       if (eeprom_read(CFG_I2C_EEPROM_ADDR, CFG_I2C_MAC_OFFSET, buf, 28)) {
+               printf("\nEEPROM @ 0x%02x read FAILED!!!\n",
+                      CFG_I2C_EEPROM_ADDR);
+       } else {
+               if (crc32(crc, buf, 24) == *(unsigned int *)&buf[24]) {
+                       printf("Reading MAC from EEPROM\n");
+                       for (i = 0; i < 4; i++) {
+                               if (memcmp(&buf[i * 6], "\0\0\0\0\0\0", 6)) {
+                                       sprintf(str,
+                                               "%02X:%02X:%02X:%02X:%02X:%02X",
+                                               buf[i * 6], buf[i * 6 + 1],
+                                               buf[i * 6 + 2], buf[i * 6 + 3],
+                                               buf[i * 6 + 4], buf[i * 6 + 5]);
+                                       sprintf((char *)enetvar,
+                                               i ? "eth%daddr" : "ethaddr", i);
+                                       setenv((char *)enetvar, str);
+                               }
+                       }
+               }
+       }
+       return 0;
+}
+#endif                         /* CONFIG_I2C_MAC_OFFSET */
 
 /*
  * Config on-board EEPROM
  */
-#define CFG_I2C_EEPROM_ADDR     0x50
-#define CFG_I2C_EEPROM_ADDR_LEN 2
+#define CFG_I2C_EEPROM_ADDR            0x50
+#define CFG_I2C_EEPROM_ADDR_LEN                2
+#define CFG_EEPROM_PAGE_WRITE_BITS     6
+#define CFG_EEPROM_PAGE_WRITE_DELAY_MS 10
+#define CFG_EEPROM_PAGE_WRITE_ENABLE
 
 /*
  * General PCI
 #define CONFIG_HAS_ETH1                                /* add support for "eth1addr" */
 #define CONFIG_ETH1ADDR        00:04:9f:ef:03:02
 
+/* use mac_read_from_eeprom() to read ethaddr from I2C EEPROM (see CFG_I2C_EEPROM) */
+#define CFG_I2C_MAC_OFFSET     0x7f00  /* MAC address offset in I2C EEPROM */
+
 #define CONFIG_IPADDR          10.0.0.2
 #define CONFIG_SERVERIP                10.0.0.1
 #define CONFIG_GATEWAYIP       10.0.0.1