From d92ce9b36a363ead3549343be800fe1dfac8ca2c Mon Sep 17 00:00:00 2001 From: Lucas Stach Date: Wed, 1 Mar 2017 15:26:40 +0100 Subject: ARM: correctly identify ARMv6 K/Z The ARMv6 K/Z derivatives have a v7 compatible MMU, but all other parts (including the cache handling) is still at v6. As we don't make use of the more advanced features of the v7 MMU in Barebox, it's okay to just override this to properly identify the CPU as ARMv6. Signed-off-by: Lucas Stach Signed-off-by: Sascha Hauer --- arch/arm/include/asm/system_info.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'arch/arm/include/asm/system_info.h') diff --git a/arch/arm/include/asm/system_info.h b/arch/arm/include/asm/system_info.h index 25fffd2681..a27b79e6dd 100644 --- a/arch/arm/include/asm/system_info.h +++ b/arch/arm/include/asm/system_info.h @@ -188,6 +188,14 @@ static inline int arm_early_get_cpu_architecture(void) cpu_arch = CPU_ARCH_UNKNOWN; #endif + /* + * Special case for ARMv6 (K/Z) (has v7 compatible MMU, but is v6 + * otherwise). The below check just matches all ARMv6, as done in the + * Linux kernel. + */ + if ((read_cpuid_id() & 0x7f000) == 0x7b000) + cpu_arch = CPU_ARCH_ARMv6; + return cpu_arch; } -- cgit v1.2.3