On Thu, Jun 20, 2024 at 6:40 PM Emil Renner Berthing <emil.renner.berthing@xxxxxxxxxxxxx> wrote: > > Anup Patel wrote: > > On Wed, Jun 19, 2024 at 11:16 PM Emil Renner Berthing > > <emil.renner.berthing@xxxxxxxxxxxxx> wrote: > > > > > > Anup Patel wrote: > > > > On Tue, Jun 18, 2024 at 7:00 PM Emil Renner Berthing > > > > <emil.renner.berthing@xxxxxxxxxxxxx> wrote: > > > > > > > > > > Anup Patel wrote: > > > > > > The PLIC driver does not require very early initialization so convert > > > > > > it into a platform driver. > > > > > > > > > > > > After conversion, the PLIC driver is probed after CPUs are brought-up > > > > > > so setup cpuhp state after context handler of all online CPUs are > > > > > > initialized otherwise PLIC driver crashes for platforms with multiple > > > > > > PLIC instances. > > > > > > > > > > > > Signed-off-by: Anup Patel <apatel@xxxxxxxxxxxxxxxx> > > > > > > > > > > Hi Anup, > > > > > > > > > > Sorry for the late reply to the mailing list, but ever since 6.9 where this was > > > > > applied my Allwinner D1 based boards no longer boot. This is the log of my > > > > > LicheeRV Dock booting plain 6.10-rc4, locking up and then rebooting due to the > > > > > the watchdog timing out: > > > > > > > > > > https://pastebin.com/raw/nsbzgEKW > > > > > > > > > > On 6.10-rc4 I can bring the same board to boot by reverting this patch and all > > > > > patches building on it. Eg.: > > > > > > > > > > git revert e306a894bd51 a7fb69ffd7ce abb720579490 \ > > > > > 956521064780 a15587277a24 6c725f33d67b \ > > > > > b68d0ff529a9 25d862e183d4 8ec99b033147 > > > > > > > > Does your board boot with only SBI timer driver enabled ? > > > > > > I'm not 100% sure this is what you mean, but with this change I can disable > > > CONFIG_SUN4I_TIMER: > > > > > > diff --git a/arch/riscv/Kconfig.socs b/arch/riscv/Kconfig.socs > > > index f51bb24bc84c..0143545348eb 100644 > > > --- a/arch/riscv/Kconfig.socs > > > +++ b/arch/riscv/Kconfig.socs > > > @@ -39,7 +39,6 @@ config ARCH_SUNXI > > > bool "Allwinner sun20i SoCs" > > > depends on MMU && !XIP_KERNEL > > > select ERRATA_THEAD > > > - select SUN4I_TIMER > > > help > > > This enables support for Allwinner sun20i platform hardware, > > > including boards based on the D1 and D1s SoCs. > > > > > > > > > But unfortunately the board still doesn't boot: > > > https://pastebin.com/raw/AwRxcfeu > > > > I think we should enable debug prints in DD core and see > > which device is not getting probed due to lack of a provider. > > > > Just add "#define DEBUG" at the top in drivers/base/core.c > > and boot again with "loglevel=8" kernel parameter (along with > > the above change). > > With the above changes this is what I get: > https://pastebin.com/raw/JfRrEahT You should see prints like below which show producer consumer relation: [ 0.214589] /soc/rtc@101000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.214966] /soc/serial@10000000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.215443] /soc/virtio_mmio@10008000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.216041] /soc/virtio_mmio@10007000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.216482] /soc/virtio_mmio@10006000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.216868] /soc/virtio_mmio@10005000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.217477] /soc/virtio_mmio@10004000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.217949] /soc/virtio_mmio@10003000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.218595] /soc/virtio_mmio@10002000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.219280] /soc/virtio_mmio@10001000 Linked as a fwnode consumer to /soc/plic@c000000 [ 0.219908] /soc/plic@c000000 Linked as a fwnode consumer to /cpus/cpu@0/interrupt-controller [ 0.220800] /soc/plic@c000000 Linked as a fwnode consumer to /cpus/cpu@1/interrupt-controller [ 0.221323] /soc/plic@c000000 Linked as a fwnode consumer to /cpus/cpu@2/interrupt-controller [ 0.221838] /soc/plic@c000000 Linked as a fwnode consumer to /cpus/cpu@3/interrupt-controller [ 0.222347] /soc/clint@2000000 Linked as a fwnode consumer to /cpus/cpu@0/interrupt-controller [ 0.222769] /soc/clint@2000000 Linked as a fwnode consumer to /cpus/cpu@1/interrupt-controller [ 0.223864] /soc/clint@2000000 Linked as a fwnode consumer to /cpus/cpu@2/interrupt-controller [ 0.224370] /soc/clint@2000000 Linked as a fwnode consumer to /cpus/cpu@3/interrupt-controller [ 0.225217] /soc/pci@30000000 Linked as a fwnode consumer to /soc/plic@c000000 To get further prints, I suggest enabling SBI_HVC console and use "console=hvc0" as kernel parameter. Regards, Anup