Le 13/08/2023 à 21:38, Erhard Furtner a écrit : > On Fri, 11 Aug 2023 06:45:14 +0000 > Christophe Leroy <christophe.le...@csgroup.eu> wrote: > >> Le 11/08/2023 à 01:48, Erhard Furtner a écrit : >>> I wanted to fire up my PowerMac G4 MDD (Dual CPU) with a KASAN debug build >>> of kernel 6.5-rc5 for testing purposes. But the kernel fails to boot at a >>> very early stage. I only get a white screen reading >>> "done >>> found display: /pci@f0000000/ATY,AlteracParent@10/ATY,Alterac_B@1, >>> opening..." >> >> Can you try with CONFIG_PPC_EARLY_DEBUG and see if you get more >> information on the screen ? > > With CONFIG_PPC_EARLY_DEBUG set booting continues and I get two more lines on > a white screen: > > [ 0.000000] printk: bootconsole [udbg0] enabled > [ 0.000000] Total memory = 2048MB; using 4096kB for hash table > > Afterwards the G4 freezes.
Interesting. That means we get stuck somewhere around MMU_init() We know that MMU_init_hw() is called and runs at least until: pr_info("Total memory = %lldMB; using %ldkB for hash table\n", (unsigned long long)(total_memory >> 20), Hash_size >> 10); But we never reach the print in setup_kuap() which is itself called by set_kup(): pr_info("Activating Kernel Userspace Access Protection\n"); Could you try to narrow more the issue by spreading pr_info() at places in the code below and/or the called functions ? Either we never come back from MMU_init_hw(), or one of mapin_ram() btext_unmap() kasan_mmu_init() fails. So the piece of code we are interested in is located in arch/powerpc/mm/init_32.c and is: /* Initialize the MMU hardware */ if (ppc_md.progress) ppc_md.progress("MMU:hw init", 0x300); ==> MMU_init_hw(); /* Map in all of RAM starting at KERNELBASE */ if (ppc_md.progress) ppc_md.progress("MMU:mapin", 0x301); mapin_ram(); /* Initialize early top-down ioremap allocator */ ioremap_bot = IOREMAP_TOP; if (ppc_md.progress) ppc_md.progress("MMU:exit", 0x211); /* From now on, btext is no longer BAT mapped if it was at all */ #ifdef CONFIG_BOOTX_TEXT btext_unmap(); #endif kasan_mmu_init(); ==> setup_kup(); Christophe > > By chane I found out another interesting thing: This only happens on cold > boots. > > If I boot the G4 up with another kernel first and boot the SMP KASAN kernel > afterwards it just boots up fine too! On further reboots the SMP KASAN kernel > keeps booting up normally. Until I turn the machine off - and next time I > turn it on the same SMP KASAN kernel fails booting again as described. > Strange... > > This behaviour however is reproducible. Tried that procedure 15-20 times just > to be sure. Hope you can make something out of it. > > Attached is a dmesg of a successful SMP KASAM kernel boot attempt when a > working kernel was booted first. > > Regards, > Erhard F.