[PATCH] arm64/cpuinfo: Show right CPU architecture information

Subsystems: arm64 port (aarch64 architecture), the rest

STALE2028d

4 messages, 3 authors, 2021-01-19 · open the first message on its own page

[PATCH] arm64/cpuinfo: Show right CPU architecture information

From: Liguang Zhang <hidden>
Date: 2021-01-19 11:07:37

CPU architecture is assigned to be a fixed value, it should be obtained
from midr register.

Signed-off-by: Liguang Zhang <redacted>
---
 arch/arm64/kernel/cpuinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
index 77605aec25fe..0bd11e0fe9f2 100644
--- a/arch/arm64/kernel/cpuinfo.c
+++ b/arch/arm64/kernel/cpuinfo.c
@@ -191,7 +191,7 @@ static int c_show(struct seq_file *m, void *v)
 
 		seq_printf(m, "CPU implementer\t: 0x%02x\n",
 			   MIDR_IMPLEMENTOR(midr));
-		seq_printf(m, "CPU architecture: 8\n");
+		seq_printf(m, "CPU architecture: %d\n", MIDR_ARCHITECTURE(midr));
 		seq_printf(m, "CPU variant\t: 0x%x\n", MIDR_VARIANT(midr));
 		seq_printf(m, "CPU part\t: 0x%03x\n", MIDR_PARTNUM(midr));
 		seq_printf(m, "CPU revision\t: %d\n\n", MIDR_REVISION(midr));
-- 
2.19.1.6.gb485710b


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH] arm64/cpuinfo: Show right CPU architecture information

From: Will Deacon <will@kernel.org>
Date: 2021-01-19 11:18:18

On Tue, Jan 19, 2021 at 06:55:10PM +0800, Liguang Zhang wrote:
quoted hunk
CPU architecture is assigned to be a fixed value, it should be obtained
from midr register.

Signed-off-by: Liguang Zhang <redacted>
---
 arch/arm64/kernel/cpuinfo.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
index 77605aec25fe..0bd11e0fe9f2 100644
--- a/arch/arm64/kernel/cpuinfo.c
+++ b/arch/arm64/kernel/cpuinfo.c
@@ -191,7 +191,7 @@ static int c_show(struct seq_file *m, void *v)
 
 		seq_printf(m, "CPU implementer\t: 0x%02x\n",
 			   MIDR_IMPLEMENTOR(midr));
-		seq_printf(m, "CPU architecture: 8\n");
+		seq_printf(m, "CPU architecture: %d\n", MIDR_ARCHITECTURE(midr));
Huh? Won't this always return 0xf?

Will

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH] arm64/cpuinfo: Show right CPU architecture information

From: 乱石 <hidden>
Date: 2021-01-19 11:39:49

在 2021/1/19 19:01, Will Deacon 写道:
On Tue, Jan 19, 2021 at 06:55:10PM +0800, Liguang Zhang wrote:
quoted
CPU architecture is assigned to be a fixed value, it should be obtained
from midr register.

Signed-off-by: Liguang Zhang <redacted>
---
  arch/arm64/kernel/cpuinfo.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
index 77605aec25fe..0bd11e0fe9f2 100644
--- a/arch/arm64/kernel/cpuinfo.c
+++ b/arch/arm64/kernel/cpuinfo.c
@@ -191,7 +191,7 @@ static int c_show(struct seq_file *m, void *v)
  
  		seq_printf(m, "CPU implementer\t: 0x%02x\n",
  			   MIDR_IMPLEMENTOR(midr));
-		seq_printf(m, "CPU architecture: 8\n");
+		seq_printf(m, "CPU architecture: %d\n", MIDR_ARCHITECTURE(midr));
Huh? Won't this always return 0xf?
Hi Will,

I'm not sure. My platform return 0xf, but /proc/cpuinfo show 8. Why we 
assign a fixed

value to cpu architecture?

Regards

Liguang Zhang
Will
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Re: [PATCH] arm64/cpuinfo: Show right CPU architecture information

From: Catalin Marinas <catalin.marinas@arm.com>
Date: 2021-01-19 12:42:12

On Tue, Jan 19, 2021 at 07:26:31PM +0800, 乱石 wrote:
锟斤拷 2021/1/19 19:01, Will Deacon 写锟斤拷:
quoted
On Tue, Jan 19, 2021 at 06:55:10PM +0800, Liguang Zhang wrote:
quoted
CPU architecture is assigned to be a fixed value, it should be obtained
from midr register.

Signed-off-by: Liguang Zhang <redacted>
---
  arch/arm64/kernel/cpuinfo.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c
index 77605aec25fe..0bd11e0fe9f2 100644
--- a/arch/arm64/kernel/cpuinfo.c
+++ b/arch/arm64/kernel/cpuinfo.c
@@ -191,7 +191,7 @@ static int c_show(struct seq_file *m, void *v)
  		seq_printf(m, "CPU implementer\t: 0x%02x\n",
  			   MIDR_IMPLEMENTOR(midr));
-		seq_printf(m, "CPU architecture: 8\n");
+		seq_printf(m, "CPU architecture: %d\n", MIDR_ARCHITECTURE(midr));
Huh? Won't this always return 0xf?
Hi Will,

I'm not sure. My platform return 0xf, but /proc/cpuinfo show 8. Why we
assign a fixed

value to cpu architecture?
Because 0xf first appeared on some ARMv6 CPUs (1176, 11MPcore and some
newer revisions of 1136). A field value of 0xf means don't bother with
architecture version but rather check the CPUID information for the
features you need. We decided to call it 8 here with 64-bit as that was
announced as ARMv8. A 32-bit kernel running on ARMv8 hardware would
report 7 (as it would on some ARMv6 hardware like 1176 etc.)

-- 
Catalin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help