Re: "Duplicated clock registration" panic on -CURRENT

Emmanuel Vadot <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>
 Hi Peter,

On Sun, 19 Jan 2025 18:40:49 +1100
Peter Jeremy <[email protected]> wrote:

> I have an old BananaPi M1 (Allwinner A20, dual-core Cortex-A7) that I
> am trying to upgrade from FreeBSD 14 to FreeBSD 15-CURRENT and got an
> an unexpected panic during boot with my custom kernel.  I tried
> building a GENERIC kernel and got the same.  OTOH, I'm not seeing any
> problems with the same revision on old RaspberryPi 2 (BCM2836).  The
> cause isn't clear to me and I wonder if anyone can suggest where to
> look for the cause.
> 
> FreeBSD 15.0-CURRENT #0 current-c296623-g9d6043f980a2-dirty: Sun Jan 19 18:01:23 AEDT 2025
>     [email protected]:/usr/obj/usr/src/arm.armv7/sys/GENERIC arm
> ...
> panic: Duplicated clock registration: osc32k
> 
> cpuid = 0
> time = 1
> KDB: stack backtrace:
> db_trace_self() at db_trace_self
>          pc = 0xc060c7d8  lr = 0xc00752c8 (db_trace_self_wrapper+0x30)
>          sp = 0xc0e14b48  fp = 0xc0e14c60
> db_trace_self_wrapper() at db_trace_self_wrapper+0x30
>          pc = 0xc00752c8  lr = 0xc02f9468 (vpanic+0x140)
>          sp = 0xc0e14c68  fp = 0xc0e14c88
>          r4 = 0x00000100  r5 = 0x00000000
>          r6 = 0xc07108b4  r7 = 0xc0b45b04
> vpanic() at vpanic+0x140
>          pc = 0xc02f9468  lr = 0xc02f9328 (vpanic)
>          sp = 0xc0e14c90  fp = 0xc0e14c94
>          r4 = 0xd408ea00  r5 = 0xc08e8310
>          r6 = 0xc0775126  r7 = 0xd408ea00
>          r8 = 0xc095f8b8  r9 = 0xc08e8470
>         r10 = 0xd408ea00
> vpanic() at vpanic
>          pc = 0xc02f9328  lr = 0xc008963c (clknode_create+0x134)
>          sp = 0xc0e14c9c  fp = 0xc0e14cf0
>          r4 = 0xd408ea00  r5 = 0xc095f8b8
>          r6 = 0xc08e8470  r7 = 0xd408ea00
>          r8 = 0xc0e14c94  r9 = 0xc02f9328
>         r10 = 0xc0e14c9c
> clknode_create() at clknode_create+0x134
>          pc = 0xc008963c  lr = 0xc008caec (clknode_fixed_register+0x20)
>          sp = 0xc0e14cf8  fp = 0xc0e14d08
>          r4 = 0xd6d05e80  r5 = 0xc095f8b8
>          r6 = 0xd6d05e80  r7 = 0xc095f8e8
>          r8 = 0xc0b351a4  r9 = 0xc33ba7c0
>         r10 = 0x80040003
> clknode_fixed_register() at clknode_fixed_register+0x20
>          pc = 0xc008caec  lr = 0xc0648c64 (aw_rtc_attach+0x1c0)
>          sp = 0xc0e14d10  fp = 0xc0e14d50
>          r4 = 0xd4015b80  r5 = 0xc3330a40
>          r6 = 0xd6d05e80 r10 = 0x80040003
> aw_rtc_attach() at aw_rtc_attach+0x1c0
>          pc = 0xc0648c64  lr = 0xc0338d00 (device_attach+0x5c8)
>          sp = 0xc0e14d58  fp = 0xc0e14da0
>          r4 = 0xd4015b80  r5 = 0xd4017580
>          r6 = 0x387b0459  r7 = 0x00000000
>          r8 = 0xc0bbbf24 r10 = 0x80040003
> device_attach() at device_attach+0x5c8
>          pc = 0xc0338d00  lr = 0xc033b038 (bus_generic_new_pass+0x13c)
>          sp = 0xc0e14da8  fp = 0xc0e14dc0
>          r4 = 0xd4015b80  r5 = 0xc091595c
>          r6 = 0xc0985490  r7 = 0xc075a0c1
>          r8 = 0xc0b53234  r9 = 0xc09849d4
>         r10 = 0xc0b351a8
> bus_generic_new_pass() at bus_generic_new_pass+0x13c
>          pc = 0xc033b038  lr = 0xc033afc4 (bus_generic_new_pass+0xc8)
>          sp = 0xc0e14dc8  fp = 0xc0e14de0
>          r4 = 0xd4017580  r5 = 0xc091595c
>          r6 = 0xc0985490  r7 = 0xc075a0c1
>          r8 = 0xc0b53234 r10 = 0xc0b351a8
> bus_generic_new_pass() at bus_generic_new_pass+0xc8
>          pc = 0xc033afc4  lr = 0xc033afc4 (bus_generic_new_pass+0xc8)
>          sp = 0xc0e14de8  fp = 0xc0e14e00
>          r4 = 0xd4017b00  r5 = 0xc091595c
>          r6 = 0xc0985490  r7 = 0xc075a0c1
>          r8 = 0xc0b53234 r10 = 0xc0b351a8
> bus_generic_new_pass() at bus_generic_new_pass+0xc8
>          pc = 0xc033afc4  lr = 0xc033afc4 (bus_generic_new_pass+0xc8)
>          sp = 0xc0e14e08  fp = 0xc0e14e20
>          r4 = 0xd4017b80  r5 = 0xc091595c
>          r6 = 0xc0985490  r7 = 0xc075a0c1
>          r8 = 0xc0b53234 r10 = 0xc0b351a8
> bus_generic_new_pass() at bus_generic_new_pass+0xc8
>          pc = 0xc033afc4  lr = 0xc033d8a4 (root_bus_configure+0x48)
>          sp = 0xc0e14e28  fp = 0xc0e14e40
>          r4 = 0xc091595c  r5 = 0xd4018000
>          r6 = 0xc0b53234  r7 = 0xd403d9e0
>          r8 = 0xc0b53258 r10 = 0xc0b351a8
> root_bus_configure() at root_bus_configure+0x48
>          pc = 0xc033d8a4  lr = 0xc027dcec (mi_startup+0x228)
>          sp = 0xc0e14e48  fp = 0xc0e14e88
>          r4 = 0xc0b351ac  r5 = 0x03800000
>          r6 = 0xc095c3f4  r7 = 0xc0916094
>          r8 = 0x00000000 r10 = 0xc0b351a8
> mi_startup() at mi_startup+0x228
>          pc = 0xc027dcec  lr = 0xc027dcec (mi_startup+0x228)
>          sp = 0xc0e14e6c  fp = 0xc0e14e88
> KDB: enter: panic
> 
> -- 
> Peter Jeremy

 Looks like the dtb have a node for this fixed clock (see
https://cgit.freebsd.org/src/tree/sys/contrib/device-tree/src/arm/allwinner/sun7i-a20.dtsi#n214)
and we also export a clock in the rtc driver
https://cgit.freebsd.org/src/tree/sys/arm/allwinner/aw_rtc.c#n259
 I think that we shouldn't install the clocks if there is no
clock-output-names property at all.

-- 
Emmanuel Vadot <[email protected]> <[email protected]>
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.