Re: Regression: Linux v5.15+ does not boot on Freescale P2020
From: Pali Rohár <pali@kernel.org>
Date: 2022-07-23 15:07:13
Also in:
lkml
Hello, On Saturday 23 July 2022 14:42:22 Christophe Leroy wrote:
Hello, Le 22/07/2022 à 11:09, Pali Rohár a écrit :quoted
Hello! 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.
quoted
I run git bisect and it found following commit: 9401f4e46cf6965e23738f70e149172344a01eef is the first bad commit commit 9401f4e46cf6965e23738f70e149172344a01eef Author: Christophe Leroy [off-list ref] 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 [off-list ref] Signed-off-by: Michael Ellerman [off-list ref] Link: https://lore.kernel.org/r/1fc81f07cabebb875b963e295408cc3dd38c8d85.1614674882.git.christophe.leroy@csgroup.eu (local) :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.
Christophequoted
I have looked into e500 Reference Manual for lwarx instruction (page 562) https://www.nxp.com/files-static/32bit/doc/ref_manual/EREF_RM.pdf and both 0 and 1 values for EH flag should be supported.