OMAP3: beagle-xm: generate fake USB ethernet MAC address from dieid
authorNishanth Menon <nm@ti.com>
Fri, 28 Mar 2014 16:00:06 +0000 (11:00 -0500)
committerTom Rini <trini@ti.com>
Thu, 17 Apr 2014 18:39:54 +0000 (14:39 -0400)
Similar to OMAP5uEVM, PandaBoard, BeagleBoard-XM has a USB based
ethernet without MAC address embedded. So fake a MAC address following
the similar strategy used on OMAP5 and PandaBoard family.

Signed-off-by: Nishanth Menon <nm@ti.com>
arch/arm/include/asm/arch-omap3/sys_proto.h
board/ti/beagle/beagle.c

index 75bf314fb73245ec4a4b316b5691f813ce2ed176..5866bf23e8d2a003515cf0e1637c1c27e2e66a40 100644 (file)
@@ -8,6 +8,7 @@
 #ifndef _SYS_PROTO_H_
 #define _SYS_PROTO_H_
 #include <linux/mtd/omap_gpmc.h>
+#include <asm/omap_common.h>
 
 typedef struct {
        u32 mtype;
index 9669a32fc13b8d122c4e51067dbbbbcf23f5fe86..0674afdc0946b0311081525a87d6441a121f8e30 100644 (file)
@@ -316,6 +316,7 @@ int misc_init_r(void)
        struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE;
        struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE;
        struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE;
+       bool generate_fake_mac = false;
 
        /* Enable i2c2 pullup resisters */
        writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1);
@@ -349,6 +350,7 @@ int misc_init_r(void)
                                        TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
                                        TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
                                        TWL4030_PM_RECEIVER_DEV_GRP_P1);
+               generate_fake_mac = true;
                break;
        case REVISION_XM_C:
                printf("Beagle xM Rev C\n");
@@ -359,6 +361,7 @@ int misc_init_r(void)
                                        TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
                                        TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
                                        TWL4030_PM_RECEIVER_DEV_GRP_P1);
+               generate_fake_mac = true;
                break;
        default:
                printf("Beagle unknown 0x%02x\n", get_board_revision());
@@ -368,6 +371,7 @@ int misc_init_r(void)
                                        TWL4030_PM_RECEIVER_VAUX2_VSEL_18,
                                        TWL4030_PM_RECEIVER_VAUX2_DEV_GRP,
                                        TWL4030_PM_RECEIVER_DEV_GRP_P1);
+               generate_fake_mac = true;
        }
 
        switch (get_expansion_id()) {
@@ -486,6 +490,13 @@ int misc_init_r(void)
        musb_register(&musb_plat, &musb_board_data, (void *)MUSB_BASE);
 #endif
 
+       if (generate_fake_mac) {
+               u32 id[4];
+
+               get_dieid(id);
+               usb_fake_mac_from_die_id(id);
+       }
+
        return 0;
 }