]> git.sur5r.net Git - u-boot/blobdiff - drivers/net/fm/eth.c
powerpc/85xx: add support for FM2 DTSEC5
[u-boot] / drivers / net / fm / eth.c
index 308d610a788e8a63dfba1a2e55bc4a84dad50e5b..2b616adb6e545803307ed53104fd2f8966cf919a 100644 (file)
@@ -363,6 +363,9 @@ static int fm_eth_open(struct eth_device *dev, bd_t *bd)
 {
        struct fm_eth *fm_eth;
        struct fsl_enet_mac *mac;
+#ifdef CONFIG_PHYLIB
+       int ret;
+#endif
 
        fm_eth = (struct fm_eth *)dev->priv;
        mac = fm_eth->mac;
@@ -384,7 +387,11 @@ static int fm_eth_open(struct eth_device *dev, bd_t *bd)
        fmc_tx_port_graceful_stop_disable(fm_eth);
 
 #ifdef CONFIG_PHYLIB
-       phy_startup(fm_eth->phydev);
+       ret = phy_startup(fm_eth->phydev);
+       if (ret) {
+               printf("%s: Could not initialize\n", fm_eth->phydev->dev->name);
+               return ret;
+       }
 #else
        fm_eth->phydev->speed = SPEED_1000;
        fm_eth->phydev->link = 1;
@@ -420,7 +427,7 @@ static void fm_eth_halt(struct eth_device *dev)
        phy_shutdown(fm_eth->phydev);
 }
 
-static int fm_eth_send(struct eth_device *dev, volatile void *buf, int len)
+static int fm_eth_send(struct eth_device *dev, void *buf, int len)
 {
        struct fm_eth *fm_eth;
        struct fm_port_global_pram *pram;
@@ -537,6 +544,7 @@ static int fm_eth_init_mac(struct fm_eth *fm_eth, struct ccsr_fman *reg)
        /* Get the mac registers base address */
        if (fm_eth->type == FM_ETH_1G_E) {
                base = &reg->mac_1g[num].fm_dtesc;
+               phyregs = &reg->mac_1g[num].fm_mdio.miimcfg;
        } else {
                base = &reg->mac_10g[num].fm_10gec;
                phyregs = &reg->mac_10g[num].fm_10gec_mdio;
@@ -552,7 +560,7 @@ static int fm_eth_init_mac(struct fm_eth *fm_eth, struct ccsr_fman *reg)
        fm_eth->mac = mac;
 
        if (fm_eth->type == FM_ETH_1G_E)
-               init_dtsec(mac, base, NULL, MAX_RXBUF_LEN);
+               init_dtsec(mac, base, phyregs, MAX_RXBUF_LEN);
        else
                init_tgec(mac, base, phyregs, MAX_RXBUF_LEN);