summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalf Kirchner <ralf.kirchner@embedded-brains.de>2014-05-28 14:47:03 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-05-28 14:59:01 +0200
commit32c896092579feeee787209deb269f9c66c0081f (patch)
tree995daefc947f3286097971b5a64dbfa5d31c8d0c
parentbsp/altera-vyclone-v: Broadcast cache maintenances (diff)
downloadrtems-32c896092579feeee787209deb269f9c66c0081f.tar.bz2
bsp/altera-cyclone-v: Enable L2 cache for network driver
-rw-r--r--c/src/lib/libbsp/arm/altera-cyclone-v/network/network.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/arm/altera-cyclone-v/network/network.c b/c/src/lib/libbsp/arm/altera-cyclone-v/network/network.c
index d2f669a658..43c95cd723 100644
--- a/c/src/lib/libbsp/arm/altera-cyclone-v/network/network.c
+++ b/c/src/lib/libbsp/arm/altera-cyclone-v/network/network.c
@@ -40,6 +40,7 @@
#include <bsp/alt_generalpurpose_io.h>
#include <bsp/nocache-heap.h>
#include "socal/alt_rstmgr.h"
+#include "socal/alt_sysmgr.h"
#include "socal/hps.h"
#include "socal/socal.h"
#include <libchip/dwmac.h>
@@ -1080,9 +1081,21 @@ static int network_if_mem_free_nocache(
*/
static int network_if_bus_setup( void *arg )
{
+ volatile uint32_t reg = alt_read_word( ALT_SYSMGR_EMAC_L3MST_ADDR );
+
(void) arg;
- /* Nothing to be done */
+ reg &= ALT_SYSMGR_EMAC_L3MST_AWCACHE_1_CLR_MSK;
+ reg &= ALT_SYSMGR_EMAC_L3MST_ARCACHE_1_CLR_MSK;
+ reg |= ALT_SYSMGR_EMAC_L3MST_AWCACHE_1_SET(
+ ALT_SYSMGR_EMAC_L3MST_AWCACHE_1_E_CACHE_WRBACK_ALLOC
+ );
+ reg |= ALT_SYSMGR_EMAC_L3MST_ARCACHE_1_SET(
+ ALT_SYSMGR_EMAC_L3MST_ARCACHE_1_E_CACHE_WRBACK_ALLOC
+ );
+
+ alt_write_word( ALT_SYSMGR_EMAC_L3MST_ADDR, reg );
+
return 0;
}