Re: PPC32: Boot regression on Nintendo Wii, after create_branch rework in 5.8
From: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Date: 2021-04-28 18:20:41
Hi, On Wed, Apr 28, 2021 at 11:33:24AM +1000, Jordan Niethe wrote:
On Mon, Apr 26, 2021 at 1:40 AM Jonathan Neuschäfer [off-list ref] wrote:quoted
Hi, I recently booted my Wii again, and I noticed a regression at boot time. Output stops after the "Finalizing device tree... flat tree at 0xXXXXXX" message. I bisected it to this commit in the 5.8 development cycle: commit 7c95d8893fb55869882c9f68f4c94840dc43f18f Author: Jordan Niethe [off-list ref] Date: Wed May 6 13:40:25 2020 +1000 powerpc: Change calling convention for create_branch() et. al.
[...]
quoted hunk ↗ jump to hunk
quoted
Do you have any hints on how to debug and/or fix this issue?Thanks for bisecting and reporting. The "Finalizing device tree... flat tree at 0xXXXXXX" message comes from the bootwrapper so if that is the last output it must be crashing pretty early. Commit 7c95d8893fb5 ("powerpc: Change calling convention for create_branch() et. al.") made a change to machine_init() in setup_32.c which seems like it might be a likely culprit for causing early crashing. The branch that is created and patched is just for optimization, so to see if that is in fact the problem it might be worth trying to boot with a patch like belowdiff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c --- a/arch/powerpc/kernel/setup_32.c +++ b/arch/powerpc/kernel/setup_32.c@@ -87,9 +87,6 @@ notrace void __init machine_init(u64 dt_ptr) patch_instruction_site(&patch__memcpy_nocache, ppc_inst(PPC_INST_NOP)); - create_cond_branch(&insn, addr, branch_target(addr), 0x820000); - patch_instruction(addr, insn); /* replace b by bne cr0 */ - /* Do some early initialization based on the flat device tree */ early_init_devtree(__va(dt_ptr));
This brings no improvement, unfortunately. The output is still: top of MEM2 @ 13F00000 zImage starting: loaded at 0x00b00000 (sp: 0x01145f90) Allocating 0xae3970 bytes for kernel... Decompressing (0x00000000 <- 0x00b11000:0x01143576)... Done! Decompressed 0xa65fdc bytes Linux/PowerPC load: root=/dev/mmcblk0p2 rootwait console=usbgecko1 Finalizing device tree... flat tree at 0x11467a0 I'll probably dig deeper next weekend. Jonathan
Attachments
- signature.asc [application/pgp-signature] 833 bytes