From 1b0f16d5b25ab6463199bfe1a0280dae6af37e0d Mon Sep 17 00:00:00 2001 From: ragunath Date: Sun, 28 Jun 2015 14:52:45 +0530 Subject: [PATCH] Temporary fix for ethernet rx intr hang issue and Disable cache --- c/src/lib/libbsp/arm/beagle/configure.ac | 3 +++ c/src/lib/libbsp/arm/beagle/startup/bspstartmmu.c | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 0 deletions(-) diff --git a/c/src/lib/libbsp/arm/beagle/configure.ac b/c/src/lib/libbsp/arm/beagle/configure.ac index b0c99a3..41cd939 100644 --- a/c/src/lib/libbsp/arm/beagle/configure.ac +++ b/c/src/lib/libbsp/arm/beagle/configure.ac @@ -33,6 +33,9 @@ RTEMS_BSPOPTS_HELP([CONSOLE_POLLED],[polled console i/o (e.g. to run testsuite)] RTEMS_BSPOPTS_SET([BBB_DEBUG],[beaglebone*],[0]) RTEMS_BSPOPTS_HELP([BBB_DEBUG],[Enable BBB debug]) +RTEMS_BSPOPTS_SET([BBB_CACHE_DISABLE],[beaglebone*],[0]) +RTEMS_BSPOPTS_HELP([BBB_CACHE_DISABLE],[DISABLE CACHE IN BBB]) + RTEMS_BSP_CLEANUP_OPTIONS(0, 0) RTEMS_BSP_LINKCMDS diff --git a/c/src/lib/libbsp/arm/beagle/startup/bspstartmmu.c b/c/src/lib/libbsp/arm/beagle/startup/bspstartmmu.c index 157edfa..c8d6526 100644 --- a/c/src/lib/libbsp/arm/beagle/startup/bspstartmmu.c +++ b/c/src/lib/libbsp/arm/beagle/startup/bspstartmmu.c @@ -44,10 +44,26 @@ BSP_START_TEXT_SECTION void beagle_setup_mmu_and_cache(void) { /* turn mmu off first in case it's on */ uint32_t ctrl = arm_cp15_start_setup_mmu_and_cache( +#if BBB_CACHE_DISABLE + /* clear - mmu off & disable cache */ + ARM_CP15_CTRL_M | ARM_CP15_CTRL_A | ARM_CP15_CTRL_I | ARM_CP15_CTRL_C, +#else ARM_CP15_CTRL_M | ARM_CP15_CTRL_A, /* clear - mmu off */ +#endif /* BBB_CACHE_DISABLE */ ARM_CP15_CTRL_AFE | ARM_CP15_CTRL_Z ); +#if BBB_CACHE_DISABLE + arm_cp15_start_setup_translation_table( + (uint32_t *) bsp_translation_table_base, + ARM_MMU_DEFAULT_CLIENT_DOMAIN, + &beagle_mmu_config_table[0], + RTEMS_ARRAY_SIZE(beagle_mmu_config_table) + ); + + ctrl |= ARM_CP15_CTRL_M; + arm_cp15_set_control(ctrl); +#else arm_cp15_start_setup_translation_table_and_enable_mmu_and_cache( ctrl, (uint32_t *) bsp_translation_table_base, @@ -55,4 +71,5 @@ BSP_START_TEXT_SECTION void beagle_setup_mmu_and_cache(void) &beagle_mmu_config_table[0], RTEMS_ARRAY_SIZE(beagle_mmu_config_table) ); +#endif /* BBB_CACHE_DISABLE */ } -- 1.9.1