@@ -41,6 +41,8 @@
#include <asm/arch/sys_proto.h>
#include <asm/mach-types.h>
+#include "eeprom.h"
+
DECLARE_GLOBAL_DATA_PTR;
const omap3_sysinfo sysinfo = {
@@ -382,11 +384,9 @@ static int handle_mac_address(void)
if (rc)
return 0;
-#ifdef CONFIG_DRIVER_OMAP34XX_I2C
- rc = i2c_read(0x50, 0, 1, enetaddr, 6);
+ rc = cm_t3x_eeprom_read_mac_addr(enetaddr);
if (rc)
return rc;
-#endif
if (!is_valid_ether_addr(enetaddr))
return -1;
@@ -31,6 +31,8 @@
#define BOARD_REV_OFFSET_LEGACY 6
#define BOARD_REV_SIZE 4
#define BOARD_REV_SIZE_LEGACY 2
+#define MAC_ADDR_OFFSET 4
+#define MAC_ADDR_OFFSET_LEGACY 0
#define LAYOUT_INVALID 0
#define LAYOUT_LEGACY 0xff
@@ -83,6 +85,22 @@ void get_board_serial(struct tag_serialnr *serialnr)
}
/*
+ * Routine: cm_t3x_eeprom_read_mac_addr
+ * Description: read mac address and store it in buf.
+ */
+int cm_t3x_eeprom_read_mac_addr(uchar *buf)
+{
+ uint offset;
+
+ if (eeprom_setup_layout())
+ return 0;
+
+ offset = (eeprom_layout != LAYOUT_LEGACY) ?
+ MAC_ADDR_OFFSET : MAC_ADDR_OFFSET_LEGACY;
+ return cm_t3x_eeprom_read(offset, buf, 6);
+}
+
+/*
* Routine: get_board_rev
* Description: read system revision
*/
@@ -23,7 +23,9 @@
#include <common.h>
-#ifndef CONFIG_DRIVER_OMAP34XX_I2C
+#ifdef CONFIG_DRIVER_OMAP34XX_I2C
+int cm_t3x_eeprom_read_mac_addr(uchar *buf);
+#else
void get_board_serial(struct tag_serialnr *serialnr)
{
/*
@@ -33,6 +35,11 @@ void get_board_serial(struct tag_serialnr *serialnr)
serialnr->low = 0;
serialnr->high = 0;
};
+
+int cm_t3x_eeprom_read_mac_addr(uchar *buf)
+{
+ return 1;
+}
#endif /* CONFIG_DRIVER_OMAP34XX_I2C */
#endif