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

Catalin Marinas catalin.marinas at arm.com
Tue Jan 19 07:32:38 EST 2021


On Tue, Jan 19, 2021 at 07:26:31PM +0800, 乱石 wrote:
> 锟斤拷 2021/1/19 19:01, Will Deacon 写锟斤拷:
> > On Tue, Jan 19, 2021 at 06:55:10PM +0800, Liguang Zhang wrote:
> > > CPU architecture is assigned to be a fixed value, it should be obtained
> > > from midr register.
> > > 
> > > Signed-off-by: Liguang Zhang <zhangliguang at linux.alibaba.com>
> > > ---
> > >   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



More information about the linux-arm-kernel mailing list