]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/net/fsl_mcdmafec.c
mmc: update Faraday FTSDC010 for rw performance
[karo-tx-uboot.git] / drivers / net / fsl_mcdmafec.c
index d056010c74ee3852667bc94197474fefb5370f36..63842cd466ed94dd531f435555d167270004f18c 100644 (file)
@@ -116,7 +116,7 @@ struct fec_info_dma fec_info[] = {
 #endif
 };
 
-static int fec_send(struct eth_device *dev, volatile void *packet, int length);
+static int fec_send(struct eth_device *dev, void *packet, int length);
 static int fec_recv(struct eth_device *dev);
 static int fec_init(struct eth_device *dev, bd_t * bd);
 static void fec_halt(struct eth_device *dev);
@@ -194,13 +194,13 @@ static void set_fec_duplex_speed(volatile fecdma_t * fecp, bd_t * bd,
        }
 }
 
-static int fec_send(struct eth_device *dev, volatile void *packet, int length)
+static int fec_send(struct eth_device *dev, void *packet, int length)
 {
        struct fec_info_dma *info = dev->priv;
        cbd_t *pTbd, *pUsedTbd;
        u16 phyStatus;
 
-       miiphy_read(dev->name, info->phy_addr, PHY_BMSR, &phyStatus);
+       miiphy_read(dev->name, info->phy_addr, MII_BMSR, &phyStatus);
 
        /* process all the consumed TBDs */
        while (info->cleanTbdNum < CONFIG_SYS_TX_ETH_BUFFER) {
@@ -301,8 +301,7 @@ static int fec_recv(struct eth_device *dev)
                        frame_length = pRbd->cbd_datlen - 4;
 
                        /* Fill the buffer and pass it to upper layers */
-                       NetReceive((volatile uchar *)pRbd->cbd_bufaddr,
-                                  frame_length);
+                       NetReceive((uchar *)pRbd->cbd_bufaddr, frame_length);
                        len = frame_length;
                }
 
@@ -369,6 +368,7 @@ static int fec_init(struct eth_device *dev, bd_t * bd)
        struct fec_info_dma *info = dev->priv;
        volatile fecdma_t *fecp = (fecdma_t *) (info->iobase);
        int i;
+       uchar enetaddr[6];
 
 #ifdef ET_DEBUG
        printf("fec_init: iobase 0x%08x ...\n", info->iobase);
@@ -397,11 +397,11 @@ static int fec_init(struct eth_device *dev, bd_t * bd)
        fecp->eir = 0xffffffff;
 
        /* Set station address   */
-       if ((u32) fecp == CONFIG_SYS_FEC0_IOBASE) {
-               fec_set_hwaddr(fecp, bd->bi_enetaddr);
-       } else {
-               fec_set_hwaddr(fecp, bd->bi_enet1addr);
-       }
+       if ((u32) fecp == CONFIG_SYS_FEC0_IOBASE)
+               eth_getenv_enetaddr("ethaddr", enetaddr);
+       else
+               eth_getenv_enetaddr("eth1addr", enetaddr);
+       fec_set_hwaddr(fecp, enetaddr);
 
        /* Set Opcode/Pause Duration Register */
        fecp->opd = 0x00010020;