mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-10 04:26:19 -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(1 << AT91_ID_EMAC, &pmc->pcer);
|
||||||
writel(readl(&emac->ctl) | AT91_EMAC_CTL_CSR, &emac->ctl);
|
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 */
|
/* Init Ethernet buffers */
|
||||||
for (i = 0; i < RBF_FRAMEMAX; i++) {
|
for (i = 0; i < RBF_FRAMEMAX; i++) {
|
||||||
dev->rbfdt[i].addr = (unsigned long) NetRxPackets[i];
|
dev->rbfdt[i].addr = (unsigned long) NetRxPackets[i];
|
||||||
@ -456,6 +448,25 @@ static int at91emac_recv(struct eth_device *netdev)
|
|||||||
return 0;
|
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)
|
int at91emac_register(bd_t *bis, unsigned long iobase)
|
||||||
{
|
{
|
||||||
emac_device *emac;
|
emac_device *emac;
|
||||||
@ -488,6 +499,7 @@ int at91emac_register(bd_t *bis, unsigned long iobase)
|
|||||||
dev->halt = at91emac_halt;
|
dev->halt = at91emac_halt;
|
||||||
dev->send = at91emac_send;
|
dev->send = at91emac_send;
|
||||||
dev->recv = at91emac_recv;
|
dev->recv = at91emac_recv;
|
||||||
|
dev->write_hwaddr = at91emac_write_hwaddr;
|
||||||
|
|
||||||
eth_register(dev);
|
eth_register(dev);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user