summaryrefslogtreecommitdiffstats
path: root/sys/arm/include
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2014-05-14 17:40:18 +0000
committerian <ian@FreeBSD.org>2014-05-14 17:40:18 +0000
commit3c9602820517b21689d8a6153fd6f7ea38c7a749 (patch)
tree5a1c9e79488178b15f78d541f8a651be6ee21573 /sys/arm/include
parent4ee6f0bd3bade07595ecc84f07aa45d765a3eae1 (diff)
downloadFreeBSD-src-3c9602820517b21689d8a6153fd6f7ea38c7a749.zip
FreeBSD-src-3c9602820517b21689d8a6153fd6f7ea38c7a749.tar.gz
MFC r258359, r258742, r258845, r259936, r259640
Apply access flags for managed and unmanaged pages properly on ARMv6/v7 Set the PGA_WRITEABLE flag when the protections indicate write access, not just when the current access is a write. Enable missing Access Flag for secondary cores on ARMv6/v7 Add identification and necessary type checks for Krait CPU cores.
Diffstat (limited to 'sys/arm/include')
-rw-r--r--sys/arm/include/armreg.h1
-rw-r--r--sys/arm/include/cpuconf.h5
-rw-r--r--sys/arm/include/cpufunc.h4
-rw-r--r--sys/arm/include/intr.h2
-rw-r--r--sys/arm/include/md_var.h1
5 files changed, 9 insertions, 4 deletions
diff --git a/sys/arm/include/armreg.h b/sys/arm/include/armreg.h
index 35d2e9f..9397678 100644
--- a/sys/arm/include/armreg.h
+++ b/sys/arm/include/armreg.h
@@ -157,6 +157,7 @@
#define CPU_ID_CORTEXA15 0x410fc0f0
#define CPU_ID_SA110 0x4401a100
#define CPU_ID_SA1100 0x4401a110
+#define CPU_ID_KRAIT 0x510f06f0 /* Snapdragon S4 Pro/APQ8064 */
#define CPU_ID_TI925T 0x54029250
#define CPU_ID_MV88FR131 0x56251310 /* Marvell Feroceon 88FR131 Core */
#define CPU_ID_MV88FR331 0x56153310 /* Marvell Feroceon 88FR331 Core */
diff --git a/sys/arm/include/cpuconf.h b/sys/arm/include/cpuconf.h
index 986633b..0c2faa3 100644
--- a/sys/arm/include/cpuconf.h
+++ b/sys/arm/include/cpuconf.h
@@ -66,6 +66,7 @@
defined(CPU_FA626TE) + \
defined(CPU_XSCALE_IXP425)) + \
defined(CPU_CORTEXA) + \
+ defined(CPU_KRAIT) + \
defined(CPU_MV_PJ4B)
/*
@@ -97,7 +98,7 @@
#endif
#endif
-#if defined(CPU_CORTEXA)
+#if defined(CPU_CORTEXA) || defined(CPU_KRAIT)
#define ARM_ARCH_7A 1
#else
#define ARM_ARCH_7A 0
@@ -156,7 +157,7 @@
#define ARM_MMU_V6 0
#endif
-#if defined(CPU_CORTEXA)
+#if defined(CPU_CORTEXA) || defined(CPU_KRAIT)
#define ARM_MMU_V7 1
#else
#define ARM_MMU_V7 0
diff --git a/sys/arm/include/cpufunc.h b/sys/arm/include/cpufunc.h
index d3e9ebe..0b53906 100644
--- a/sys/arm/include/cpufunc.h
+++ b/sys/arm/include/cpufunc.h
@@ -188,7 +188,7 @@ extern u_int cputype;
#else
void tlb_broadcast(int);
-#if defined(CPU_CORTEXA) || defined(CPU_MV_PJ4B)
+#if defined(CPU_CORTEXA) || defined(CPU_MV_PJ4B) || defined(CPU_KRAIT)
#define TLB_BROADCAST /* No need to explicitely send an IPI */
#else
#define TLB_BROADCAST tlb_broadcast(7)
@@ -463,7 +463,7 @@ void sheeva_l2cache_wbinv_all (void);
#endif
#if defined(CPU_ARM1136) || defined(CPU_ARM1176) || \
- defined(CPU_MV_PJ4B) || defined(CPU_CORTEXA)
+ defined(CPU_MV_PJ4B) || defined(CPU_CORTEXA) || defined(CPU_KRAIT)
void arm11_setttb (u_int);
void arm11_sleep (int);
diff --git a/sys/arm/include/intr.h b/sys/arm/include/intr.h
index 93a204c..a3bc837 100644
--- a/sys/arm/include/intr.h
+++ b/sys/arm/include/intr.h
@@ -52,6 +52,8 @@
#define NIRQ 64
#elif defined(CPU_CORTEXA)
#define NIRQ 160
+#elif defined(CPU_KRAIT)
+#define NIRQ 288
#elif defined(CPU_ARM1136) || defined(CPU_ARM1176)
#define NIRQ 128
#elif defined(SOC_MV_ARMADAXP)
diff --git a/sys/arm/include/md_var.h b/sys/arm/include/md_var.h
index efb973d..ef202f5 100644
--- a/sys/arm/include/md_var.h
+++ b/sys/arm/include/md_var.h
@@ -63,6 +63,7 @@ enum cpu_class {
CPU_CLASS_ARM10E,
CPU_CLASS_ARM10EJ,
CPU_CLASS_CORTEXA,
+ CPU_CLASS_KRAIT,
CPU_CLASS_SA1,
CPU_CLASS_XSCALE,
CPU_CLASS_ARM11J,
OpenPOWER on IntegriCloud