]> git.sur5r.net Git - u-boot/blobdiff - drivers/net/at91_emac.c
mmc: sdhci: fix sdma bug for large file transfer
[u-boot] / drivers / net / at91_emac.c
index 90eb5152409b8b2d0ece526de1ec711afd3a5c6f..97d273999af0514375557ae1de9bfd32603588ec 100644 (file)
@@ -342,34 +342,34 @@ static int at91emac_init(struct eth_device *netdev, bd_t *bd)
        u32 value;
        emac_device *dev;
        at91_emac_t *emac;
-       at91_pio_t *pio = (at91_pio_t *) AT91_PIO_BASE;
-       at91_pmc_t *pmc = (at91_pmc_t *) AT91_PMC_BASE;
+       at91_pio_t *pio = (at91_pio_t *) ATMEL_BASE_PIO;
+       at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC;
 
        emac = (at91_emac_t *) netdev->iobase;
        dev = (emac_device *) netdev->priv;
 
        /* PIO Disable Register */
-       value = AT91_PMX_AA_EMDIO |     AT91_PMX_AA_EMDC |
-               AT91_PMX_AA_ERXER |     AT91_PMX_AA_ERX1 |
-               AT91_PMX_AA_ERX0 |      AT91_PMX_AA_ECRS |
-               AT91_PMX_AA_ETX1 |      AT91_PMX_AA_ETX0 |
-               AT91_PMX_AA_ETXEN |     AT91_PMX_AA_EREFCK;
+       value = ATMEL_PMX_AA_EMDIO |    ATMEL_PMX_AA_EMDC |
+               ATMEL_PMX_AA_ERXER |    ATMEL_PMX_AA_ERX1 |
+               ATMEL_PMX_AA_ERX0 |     ATMEL_PMX_AA_ECRS |
+               ATMEL_PMX_AA_ETX1 |     ATMEL_PMX_AA_ETX0 |
+               ATMEL_PMX_AA_ETXEN |    ATMEL_PMX_AA_EREFCK;
 
        writel(value, &pio->pioa.pdr);
        writel(value, &pio->pioa.asr);
 
 #ifdef CONFIG_RMII
-       value = AT91_PMX_BA_ERXCK;
+       value = ATMEL_PMX_BA_ERXCK;
 #else
-       value = AT91_PMX_BA_ERXCK |     AT91_PMX_BA_ECOL |
-               AT91_PMX_BA_ERXDV |     AT91_PMX_BA_ERX3 |
-               AT91_PMX_BA_ERX2 |      AT91_PMX_BA_ETXER |
-               AT91_PMX_BA_ETX3 |      AT91_PMX_BA_ETX2;
+       value = ATMEL_PMX_BA_ERXCK |    ATMEL_PMX_BA_ECOL |
+               ATMEL_PMX_BA_ERXDV |    ATMEL_PMX_BA_ERX3 |
+               ATMEL_PMX_BA_ERX2 |     ATMEL_PMX_BA_ETXER |
+               ATMEL_PMX_BA_ETX3 |     ATMEL_PMX_BA_ETX2;
 #endif
        writel(value, &pio->piob.pdr);
        writel(value, &pio->piob.bsr);
 
-       writel(1 << AT91_ID_EMAC, &pmc->pcer);
+       writel(1 << ATMEL_ID_EMAC, &pmc->pcer);
        writel(readl(&emac->ctl) | AT91_EMAC_CTL_CSR, &emac->ctl);
 
        /* Init Ethernet buffers */
@@ -476,16 +476,18 @@ 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;
+       at91_pmc_t *pmc = (at91_pmc_t *) ATMEL_BASE_PMC;
        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);
+       writel(1 << ATMEL_ID_EMAC, &pmc->pcer);
+       DEBUG_AT91EMAC("init MAC-ADDR %02x:%02x:%02x:%02x:%02x:%02x\n",
+               netdev->enetaddr[5], netdev->enetaddr[4], netdev->enetaddr[3],
+               netdev->enetaddr[2], netdev->enetaddr[1], netdev->enetaddr[0]);
+       writel( (netdev->enetaddr[0] | netdev->enetaddr[1] << 8 |
+                       netdev->enetaddr[2] << 16 | netdev->enetaddr[3] << 24),
+                       &emac->sa2l);
+       writel((netdev->enetaddr[4] | netdev->enetaddr[5] << 8), &emac->sa2h);
        DEBUG_AT91EMAC("init MAC-ADDR %x%x \n",
                readl(&emac->sa2h), readl(&emac->sa2l));
        return 0;
@@ -498,7 +500,7 @@ int at91emac_register(bd_t *bis, unsigned long iobase)
        struct eth_device *dev;
 
        if (iobase == 0)
-               iobase = AT91_EMAC_BASE;
+               iobase = ATMEL_BASE_EMAC;
        emac = malloc(sizeof(*emac)+512);
        if (emac == NULL)
                return -1;