Skip to content

Commit

Permalink
ARM: omap5-evm: Move MAC creation to misc_init
Browse files Browse the repository at this point in the history
Move the MAC creation from the USB init to an function
that is called on every boot.  This will then populate the
usbethaddr mac that kernel driver can pick up from the
device tree blob.

Signed-off-by: Dan Murphy <[email protected]>
  • Loading branch information
Dan Murphy authored and Marek Vasut committed Oct 20, 2013
1 parent 3d799c7 commit ea02b65
Showing 1 changed file with 20 additions and 19 deletions.
39 changes: 20 additions & 19 deletions board/ti/omap5_uevm/evm.c
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,30 @@ static void enable_host_clocks(void)
*/
int misc_init_r(void)
{
int reg;
uint8_t device_mac[6];

#ifdef CONFIG_PALMAS_POWER
palmas_init_settings();
#endif

if (!getenv("usbethaddr")) {
reg = DIE_ID_REG_BASE + DIE_ID_REG_OFFSET;

/*
* create a fake MAC address from the processor ID code.
* first byte is 0x02 to signify locally administered.
*/
device_mac[0] = 0x02;
device_mac[1] = readl(reg + 0x10) & 0xff;
device_mac[2] = readl(reg + 0xC) & 0xff;
device_mac[3] = readl(reg + 0x8) & 0xff;
device_mac[4] = readl(reg) & 0xff;
device_mac[5] = (readl(reg) >> 8) & 0xff;

eth_setenv_enetaddr("usbethaddr", device_mac);
}

return 0;
}

Expand Down Expand Up @@ -162,28 +182,9 @@ static struct omap_usbhs_board_data usbhs_bdata = {
int ehci_hcd_init(int index, struct ehci_hccr **hccr, struct ehci_hcor **hcor)
{
int ret;
int reg;
uint8_t device_mac[6];

enable_host_clocks();

if (!getenv("usbethaddr")) {
reg = DIE_ID_REG_BASE + DIE_ID_REG_OFFSET;

/*
* create a fake MAC address from the processor ID code.
* first byte is 0x02 to signify locally administered.
*/
device_mac[0] = 0x02;
device_mac[1] = readl(reg + 0x10) & 0xff;
device_mac[2] = readl(reg + 0xC) & 0xff;
device_mac[3] = readl(reg + 0x8) & 0xff;
device_mac[4] = readl(reg) & 0xff;
device_mac[5] = (readl(reg) >> 8) & 0xff;

eth_setenv_enetaddr("usbethaddr", device_mac);
}

ret = omap_ehci_hcd_init(index, &usbhs_bdata, hccr, hcor);
if (ret < 0) {
puts("Failed to initialize ehci\n");
Expand Down

0 comments on commit ea02b65

Please sign in to comment.