提交 5c34c2ab 编写于 作者: T Tim Harvey 提交者: Stefano Babic

imx: ventana: add dt fixup for eth1 mac-address

Ventana boards with a PCI Marvell Sky2 GigE MAC require the MAC address to
be placed in a DT node in order for the mainline linux driver to obtain it.
Signed-off-by: NTim Harvey <tharvey@gateworks.com>
上级 5a08ad6f
......@@ -995,6 +995,32 @@ int fdt_fixup_gw16082(void *blob, int np, struct pci_dev *dev)
return 0;
}
/* The sky2 GigE MAC obtains it's MAC addr from device-tree by default */
int fdt_fixup_sky2(void *blob, int np, struct pci_dev *dev)
{
char *tmp, *end;
char mac[16];
unsigned char mac_addr[6];
int j;
sprintf(mac, "eth1addr");
tmp = getenv(mac);
if (tmp) {
for (j = 0; j < 6; j++) {
mac_addr[j] = tmp ?
simple_strtoul(tmp, &end,16) : 0;
if (tmp)
tmp = (*end) ? end+1 : end;
}
fdt_setprop(blob, np, "local-mac-address", mac_addr,
sizeof(mac_addr));
printf(" Added mac addr for eth1\n");
return 0;
}
return -1;
}
/*
* PCI DT nodes must be nested therefore if we need to apply a DT fixup
* we will walk the PCI bus and add bridge nodes up to the device receiving
......@@ -1021,6 +1047,15 @@ void ft_board_pci_fixup(void *blob, bd_t *bd)
if (np > 0)
fdt_fixup_gw16082(blob, np, dev);
}
/* ethernet1 mac address */
else if ((dev->vendor == PCI_VENDOR_ID_MARVELL) &&
(dev->device == 0x4380))
{
np = fdt_add_pci_path(blob, dev);
if (np > 0)
fdt_fixup_sky2(blob, np, dev);
}
}
}
#endif /* if defined(CONFIG_CMD_PCI) */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册