diff mbox

ARM: bugfix: Features of /proc/cpuinfo is wrong

Message ID 1374043709-24770-1-git-send-email-koba@kmckk.co.jp (mailing list archive)
State New, archived
Headers show

Commit Message

Tetsuyuki Kobayashi July 17, 2013, 6:48 a.m. UTC
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@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(+)

Comments

Will Deacon July 18, 2013, 3:51 p.m. UTC | #1
On Wed, Jul 17, 2013 at 07:48:29AM +0100, Tetsuyuki Kobayashi wrote:
> 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@kmckk.co.jp>

[...]

> 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
>  };
> -- 

Acked-by: Will Deacon <will.deacon@arm.com>

Please can you put this into the patch system? It needs to get in for 3.11.

Cheers,

Will
Will Deacon July 22, 2013, 1:45 p.m. UTC | #2
On Thu, Jul 18, 2013 at 04:51:15PM +0100, Will Deacon wrote:
> On Wed, Jul 17, 2013 at 07:48:29AM +0100, Tetsuyuki Kobayashi wrote:
> > 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@kmckk.co.jp>
> 
> [...]
> 
> > 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
> >  };
> > -- 
> 
> Acked-by: Will Deacon <will.deacon@arm.com>
> 
> Please can you put this into the patch system? It needs to get in for 3.11.

I still can't see this in the patch system. I've tested it on A5, A7, A9 and
A15 and it works as expected.

Will
diff mbox

Patch

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
 };