|
@@ -936,13 +936,18 @@ void native_machine_restart(char *cmd)
|
|
|
bfin_gpio_reset_spi0_ssel1();
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * Currently the MAC address is saved in Flash by U-Boot
|
|
|
- */
|
|
|
-#define FLASH_MAC 0x203f0000
|
|
|
void bfin_get_ether_addr(char *addr)
|
|
|
{
|
|
|
- *(u32 *)(&(addr[0])) = bfin_read32(FLASH_MAC);
|
|
|
- *(u16 *)(&(addr[4])) = bfin_read16(FLASH_MAC + 4);
|
|
|
+ /* the MAC is stored in OTP memory page 0xDF */
|
|
|
+ u32 ret;
|
|
|
+ u64 otp_mac;
|
|
|
+ u32 (*otp_read)(u32 page, u32 flags, u64 *page_content) = (void *)0xEF00001A;
|
|
|
+
|
|
|
+ ret = otp_read(0xDF, 0x00, &otp_mac);
|
|
|
+ if (!(ret & 0x1)) {
|
|
|
+ char *otp_mac_p = (char *)&otp_mac;
|
|
|
+ for (ret = 0; ret < 6; ++ret)
|
|
|
+ addr[ret] = otp_mac_p[5 - ret];
|
|
|
+ }
|
|
|
}
|
|
|
EXPORT_SYMBOL(bfin_get_ether_addr);
|