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

From: Jiaxun Yang
Date: Tue May 30 2023 - 09:07:19 EST




> 2023年5月30日 13:51,Serge Semin <fancer.lancer@xxxxxxxxx> 写道:
>
> 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

I was trying to run kernel compiled with CONFIG_CPU_MIPS32_R2 on P5600.

Thanks
- Jiaxun

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