Subject: Re: Regression: Linux v5.15+ does not boot on Freescale P2020

From: Michael Ellerman <[email-masked]>
Date: Mon, 25 Jul 2022 18:20:01 +1000

Pali Rohár <[email-masked]> writes:
> On Saturday 23 July 2022 14:42:22 Christophe Leroy wrote:
>> Le 22/07/2022 à 11:09, Pali Rohár a écrit :
>> > Trying to boot mainline Linux kernel v5.15+, including current version
>> > from master branch, on Freescale P2020 does not work. Kernel does not
>> > print anything to serial console, seems that it does not work and after
>> > timeout watchdog reset the board.
>> 
>> Can you provide more information ? Which defconfig or .config, which 
>> version of gcc, etc ... ?
>
> I used default defconfig for mpc85xx with gcc 8, compilation for e500
> cores.
>
> If you need exact .config content I can send it during week.
>
>> > I run git bisect and it found following commit:
>> > 
>> > 9401f4e46cf6965e23738f70e149172344a01eef is the first bad commit
>> > commit 9401f4e46cf6965e23738f70e149172344a01eef
>> > Author: Christophe Leroy <[email-masked]>
>> > Date:   Tue Mar 2 08:48:11 2021 +0000
>> > 
>> >      powerpc: Use lwarx/ldarx directly instead of PPC_LWARX/LDARX macros
>> > 
>> >      Force the eh flag at 0 on PPC32.
>> > 
>> >      Signed-off-by: Christophe Leroy <[email-masked]>
>> >      Signed-off-by: Michael Ellerman <[email-masked]>
>> >      Link: https://lore.kernel.org/r/1fc81f07[email-masked]
>> > 
>> > :040000 040000 fe6747e45736dfcba74914a9445e5f70f5120600 96358d08b65d3200928a973efb5b969b3d45f2b0 M      arch
>> > 
>> > 
>> > If I revert this commit then kernel boots correctly. It also boots fine
>> > if I revert this commit on top of master branch.
>> > 
>> > Freescale P2020 has two 32-bit e500 powerpc cores.
>> > 
>> > Any idea why above commit is causing crash of the kernel? And why it is
>> > needed? Could eh flag set to 0 cause deadlock?
>> 
>> Setting the eh flag to 0 is not supposed to be a change introduced by 
>> that commit. Indeed that commit is not supposed to change anything at 
>> all in the generated code.
>
> My understanding of that commit is that it changed eh flag parameter
> from 1 to 0 for 32-bit powerpc, including also p2020.

Can you compare the disassembly before and after and find a place where
an instruction has changed?

cheers