[linux-yocto] [PATCH 82/89] drivers/net: FEMAC hprot register wasn't being set to uncached mode
Paul Butler
butler.paul at gmail.com
Sun Oct 27 12:33:47 PDT 2013
From: SangeethaRao <sangeetha.rao at lsi.com>
FEMAC hprot register wasn't being set to uncached mode in Linux
and hence there was a dependency on U-boot FEMAC initialization
for network support in Linux to work.
Signed-off-by: SangeethaRao <sangeetha.rao at lsi.com>
---
drivers/net/ethernet/lsi/lsi_acp_net.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/net/ethernet/lsi/lsi_acp_net.c b/drivers/net/ethernet/lsi/lsi_acp_net.c
index 8854948..95ccd7d 100644
--- a/drivers/net/ethernet/lsi/lsi_acp_net.c
+++ b/drivers/net/ethernet/lsi/lsi_acp_net.c
@@ -108,6 +108,10 @@ MODULE_LICENSE("GPL");
static void *rx_base;
static void *tx_base;
static void *dma_base;
+#ifdef CONFIG_ARM
+static void *gpreg_base;
+#define GPREG_BASE 0x002010094000ULL
+#endif
/* BCM5221 registers */
#define PHY_BCM_TEST_REG 0x1f
@@ -1363,6 +1367,13 @@ int appnic_init(struct net_device *dev)
struct appnic_dma_descriptor descriptor;
struct sockaddr address;
+#ifdef CONFIG_ARM
+ /* Set FEMAC to uncached */
+ gpreg_base = ioremap(GPREG_BASE, 0x1000);
+ writel(0x0, gpreg_base+0x78);
+#endif
+
+
/*
* Reset the MAC
*/
@@ -1916,6 +1927,7 @@ device_tree_failed:
iounmap(rx_base);
iounmap(tx_base);
iounmap(dma_base);
+ iounmap(gpreg_base);
return -EINVAL;
}
#else
@@ -2108,6 +2120,7 @@ static int __devexit appnic_drv_remove(struct platform_device *pdev)
iounmap(rx_base);
iounmap(tx_base);
iounmap(dma_base);
+ iounmap(gpreg_base);
return 0;
}
--
1.8.3.4
More information about the linux-yocto
mailing list