|
|
|
@ -439,8 +439,6 @@ static int macb_init(struct eth_device *netdev, bd_t *bd) |
|
|
|
|
{ |
|
|
|
|
struct macb_device *macb = to_macb(netdev); |
|
|
|
|
unsigned long paddr; |
|
|
|
|
u32 hwaddr_bottom; |
|
|
|
|
u16 hwaddr_top; |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -469,12 +467,6 @@ static int macb_init(struct eth_device *netdev, bd_t *bd) |
|
|
|
|
macb_writel(macb, RBQP, macb->rx_ring_dma); |
|
|
|
|
macb_writel(macb, TBQP, macb->tx_ring_dma); |
|
|
|
|
|
|
|
|
|
/* set hardware address */ |
|
|
|
|
hwaddr_bottom = cpu_to_le32(*((u32 *)netdev->enetaddr)); |
|
|
|
|
macb_writel(macb, SA1B, hwaddr_bottom); |
|
|
|
|
hwaddr_top = cpu_to_le16(*((u16 *)(netdev->enetaddr + 4))); |
|
|
|
|
macb_writel(macb, SA1T, hwaddr_top); |
|
|
|
|
|
|
|
|
|
/* choose RMII or MII mode. This depends on the board */ |
|
|
|
|
#ifdef CONFIG_RMII |
|
|
|
|
#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \ |
|
|
|
@ -521,6 +513,20 @@ static void macb_halt(struct eth_device *netdev) |
|
|
|
|
macb_writel(macb, NCR, MACB_BIT(CLRSTAT)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int macb_write_hwaddr(struct eth_device *dev) |
|
|
|
|
{ |
|
|
|
|
struct macb_device *macb = to_macb(dev); |
|
|
|
|
u32 hwaddr_bottom; |
|
|
|
|
u16 hwaddr_top; |
|
|
|
|
|
|
|
|
|
/* set hardware address */ |
|
|
|
|
hwaddr_bottom = cpu_to_le32(*((u32 *)dev->enetaddr)); |
|
|
|
|
macb_writel(macb, SA1B, hwaddr_bottom); |
|
|
|
|
hwaddr_top = cpu_to_le16(*((u16 *)(dev->enetaddr + 4))); |
|
|
|
|
macb_writel(macb, SA1T, hwaddr_top); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int macb_eth_initialize(int id, void *regs, unsigned int phy_addr) |
|
|
|
|
{ |
|
|
|
|
struct macb_device *macb; |
|
|
|
@ -554,6 +560,7 @@ int macb_eth_initialize(int id, void *regs, unsigned int phy_addr) |
|
|
|
|
netdev->halt = macb_halt; |
|
|
|
|
netdev->send = macb_send; |
|
|
|
|
netdev->recv = macb_recv; |
|
|
|
|
netdev->write_hwaddr = macb_write_hwaddr; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Do some basic initialization so that we at least can talk |
|
|
|
|