aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/id.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index 4e95378dc17..181c667e62a 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -18,6 +18,7 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/io.h>
+#include <linux/etherdevice.h>
#include <asm/cputype.h>
@@ -34,6 +35,9 @@ u32 omap_features;
static void __init omap3_cpuinfo(void);
+static char *cpuidmac;
+module_param(cpuidmac, charp, 0644);
+
unsigned int omap_rev(void)
{
return omap_revision;
@@ -586,6 +590,15 @@ void omap2_die_id_to_ethernet_mac(u8 *mac, int subtype)
pr_info(" ID: %08X %08X %08X %08X %08X\n", tap,
odi.id_0, odi.id_1, odi.id_2, odi.id_3);
+ if (cpuidmac)
+ if (!eth_scan_mac(cpuidmac, mac)) {
+ mac[1] &= ~0xc0;
+ pr_info("cpuidmac <- %02x:%02x:%02x:%02x:%02x:%02x\n",
+ mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
+ return;
+ } else
+ pr_info("cpuidmac failed to parse mac %s\n", cpuidmac);
+
mac[0] = odi.id_2;
mac[1] = odi.id_2 >> 8;
mac[2] = odi.id_1;