OMAP3: beagle-xm: generate fake USB ethernet MAC address from dieid
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>
This commit is contained in:
		
							parent
							
								
									79e7e87f91
								
							
						
					
					
						commit
						548a64d845
					
				|  | @ -8,6 +8,7 @@ | ||||||
| #ifndef _SYS_PROTO_H_ | #ifndef _SYS_PROTO_H_ | ||||||
| #define _SYS_PROTO_H_ | #define _SYS_PROTO_H_ | ||||||
| #include <linux/mtd/omap_gpmc.h> | #include <linux/mtd/omap_gpmc.h> | ||||||
|  | #include <asm/omap_common.h> | ||||||
| 
 | 
 | ||||||
| typedef struct { | typedef struct { | ||||||
| 	u32 mtype; | 	u32 mtype; | ||||||
|  |  | ||||||
|  | @ -316,6 +316,7 @@ int misc_init_r(void) | ||||||
| 	struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; | 	struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; | ||||||
| 	struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; | 	struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; | ||||||
| 	struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE; | 	struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE; | ||||||
|  | 	bool generate_fake_mac = false; | ||||||
| 
 | 
 | ||||||
| 	/* Enable i2c2 pullup resisters */ | 	/* Enable i2c2 pullup resisters */ | ||||||
| 	writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1); | 	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_VSEL_18, | ||||||
| 					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, | 					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, | ||||||
| 					TWL4030_PM_RECEIVER_DEV_GRP_P1); | 					TWL4030_PM_RECEIVER_DEV_GRP_P1); | ||||||
|  | 		generate_fake_mac = true; | ||||||
| 		break; | 		break; | ||||||
| 	case REVISION_XM_C: | 	case REVISION_XM_C: | ||||||
| 		printf("Beagle xM Rev C\n"); | 		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_VSEL_18, | ||||||
| 					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, | 					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, | ||||||
| 					TWL4030_PM_RECEIVER_DEV_GRP_P1); | 					TWL4030_PM_RECEIVER_DEV_GRP_P1); | ||||||
|  | 		generate_fake_mac = true; | ||||||
| 		break; | 		break; | ||||||
| 	default: | 	default: | ||||||
| 		printf("Beagle unknown 0x%02x\n", get_board_revision()); | 		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_VSEL_18, | ||||||
| 					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, | 					TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, | ||||||
| 					TWL4030_PM_RECEIVER_DEV_GRP_P1); | 					TWL4030_PM_RECEIVER_DEV_GRP_P1); | ||||||
|  | 		generate_fake_mac = true; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	switch (get_expansion_id()) { | 	switch (get_expansion_id()) { | ||||||
|  | @ -486,6 +490,13 @@ int misc_init_r(void) | ||||||
| 	musb_register(&musb_plat, &musb_board_data, (void *)MUSB_BASE); | 	musb_register(&musb_plat, &musb_board_data, (void *)MUSB_BASE); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | 	if (generate_fake_mac) { | ||||||
|  | 		u32 id[4]; | ||||||
|  | 
 | ||||||
|  | 		get_dieid(id); | ||||||
|  | 		usb_fake_mac_from_die_id(id); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue