]> git.sur5r.net Git - u-boot/blobdiff - drivers/net/zynq_gem.c
net: phy: Add support for all targets which requires MANUAL_RELOC
[u-boot] / drivers / net / zynq_gem.c
index 101489c994760bf8bdaba0f7546fd941ca846a94..c723dbb0a6947221790eadfc14b0776645f40902 100644 (file)
@@ -11,6 +11,7 @@
 
 #include <common.h>
 #include <net.h>
+#include <netdev.h>
 #include <config.h>
 #include <fdtdec.h>
 #include <libfdt.h>
@@ -338,7 +339,8 @@ static int zynq_gem_init(struct eth_device *dev, bd_t * bis)
        phy_detection(dev);
 
        /* interface - look at tsec */
-       phydev = phy_connect(priv->bus, priv->phyaddr, dev, 0);
+       phydev = phy_connect(priv->bus, priv->phyaddr, dev,
+                            PHY_INTERFACE_MODE_MII);
 
        phydev->supported = supported | ADVERTISED_Pause |
                            ADVERTISED_Asym_Pause;
@@ -437,7 +439,7 @@ static int zynq_gem_recv(struct eth_device *dev)
                u32 size = roundup(frame_len, ARCH_DMA_MINALIGN);
                invalidate_dcache_range(addr, addr + size);
 
-               NetReceive((u8 *)addr, frame_len);
+               net_process_received_packet((u8 *)addr, frame_len);
 
                if (current_bd->status & ZYNQ_GEM_RXBUF_SOF_MASK)
                        priv->rx_first_buf = priv->rxbd_current;
@@ -487,7 +489,8 @@ static int zynq_gem_miiphy_write(const char *devname, uchar addr,
        return phywrite(dev, addr, reg, val);
 }
 
-int zynq_gem_initialize(bd_t *bis, int base_addr, int phy_addr, u32 emio)
+int zynq_gem_initialize(bd_t *bis, phys_addr_t base_addr,
+                       int phy_addr, u32 emio)
 {
        struct eth_device *dev;
        struct zynq_gem_priv *priv;
@@ -510,7 +513,8 @@ int zynq_gem_initialize(bd_t *bis, int base_addr, int phy_addr, u32 emio)
 
        /* Align bd_space to 1MB */
        bd_space = memalign(1 << MMU_SECTION_SHIFT, BD_SPACE);
-       mmu_set_region_dcache_behaviour((u32)bd_space, BD_SPACE, DCACHE_OFF);
+       mmu_set_region_dcache_behaviour((phys_addr_t)bd_space,
+                                       BD_SPACE, DCACHE_OFF);
 
        /* Initialize the bd spaces for tx and rx bd's */
        priv->tx_bd = (struct emac_bd *)bd_space;
@@ -519,7 +523,7 @@ int zynq_gem_initialize(bd_t *bis, int base_addr, int phy_addr, u32 emio)
        priv->phyaddr = phy_addr;
        priv->emio = emio;
 
-       sprintf(dev->name, "Gem.%x", base_addr);
+       sprintf(dev->name, "Gem.%lx", base_addr);
 
        dev->iobase = base_addr;