[PATCH] ARM: bugfix: Features of /proc/cpuinfo is wrong

Tetsuyuki Kobayashi koba at kmckk.co.jp
Wed Jul 17 02:48:29 EDT 2013


Array hwcap_str[19] should be "vfpd32" and hwcap_str[20] should be "lpae".
But actually "vfpd32" was missing and "lpae" was at wrong place.

Signed-off-by: Tetsuyuki Kobayashi <koba at kmckk.co.jp>
---
Hello, 

The output of features string of /proc/cpuinfo is changed at v3.11-rc1.
In case of KZM-A9-GT board, which cpu is ARM Corex-A9
$ grep Features /proc/cpuinfo

Features	: swp half thumb fastmult vfp edsp neon vfpv3 tls lpae 

This is wrong. Cortex-A9 does not have lpae (Large Physical Address Extension).

I tried git bisect and found this commit is related.

a469abd0f868c902b75532579bf87553dcf1b360
 ARM: elf: add new hwcap for identifying atomic ldrd/strd instructions

Variable elf_hwcap = 0x0008b0d7. This seems good.
HWCAP_LPAE (1 << 20) is not set in elf_hwcap.
Finally I found "lpae" string was wrong place in the array hwcap_str[].
hwcap_str[19] should be "vfpd32" and hwcap_str[20] should be "lpae".
But actually "vfpd32" was missing and "lpae" was at wrong place.

After this patch, features of /proc/cpuinfo of the same board is

Features	: swp half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 

I tested only in Cortex-A9.
Someone, please test on Cortex-A15 or A7. "lpae" should be appeared.


 arch/arm/kernel/setup.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 63af9a7..96286cb 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -971,6 +971,7 @@ static const char *hwcap_str[] = {
 	"vfpv4",
 	"idiva",
 	"idivt",
+	"vfpd32",
 	"lpae",
 	NULL
 };
-- 
1.7.9.5




More information about the linux-arm-kernel mailing list