mirror of
https://github.com/u-boot/u-boot.git
synced 2024-12-05 02:23:31 +08:00
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: Tim Harvey <tharvey@gateworks.com>
This commit is contained in:
parent
5a08ad6fdc
commit
5c34c2abb8
@ -995,6 +995,32 @@ int fdt_fixup_gw16082(void *blob, int np, struct pci_dev *dev)
|
|||||||
return 0;
|
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
|
* 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
|
* 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)
|
if (np > 0)
|
||||||
fdt_fixup_gw16082(blob, np, dev);
|
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) */
|
#endif /* if defined(CONFIG_CMD_PCI) */
|
||||||
|
Loading…
Reference in New Issue
Block a user