summaryrefslogtreecommitdiffstats
path: root/sys/arm/s3c2xx0
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/s3c2xx0
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/s3c2xx0')
-rw-r--r--sys/arm/s3c2xx0/s3c24x0_machdep.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/arm/s3c2xx0/s3c24x0_machdep.c b/sys/arm/s3c2xx0/s3c24x0_machdep.c
index 3fc0f8e..8f432be 100644
--- a/sys/arm/s3c2xx0/s3c24x0_machdep.c
+++ b/sys/arm/s3c2xx0/s3c24x0_machdep.c
@@ -355,6 +355,7 @@ initarm(struct arm_boot_params *abp)
* this problem will not occur after initarm().
*/
cpu_idcache_wbinv_all();
+ cpu_setup("");
/* Disable all peripheral interrupts */
ioreg_write32(S3C24X0_INTCTL_BASE + INTCTL_INTMSK, ~0);
OpenPOWER on IntegriCloud