summaryrefslogtreecommitdiffstats
path: root/sys/arm/mv/mv_machdep.c
diff options
context:
space:
mode:
authorgber <gber@FreeBSD.org>2013-05-06 14:12:36 +0000
committergber <gber@FreeBSD.org>2013-05-06 14:12:36 +0000
commit5bbe70ff76cd7e4a7b1944ed0c63396cf3b96176 (patch)
treecb91bf8660f9fba885e37d4c73de58557ec51d3a /sys/arm/mv/mv_machdep.c
parent4f72fc8977b479d330af0b34a62e66150bb92fc4 (diff)
downloadFreeBSD-src-5bbe70ff76cd7e4a7b1944ed0c63396cf3b96176.zip
FreeBSD-src-5bbe70ff76cd7e4a7b1944ed0c63396cf3b96176.tar.gz
Properly initialize Armada XP MP subsystem.
- correct setting of Auxiliary Control Register for MP mode - correct setting of Auxiliarty Debug registers - cleanup management of memory contains bootup code - early initialization of Coherency Fabric (MP and not-MP mode) - enable Snoop Filtering Obtained from: Semihalf
Diffstat (limited to 'sys/arm/mv/mv_machdep.c')
-rw-r--r--sys/arm/mv/mv_machdep.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/arm/mv/mv_machdep.c b/sys/arm/mv/mv_machdep.c
index a487e39..58d183e 100644
--- a/sys/arm/mv/mv_machdep.c
+++ b/sys/arm/mv/mv_machdep.c
@@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
static int platform_mpp_init(void);
#if defined(SOC_MV_ARMADAXP)
+void armadaxp_init_coher_fabric(void);
void armadaxp_l2_init(void);
#endif
@@ -237,6 +238,10 @@ initarm_late_init(void)
write_cpu_ctrl(CPU_TIMERS_BASE + CPU_TIMER_CONTROL, 0);
#endif
#if defined(SOC_MV_ARMADAXP)
+#if !defined(SMP)
+ /* For SMP case it should be initialized after APs are booted */
+ armadaxp_init_coher_fabric();
+#endif
armadaxp_l2_init();
#endif
}
OpenPOWER on IntegriCloud