mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-09 03:58:18 -04:00
at91_emac: Write MAC address automatically
tested on cpuat91. Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
This commit is contained in:
parent
cafb14fecb
commit
409943a989
@ -348,14 +348,6 @@ static int at91emac_init(struct eth_device *netdev, bd_t *bd)
|
||||
writel(1 << AT91_ID_EMAC, &pmc->pcer);
|
||||
writel(readl(&emac->ctl) | AT91_EMAC_CTL_CSR, &emac->ctl);
|
||||
|
||||
DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
|
||||
cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))),
|
||||
cpu_to_le32(*((u32 *)netdev->enetaddr)));
|
||||
writel(cpu_to_le32(*((u32 *)netdev->enetaddr)), &emac->sa2l);
|
||||
writel(cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))), &emac->sa2h);
|
||||
DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
|
||||
readl(&emac->sa2h), readl(&emac->sa2l));
|
||||
|
||||
/* Init Ethernet buffers */
|
||||
for (i = 0; i < RBF_FRAMEMAX; i++) {
|
||||
dev->rbfdt[i].addr = (unsigned long) NetRxPackets[i];
|
||||
@ -456,6 +448,25 @@ static int at91emac_recv(struct eth_device *netdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int at91emac_write_hwaddr(struct eth_device *netdev)
|
||||
{
|
||||
emac_device *dev;
|
||||
at91_emac_t *emac;
|
||||
at91_pmc_t *pmc = (at91_pmc_t *) AT91_PMC_BASE;
|
||||
emac = (at91_emac_t *) netdev->iobase;
|
||||
dev = (emac_device *) netdev->priv;
|
||||
|
||||
writel(1 << AT91_ID_EMAC, &pmc->pcer);
|
||||
DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
|
||||
cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))),
|
||||
cpu_to_le32(*((u32 *)netdev->enetaddr)));
|
||||
writel(cpu_to_le32(*((u32 *)netdev->enetaddr)), &emac->sa2l);
|
||||
writel(cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))), &emac->sa2h);
|
||||
DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
|
||||
readl(&emac->sa2h), readl(&emac->sa2l));
|
||||
return 0;
|
||||
}
|
||||
|
||||
int at91emac_register(bd_t *bis, unsigned long iobase)
|
||||
{
|
||||
emac_device *emac;
|
||||
@ -488,6 +499,7 @@ int at91emac_register(bd_t *bis, unsigned long iobase)
|
||||
dev->halt = at91emac_halt;
|
||||
dev->send = at91emac_send;
|
||||
dev->recv = at91emac_recv;
|
||||
dev->write_hwaddr = at91emac_write_hwaddr;
|
||||
|
||||
eth_register(dev);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user