summaryrefslogtreecommitdiffstats
path: root/sys/arm/xscale/i80321/ep80219_machdep.c
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2013-12-14 01:12:13 +0000
committerian <ian@FreeBSD.org>2013-12-14 01:12:13 +0000
commitb37938a4e4173ecd46aa46bb293aad3f58baefbe (patch)
tree40c74e56c766046a52593f13e5e4e4e0b0aab04c /sys/arm/xscale/i80321/ep80219_machdep.c
parent1185e669672b4edbb49d44b2c876c995baf12a7d (diff)
downloadFreeBSD-src-b37938a4e4173ecd46aa46bb293aad3f58baefbe.zip
FreeBSD-src-b37938a4e4173ecd46aa46bb293aad3f58baefbe.tar.gz
MFC r258392, r258412:
Call cpu_setup() immediately after the page tables are installed. This enables data cache and other chip-specific features. It was previously done via an early SYSINIT, but it was being done after pmap and vm setup, and those setups need to use mutexes. On some modern ARM platforms, the ldrex/strex instructions that implement mutexes require the data cache to be enabled. Call cpu_setup() from the initarm() routine on platforms that don't use the common FDT-aware initarm() in arm/machdep.c.
Diffstat (limited to 'sys/arm/xscale/i80321/ep80219_machdep.c')
-rw-r--r--sys/arm/xscale/i80321/ep80219_machdep.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/arm/xscale/i80321/ep80219_machdep.c b/sys/arm/xscale/i80321/ep80219_machdep.c
index 94b94da..4857fcd 100644
--- a/sys/arm/xscale/i80321/ep80219_machdep.c
+++ b/sys/arm/xscale/i80321/ep80219_machdep.c
@@ -334,6 +334,8 @@ initarm(struct arm_boot_params *abp)
* this problem will not occur after initarm().
*/
cpu_idcache_wbinv_all();
+ cpu_setup("");
+
/*
* Fetch the SDRAM start/size from the i80321 SDRAM configration
* registers.
OpenPOWER on IntegriCloud