Re: [PATCH 1/2] MIPS: Allow MIPS32R2 kernel to run on P5600 and M5150

From: Serge Semin
Date: Tue May 30 2023 - 08:51:43 EST


On Tue, May 30, 2023 at 03:41:30PM +0300, Serge Semin wrote:
> On Tue, May 30, 2023 at 01:16:32PM +0100, Maciej W. Rozycki wrote:
> > On Tue, 30 May 2023, Jiaxun Yang wrote:
> >
> > > > Sure, but this change is not needed for it. You just need to declare
> > > > which ISA revisions your platform supports and leave `__get_cpu_type'
> > > > alone. It has worked like that for a decade now.
> > >
> > > I’m afraid it won’t work as you expected.
> > >
> > > Actually I ran into a problem that `case CPU_P5600` in c-r4k.c is optimised out
> > > by compiler, because the codepath is marked as unreachable.
> >
> > Maybe there's a bug elsewhere then. Send me your .config and I'll try to
> > reproduce it.
>
> I may have misunderstood something, but it seems like there is no such
> problem on my P5600 system:
>
> [fancer@mobilestation] kernel $ grep -r P5600 -B2 -A2 arch/mips/mm/c-r4k.c
> case CPU_1004K:
> case CPU_INTERAPTIV:
> case CPU_P5600:
> case CPU_PROAPTIV:
> case CPU_M5150:
> --
> case CPU_P6600:
> case CPU_M6250:
> pr_info("MIPS P5600 is here\n");
> if (!(read_c0_config7() & MIPS_CONF7_IAR) &&
> (c->icache.waysize > PAGE_SIZE))
>
> Log:
> [ 0.000000] Linux version 6.4.0-rc1-bt1-00235-gf9efd6b74b12-dirty (fancer@mobilestation) (mipsel-baikal-linux-gcc (GCC) 7.3.0, GNU ld (GNU Binutils) 2.30.0.20180208) #1
> 275 SMP PREEMPT Tue May 30 15:30:48 MSK 2023
> [ 0.000000] CPU0 revision is: 0001a830 (MIPS P5600)
> [ 0.000000] FPU revision is: 30f30320
> [ 0.000000] MSA revision is: 00000320
> ...
> [ 0.000000] VPE topology {1,1} total 2
> [ 0.000000] MIPS P5600 is here
> ...

Here is the CPU-related kernel configs:
root@msbt2:~# cat /proc/config.gz | gunzip | grep CPU_MIPS
# CONFIG_CPU_MIPS32_R2 is not set
# CONFIG_CPU_MIPS32_R5 is not set
# CONFIG_CPU_MIPS32_3_5_FEATURES is not set
CONFIG_CPU_MIPS32_R5_FEATURES=y
CONFIG_CPU_MIPS32_R5_XPA=y
CONFIG_SYS_HAS_CPU_MIPS32_R2=y
CONFIG_SYS_HAS_CPU_MIPS32_R3_5=y
CONFIG_SYS_HAS_CPU_MIPS32_R5=y
CONFIG_CPU_MIPS32=y
CONFIG_CPU_MIPSR5=y
CONFIG_CPU_MIPSR2_IRQ_VI=y
CONFIG_CPU_MIPSR2_IRQ_EI=y

-Serge(y)

>
> -Serge(y)
>
> >
> > Maciej