diff options
author | gber <gber@FreeBSD.org> | 2013-05-06 14:12:36 +0000 |
---|---|---|
committer | gber <gber@FreeBSD.org> | 2013-05-06 14:12:36 +0000 |
commit | 5bbe70ff76cd7e4a7b1944ed0c63396cf3b96176 (patch) | |
tree | cb91bf8660f9fba885e37d4c73de58557ec51d3a /sys/arm/mv/mv_machdep.c | |
parent | 4f72fc8977b479d330af0b34a62e66150bb92fc4 (diff) | |
download | FreeBSD-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.c | 5 |
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 } |