Re: 10.0 boot hangs on RIoTboard

Rui-Xiang Guo <[email protected]>
Newsgroups gmane.os.netbsd.ports.arm
Message-ID <Zs8d6cJ428yIfWIj@picohive>
On Wed, Aug 28, 2024 at 02:46:42PM +1200, Lloyd Parkes wrote:
> On Tue, 2024-08-27 at 10:33 +0800, Rui-Xiang Guo wrote:
> > Hi,
> > It needs a patch to fix the FDT matching issue:
> > https://github.com/picohive/netbsd-riotboard/blob/main/imx6_clk.c.diff
> 
> That diff looks shouldn't be needed if you are using the DTB file from
> NetBSD. Maybe??? 

That is according to
https://github.com/NetBSD/src/blob/netbsd-10/sys/external/gpl2/dts/dist/arch/arm/boot/dts/imx6qdl.dtsi
which is included by
https://github.com/NetBSD/src/blob/netbsd-10/sys/external/gpl2/dts/dist/arch/arm/boot/dts/imx6dl-riotboard.dts

If it boots from original GENERIC, I get many "couldn't get clock" errors:

[   1.0000000] NetBSD/evbarm (fdt) booting ...
[   1.0000000] [ Kernel symbol table missing! ]
PSCI: no /psci node found
arm_fdt_cpu_mpstart: failed to enable CPU 0x1
[   1.0000000] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
[   1.0000000]     2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
[   1.0000000]     2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
[   1.0000000]     2024
[   1.0000000]     The NetBSD Foundation, Inc.  All rights reserved.
[   1.0000000] Copyright (c) 1982, 1986, 1989, 1991, 1993
[   1.0000000]     The Regents of the University of California.  All rights reserved.

