|
@@ -38,6 +38,24 @@
|
|
|
#define MPIDR_AFFINITY_LEVEL(mpidr, level) \
|
|
|
((mpidr >> (MPIDR_LEVEL_BITS * level)) & MPIDR_LEVEL_MASK)
|
|
|
|
|
|
+#define ARM_CPU_IMP_ARM 0x41
|
|
|
+#define ARM_CPU_IMP_INTEL 0x69
|
|
|
+
|
|
|
+#define ARM_CPU_PART_ARM1136 0xB360
|
|
|
+#define ARM_CPU_PART_ARM1156 0xB560
|
|
|
+#define ARM_CPU_PART_ARM1176 0xB760
|
|
|
+#define ARM_CPU_PART_ARM11MPCORE 0xB020
|
|
|
+#define ARM_CPU_PART_CORTEX_A8 0xC080
|
|
|
+#define ARM_CPU_PART_CORTEX_A9 0xC090
|
|
|
+#define ARM_CPU_PART_CORTEX_A5 0xC050
|
|
|
+#define ARM_CPU_PART_CORTEX_A15 0xC0F0
|
|
|
+#define ARM_CPU_PART_CORTEX_A7 0xC070
|
|
|
+
|
|
|
+#define ARM_CPU_XSCALE_ARCH_MASK 0xe000
|
|
|
+#define ARM_CPU_XSCALE_ARCH_V1 0x2000
|
|
|
+#define ARM_CPU_XSCALE_ARCH_V2 0x4000
|
|
|
+#define ARM_CPU_XSCALE_ARCH_V3 0x6000
|
|
|
+
|
|
|
extern unsigned int processor_id;
|
|
|
|
|
|
#ifdef CONFIG_CPU_CP15
|
|
@@ -50,6 +68,7 @@ extern unsigned int processor_id;
|
|
|
: "cc"); \
|
|
|
__val; \
|
|
|
})
|
|
|
+
|
|
|
#define read_cpuid_ext(ext_reg) \
|
|
|
({ \
|
|
|
unsigned int __val; \
|
|
@@ -59,29 +78,24 @@ extern unsigned int processor_id;
|
|
|
: "cc"); \
|
|
|
__val; \
|
|
|
})
|
|
|
-#else
|
|
|
-#define read_cpuid(reg) (processor_id)
|
|
|
-#define read_cpuid_ext(reg) 0
|
|
|
-#endif
|
|
|
|
|
|
-#define ARM_CPU_IMP_ARM 0x41
|
|
|
-#define ARM_CPU_IMP_INTEL 0x69
|
|
|
+#else /* ifdef CONFIG_CPU_CP15 */
|
|
|
|
|
|
-#define ARM_CPU_PART_ARM1136 0xB360
|
|
|
-#define ARM_CPU_PART_ARM1156 0xB560
|
|
|
-#define ARM_CPU_PART_ARM1176 0xB760
|
|
|
-#define ARM_CPU_PART_ARM11MPCORE 0xB020
|
|
|
-#define ARM_CPU_PART_CORTEX_A8 0xC080
|
|
|
-#define ARM_CPU_PART_CORTEX_A9 0xC090
|
|
|
-#define ARM_CPU_PART_CORTEX_A5 0xC050
|
|
|
-#define ARM_CPU_PART_CORTEX_A15 0xC0F0
|
|
|
-#define ARM_CPU_PART_CORTEX_A7 0xC070
|
|
|
+/*
|
|
|
+ * read_cpuid and read_cpuid_ext should only ever be called on machines that
|
|
|
+ * have cp15 so warn on other usages.
|
|
|
+ */
|
|
|
+#define read_cpuid(reg) \
|
|
|
+ ({ \
|
|
|
+ WARN_ON_ONCE(1); \
|
|
|
+ 0; \
|
|
|
+ })
|
|
|
|
|
|
-#define ARM_CPU_XSCALE_ARCH_MASK 0xe000
|
|
|
-#define ARM_CPU_XSCALE_ARCH_V1 0x2000
|
|
|
-#define ARM_CPU_XSCALE_ARCH_V2 0x4000
|
|
|
-#define ARM_CPU_XSCALE_ARCH_V3 0x6000
|
|
|
+#define read_cpuid_ext(reg) read_cpuid(reg)
|
|
|
+
|
|
|
+#endif /* ifdef CONFIG_CPU_CP15 / else */
|
|
|
|
|
|
+#ifdef CONFIG_CPU_CP15
|
|
|
/*
|
|
|
* The CPU ID never changes at run time, so we might as well tell the
|
|
|
* compiler that it's constant. Use this function to read the CPU ID
|
|
@@ -92,6 +106,15 @@ static inline unsigned int __attribute_const__ read_cpuid_id(void)
|
|
|
return read_cpuid(CPUID_ID);
|
|
|
}
|
|
|
|
|
|
+#else /* ifdef CONFIG_CPU_CP15 */
|
|
|
+
|
|
|
+static inline unsigned int __attribute_const__ read_cpuid_id(void)
|
|
|
+{
|
|
|
+ return processor_id;
|
|
|
+}
|
|
|
+
|
|
|
+#endif /* ifdef CONFIG_CPU_CP15 / else */
|
|
|
+
|
|
|
static inline unsigned int __attribute_const__ read_cpuid_implementor(void)
|
|
|
{
|
|
|
return (read_cpuid_id() & 0xFF000000) >> 24;
|