[   1.0000000] NetBSD 10.0 (GENERIC) #0: Thu Mar 28 08:33:33 UTC 2024
[   1.0000000]  [email protected]:/usr/src/sys/arch/evbarm/compile/GENERIC
[   1.0000000] total memory = 1024 MB
[   1.0000000] avail memory = 988 MB
[   1.0000000] armfdt0 (root)
[   1.0000000] simplebus0 at armfdt0: RIoTboard i.MX6S
[   1.0000000] simplebus1 at simplebus0
[   1.0000000] cpus0 at simplebus0
[   1.0000000] simplebus2 at simplebus0
[   1.0000000] simplebus3 at simplebus0
[   1.0000000] cpu0 at cpus0: Cortex-A9 r2p10 (Cortex V7A core)
[   1.0000000] cpu0: DC enabled IC enabled WB enabled LABT branch prediction enabled
[   1.0000000] cpu0: L1 32KB/32B 4-way (256 set) VIPT Instruction cache
[   1.0000000] cpu0: L1 32KB/32B 4-way (256 set) write-back-locking-C PIPT Data cache
[   1.0000000] cpu0: L2 512KB/32B 16-way (1024 set) write-back-locking-D PIPT Unified cache
[   1.0000000] vfp0 at cpu0: NEON MPE (VFP 3.0+), rounding, NaN propagation, denormals
[   1.0000000] cpufreqdt0 at cpu0
[   1.0000000] cpu1 at cpus0: disabled (unresponsive)
[   1.0000000] cpufreqdt1 at cpu1
[   1.0000000] simplebus4 at simplebus1
[   1.0000000] simplebus5 at simplebus1
[   1.0000000] simplebus6 at simplebus4
[   1.0000000] syscon0 at simplebus4: System Controller Registers
[   1.0000000] imx6ccm0 at simplebus4: can't find anatop device
[   1.0000000] gic0 at simplebus1: GIC
[   1.0000000] armgic0 at gic0: Generic Interrupt Controller, 160 sources (149 valid)
[   1.0000000] armgic0: 32 Priorities, 128 SPIs, 5 PPIs, 16 SGIs
[   1.0000000] syscon1 at simplebus4: System Controller Registers
[   1.0000000] imxsnvs0 at simplebus4: Secure Non-Volatile Storage
[   1.0000000] fclock0 at simplebus3: 32768 Hz fixed clock (ckil)
[   1.0000000] fclock1 at simplebus3: 0 Hz fixed clock (ckih1)
[   1.0000000] fclock2 at simplebus3: 24000000 Hz fixed clock (osc)
[   1.0000000] imxgpc0 at simplebus4: General Power Controller
[   1.0000000] imxocotp0 at simplebus5: couldn't get clock
[   1.0000000] l2cc0 at simplebus1
[   1.0000000] arml2cc0 at l2cc0: ARM PL310 r3p2 L2 Cache Controller (disabled)
[   1.0000000] arml2cc0: cache enabled
[   1.0000000] a9ptmr0 at simplebus1: couldn't get clock
[   1.0000000] imxgpio0 at simplebus4: GPIO (gpio@209c000)
[   1.0000000] imxgpio0: interrupting on irq 98
[   1.0000000] imxgpio0: interrupting on irq 99
[   1.0000000] imxgpio0: interrupts 160..191
[   1.0000000] gpio0 at imxgpio0: 32 pins
[   1.0000000] imxgpio1 at simplebus4: GPIO (gpio@20a4000)
[   1.0000000] imxgpio1: interrupting on irq 102
[   1.0000000] imxgpio1: interrupting on irq 103
[   1.0000000] imxgpio1: interrupts 192..223
[   1.0000000] gpio1 at imxgpio1: 32 pins
[   1.0000000] imxgpio2 at simplebus4: GPIO (gpio@20b4000)
[   1.0000000] imxgpio2: interrupting on irq 110
[   1.0000000] imxgpio2: interrupting on irq 111
[   1.0000000] imxgpio2: interrupts 224..255
[   1.0000000] gpio2 at imxgpio2: 32 pins
[   1.0000000] imxgpio3 at simplebus4: GPIO (gpio@20ac000)
[   1.0000000] imxgpio3: interrupting on irq 106
[   1.0000000] imxgpio3: interrupting on irq 107
[   1.0000000] imxgpio3: interrupts 256..287
[   1.0000000] gpio3 at imxgpio3: 32 pins
[   1.0000000] imxgpio4 at simplebus4: GPIO (gpio@20a0000)
[   1.0000000] imxgpio4: interrupting on irq 100
[   1.0000000] imxgpio4: interrupting on irq 101
[   1.0000000] imxgpio4: interrupts 288..319
[   1.0000000] gpio4 at imxgpio4: 32 pins
[   1.0000000] imxgpio5 at simplebus4: GPIO (gpio@20a8000)
[   1.0000000] imxgpio5: interrupting on irq 104
[   1.0000000] imxgpio5: interrupting on irq 105
[   1.0000000] imxgpio5: interrupts 320..351
[   1.0000000] gpio5 at imxgpio5: 32 pins
[   1.0000000] imxgpio6 at simplebus4: GPIO (gpio@20b0000)
[   1.0000000] imxgpio6: interrupting on irq 108
[   1.0000000] imxgpio6: interrupting on irq 109
[   1.0000000] imxgpio6: interrupts 352..383
[   1.0000000] gpio6 at imxgpio6: 32 pins
[   1.0000000] imxi2c0 at simplebus5: couldn't get clock
[   1.0000000] imxi2c1 at simplebus5: couldn't get clock
[   1.0000000] imxuart0 at simplebus6
[   1.0000000] imxuart0: interrupting on irq 58
[   1.0000000] imxuart1 at simplebus5
[   1.0000000] imxuart1: interrupting on irq 59
[   1.0000000] imxuart1: console
[   1.0000000] imxuart2 at simplebus5
[   1.0000000] imxuart2: interrupting on irq 60
[   1.0000000] imxuart3 at simplebus5
[   1.0000000] imxuart3: interrupting on irq 61
[   1.0000000] imxuart4 at simplebus5
[   1.0000000] imxuart4: interrupting on irq 62
[   1.0000000] imxi2c2 at simplebus5: couldn't get clock
[   1.0000000] fregulator0 at simplebus0: usb_otg_vbus
[   1.0000000] fregulator1 at simplebus0: 3P3V
[   1.0000000] fregulator2 at simplebus0: 2P5V
[   1.0000000] imxusbphy0 at simplebus4: couldn't get clock
[   1.0000000] imxusbphy1 at simplebus4: couldn't get clock
[   1.0000000] usbnopphy0 at simplebus0: USB PHY
[   1.0000000] usbnopphy1 at simplebus0: USB PHY
[   1.0000000] /soc/ipu@2400000 at simplebus1 not configured
[   1.0000000] /soc/dma-apbh@110000 at simplebus1 not configured
[   1.0000000] /soc/bus@2000000/sdma@20ec000 at simplebus4 not configured
[   1.0000000] /soc/bus@2000000/pinctrl@20e0000 at simplebus4 not configured
[   1.0000000] /soc/bus@2000000/reset-controller@20d8000 at simplebus4 not configured
[   1.0000000] /soc/sram@900000 at simplebus1 not configured
[   1.0000000] /soc/bus@2000000/anatop@20c8000/regulator-vddpu at syscon1 not configured
[   1.0000000] /soc/bus@2000000/iomuxc-gpr@20e0000/mux-controller at syscon0 not configured
[   1.0000000] /soc/bus@2100000/usbmisc@2184800 at simplebus5 not configured
[   1.0000000] enet0 at simplebus5: couldn't get clock ipg
[   1.0000000] /soc/bus@2000000/iomuxc-gpr@20e0000/ipu1_csi0_mux at syscon0 not configured
[   1.0000000] /soc/bus@2000000/iomuxc-gpr@20e0000/ipu1_csi1_mux at syscon0 not configured
[   1.0000000] dwhdmi0 at simplebus1: couldn't enable iahb clock
[   1.0000000] /soc/bus@2000000/anatop@20c8000/regulator-vddcore at syscon1 not configured
[   1.0000000] /soc/bus@2000000/anatop@20c8000/regulator-vddsoc at syscon1 not configured
[   1.0000000] /soc/bus@2000000/spba-bus@2000000/ssi@2028000 at simplebus6 not configured
[   1.0000000] armpmu0 at simplebus0: Performance Monitor Unit
[   1.0000000] /soc/gpu@130000 at simplebus1 not configured
[   1.0000000] /soc/gpu@134000 at simplebus1 not configured
[   1.0000000] /soc/bus@2000000/spba-bus@2000000/asrc@2034000 at simplebus6 not configured
[   1.0000000] /soc/bus@2000000/vpu@2040000 at simplebus4 not configured
[   1.0000000] imxpwm0 at simplebus4imxpwm0: interrupting on irq 115
: couldn't get clk
[   1.0000000] imxpwm1 at simplebus4imxpwm1: interrupting on irq 116
: couldn't get clk
[   1.0000000] imxpwm2 at simplebus4imxpwm2: interrupting on irq 117
: couldn't get clk
[   1.0000000] imxpwm3 at simplebus4imxpwm3: interrupting on irq 118
: couldn't get clk
[   1.0000000] /soc/bus@2000000/timer@2098000 at simplebus4 not configured
[   1.0000000] imxwdog0 at simplebus4: i.MX Watchdog Timer, default period is 10 seconds
[   1.0000000] /soc/bus@2000000/anatop@20c8000/regulator-1p1 at syscon1 not configured
[   1.0000000] /soc/bus@2000000/anatop@20c8000/regulator-3p0 at syscon1 not configured
[   1.0000000] /soc/bus@2000000/anatop@20c8000/regulator-2p5 at syscon1 not configured
[   1.0000000] /soc/bus@2000000/anatop@20c8000/tempmon at syscon1 not configured
[   1.0000000] /soc/bus@2100000/crypto@2100000 at simplebus5 not configured
[   1.0000000] imxusbc0 at simplebus5
: couldn't get clock
[   1.0000000] imxusbc1 at simplebus5
: couldn't get clock
[   1.0000000] sdhc0 at simplebus5: couldn't get clock
[   1.0000000] sdhc1 at simplebus5: couldn't get clock
[   1.0000000] sdhc2 at simplebus5: couldn't get clock
[   1.0000000] /soc/bus@2100000/memory-controller@21b0000 at simplebus5 not configured
[   1.0000000] /soc/bus@2100000/audmux@21d8000 at simplebus5 not configured
[   1.0000000] gpioleds0 at simplebus0: user1 user2
[   1.0000000] /capture-subsystem at simplebus0 not configured
[   1.0000000] /display-subsystem at simplebus0 not configured
[   1.0000000] /sound at simplebus0 not configured
[   1.0000000] /soc/bus@2100000/vdoa@21e4000 at simplebus5 not configured
[   1.0000000] panic: cpu_initclocks: no timer registered
[   1.0000000] cpu0: Begin traceback...
[   1.0000000] 0x80b58e74: netbsd:db_panic+0x14
[   1.0000000] 0x80b58e94: netbsd:vpanic+0x114
[   1.0000000] 0x80b58eac: netbsd:panic+0x24
[   1.0000000] 0x80b58ecc: netbsd:cpu_initclocks+0x38
[   1.0000000] 0x80b58f34: netbsd:initclocks+0x30
[   1.0000000] 0x80b58f9c: netbsd:main+0x29c
[   1.0000000] 0x80b58fac: netbsd:kernel_text+0x54
[   1.0000000] cpu0: End traceback...
Stopped in pid 0.0 (system) at  netbsd:cpu_Debugger+0x4:        bx      r14
db{0}>

> Every time someone has a problem with the FDT I learn more.  
> 
> I'm looking at what needs to be done to import the latest Linux
> devicetrees into NetBSD and I'll see if I can find a way to report this
> sort of problem usefully.

I am not sure if other imx6qdl series boards have the similar issue.

-rxg
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.