[BBB] kernel panic during boot

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[BBB] kernel panic during boot

Manuel Stühn
Hi,
booting a FreeBSD CURRENT r322118 on a BBB (GENERIC-NODEBUG kernel) ends
with a panic:

[...]
iichb0: <TI I2C Controller> mem 0x44e0b000-0x44e0bfff irq 17 on
simplebus0
iichb0: I2C revision 4.0 FIFO size: 32 bytes
iicbus0: <OFW I2C bus> on iichb0
panic: timed sleep before timers are working
cpuid = 0
time = 1
KDB: stack backtrace:
db_trace_self() at db_trace_self
[...]

The complete boot log incl. backtrace is attached.

Any ideas?



_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[hidden email]"

boot.log (10K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [BBB] kernel panic during boot

Sylvain Garrigues
Hi Manuel,

I may have reported the same problem in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221227

Can you try adding the following lines to GENERIC-NODEBUG:
nodevice                ds1307                        # Dallas DS1307 RTC and compatible
nodevice                ds133x                        # Dallas DS1337, DS1338 and DS1339 RTC
nodevice                ds1672                        # Dallas DS1672 RTC
nodevice                ds3231                        # Dallas DS3231 RTC + temperature
nodevice                nxprtc                        # NXP RTCs: PCA/PFC212x PCA/PCF85xx
nodevice                s35390a                        # Seiko Instruments S-35390A RTC

I have a suspicion one of these devices is making the kernel panic. It
solved my bug.

Cheers,
Sylvain.

On Tue, Aug 08, 2017 at 01:19:34PM +0200, Manuel Stühn wrote:

> Hi,
> booting a FreeBSD CURRENT r322118 on a BBB (GENERIC-NODEBUG kernel) ends
> with a panic:
>
> [...]
> iichb0: <TI I2C Controller> mem 0x44e0b000-0x44e0bfff irq 17 on simplebus0
> iichb0: I2C revision 4.0 FIFO size: 32 bytes
> iicbus0: <OFW I2C bus> on iichb0
> panic: timed sleep before timers are working
> cpuid = 0
> time = 1
> KDB: stack backtrace:
> db_trace_self() at db_trace_self
> [...]
>
> The complete boot log incl. backtrace is attached.
>
> Any ideas?
>
>

> U-Boot SPL 2017.01-rc3 (Feb 11 2017 - 00:43:55)
> Trying to boot from MMC1MMC partition switch failed
> *** Warning - MMC partition switch failed, using default environment
>
> reading u-boot.img
> reading u-boot.img
>
>
> U-Boot 2017.01-rc3 (Feb 11 2017 - 00:43:55 +0000)
>
> CPU  : AM335X-GP rev 2.1
> I2C:   ready
> DRAM:  512 MiB
> MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
> Card did not respond to voltage select!
> *** Warning - MMC init failed, using default environment
>
> <ethaddr> not set. Validating first E-fuse MAC
> Net:   cpsw, usb_ether
> Press SPACE to abort autoboot in 2 seconds
> switch to partitions #0, OK
> mmc0 is current device
> SD/MMC found on device 0
> reading boot.scr
> ** Unable to read file boot.scr **
> reading uEnv.txt
> ** Unable to read file uEnv.txt **
> switch to partitions #0, OK
> mmc0 is current device
> Scanning mmc 0:1...
> Found FreeBSD U-Boot Loader (bin)
> reading ubldr.bin
> 237704 bytes read in 20 ms (11.3 MiB/s)
> ## Starting application at 0x82000000 ...
> Consoles: U-Boot console  
> Compatible U-Boot API signature found @0x9df30c58
>
> FreeBSD/armv6 U-Boot loader, Revision 1.2
> (Sat Mar 11 12:11:52 CET 2017 manuel@freebsd-t420)
>
> DRAM: 512MB
> Card did not respond to voltage select!
> Card did not respond to voltage select!
> Card did not respond to voltage select!
> Number of U-Boot devices: 2
> U-Boot env: loaderdev not set, will probe all devices.
> Found U-Boot device: disk
>   Probing all disk devices...
>   Checking unit=0 slice=<auto> partition=<auto>... good.
> Booting from disk0s2a:
> /boot/kernel/kernel data=0x813d80+0x180280 syms=[0x4+0x8c6a0+0x4+0xc9f3c]
>
> Hit [Enter] to boot immediately, or any other key for command prompt.
> Booting [/boot/kernel/kernel]...              
> /boot/dtb/am335x-boneblack.dtb size=0x103f9
> Loaded DTB from file 'am335x-boneblack.dtb'.
> Kernel entry at 0x82200100...
> Kernel args: (null)
> ARM Debug Architecture not supported
> KDB: debugger backends: ddb
> KDB: current backend: ddb
> Copyright (c) 1992-2017 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
> The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 12.0-CURRENT #0 3df4ae2137c(master): Mon Aug  7 16:03:23 CEST 2017
>     manuel@freebsd-t420:/usr/home/manuel/devel/github/freebsd/obj/arm.armv6/usr/home/manuel/devel/github/freebsd/src/sys/GENERIC-NODEBUG arm
> FreeBSD clang version 5.0.0 (branches/release_50 309439) (based on LLVM 5.0.0svn)
> VT: init without driver.
> CPU: ARM Cortex-A8 r3p2 (ECO: 0x00000000)
> CPU Features:
>   Thumb2, Security, VMSAv7
> Optional instructions:
>   UMULL, SMULL, SIMD(ext)
> LoUU:2 LoC:3 LoUIS:1
> Cache level 1:
>  32KB/64B 4-way data cache WT WB Read-Alloc
>  32KB/64B 4-way instruction cache Read-Alloc
> Cache level 2:
>  256KB/64B 8-way unified cache WT WB Read-Alloc Write-Alloc
> real memory  = 536870912 (512 MB)
> avail memory = 511221760 (487 MB)
> Texas Instruments AM335x Processor, Revision ES2.1
> arc4random: no preloaded entropy cache
> random: entropy device external interface
> kbd0 at kbdmux0
> ofwbus0: <Open Firmware Device Tree>
> simplebus0: <Flattened device tree simple bus> on ofwbus0
> simplebus1: <Flattened device tree simple bus> on simplebus0
> simplebus2: <Flattened device tree simple bus> mem 0x210000-0x211fff on simplebus1
> ti_scm0: <TI Control Module> mem 0-0x7ff on simplebus2
> regfix0: <Fixed Regulator> on ofwbus0
> clk_fixed0: <Fixed clock> on ofwbus0
> ti_aintc0: <TI AINTC Interrupt Controller> mem 0x48200000-0x48200fff on simplebus0
> ti_aintc0: Revision 5.0
> cpulist0: <Open Firmware CPU Group> on ofwbus0
> cpu0: <Open Firmware CPU> on cpulist0
> pmu0: <Performance Monitoring Unit> irq 0 on ofwbus0
> am335x_prcm0: <AM335x Power and Clock Management> mem 0x200000-0x203fff on simplebus1
> am335x_prcm0: Clocks: System 24.0 MHz, CPU 1000 MHz
> ti_pinmux0: <TI Pinmux Module> mem 0x800-0xa37 on simplebus2
> am335x_scm0: <AM335x Control Module Extension> on ti_scm0
> gpio0: <TI AM335x General Purpose I/O (GPIO)> mem 0x44e07000-0x44e07fff irq 7 on simplebus0
> gpiobus0: <OFW GPIO bus> on gpio0
> gpioc0: <GPIO controller> on gpio0
> gpio1: <TI AM335x General Purpose I/O (GPIO)> mem 0x4804c000-0x4804cfff irq 8 on simplebus0
> gpiobus1: <OFW GPIO bus> on gpio1
> gpioc1: <GPIO controller> on gpio1
> gpio2: <TI AM335x General Purpose I/O (GPIO)> mem 0x481ac000-0x481acfff irq 9 on simplebus0
> gpiobus2: <OFW GPIO bus> on gpio2
> gpioc2: <GPIO controller> on gpio2
> gpio3: <TI AM335x General Purpose I/O (GPIO)> mem 0x481ae000-0x481aefff irq 10 on simplebus0
> gpiobus3: <OFW GPIO bus> on gpio3
> gpioc3: <GPIO controller> on gpio3
> uart0: console (115384,n,8,1)atible)> mem 0x44e09000-0x44e0afff irq 11 on simplebus0
> iichb0: <TI I2C Controller> mem 0x44e0b000-0x44e0bfff irq 17 on simplebus0
> iichb0: I2C revision 4.0 FIFO size: 32 bytes
> iicbus0: <OFW I2C bus> on iichb0
> panic: timed sleep before timers are working
> cpuid = 0
> time = 1
> KDB: stack backtrace:
> db_trace_self() at db_trace_self
> pc = 0xc05a1b7c  lr = 0xc0061f5c (db_trace_self_wrapper+0x30)
> sp = 0xc0c138a8  fp = 0xc0c139c0
> db_trace_self_wrapper() at db_trace_self_wrapper+0x30
> pc = 0xc0061f5c  lr = 0xc028cd18 (vpanic+0x158)
> sp = 0xc0c139c8  fp = 0xc0c139e8
> r4 = 0x00000100  r5 = 0x00000001
> r6 = 0xc06cd645  r7 = 0xc091b2c8
> vpanic() at vpanic+0x158
> pc = 0xc028cd18  lr = 0xc028cbc0 (vpanic)
> sp = 0xc0c139f0  fp = 0xc0c139f4
> r4 = 0xc093ddc0  r5 = 0x00000004
> r6 = 0xfffffa38  r7 = 0xc2997600
> r8 = 0xfffffa3c  r9 = 0xfffffa38
> r10 = 0x00000001
> vpanic() at vpanic
> pc = 0xc028cbc0  lr = 0xc02e6a80 (sleepq_timeout)
> sp = 0xc0c139fc  fp = 0xc0c13a48
> r4 = 0xc2997600  r5 = 0xfffffa3c
> r6 = 0xfffffa38  r7 = 0x00000001
> r8 = 0xc0c139f4  r9 = 0xc028cbc0
> r10 = 0xc0c139fc
> sleepq_timeout() at sleepq_timeout
> pc = 0xc02e6a80  lr = 0xc0298390 (_sleep+0x24c)
> sp = 0xc0c13a50  fp = 0xc0c13aa0
> r4 = 0xc2997618  r5 = 0x00000000
> r6 = 0xc2997600  r7 = 0xfffffa3c
> r8 = 0xfffffa38 r10 = 0x00000001
> _sleep() at _sleep+0x24c
> pc = 0xc0298390  lr = 0xc063b8cc (ti_i2c_transfer+0x260)
> sp = 0xc0c13aa8  fp = 0xc0c13ae8
> r4 = 0x00000000  r5 = 0x00000000
> r6 = 0xc299760c  r7 = 0x00000000
> r8 = 0xc0c13afc  r9 = 0xc2997600
> r10 = 0x00000000
> ti_i2c_transfer() at ti_i2c_transfer+0x260
> pc = 0xc063b8cc  lr = 0xc00847b0 (ds133x_probe+0x64)
> sp = 0xc0c13af0  fp = 0xc0c13b38
> r4 = 0x00000002  r5 = 0x0000000f
> r6 = 0x000000d0  r7 = 0xc2a46800
> r8 = 0x000100d0  r9 = 0xc0c13b14
> r10 = 0xc2ae5b80
> ds133x_probe() at ds133x_probe+0x64
> pc = 0xc00847b0  lr = 0xc02c9018 (device_probe_child+0x1dc)
> sp = 0xc0c13b40  fp = 0xc0c13b68
> r4 = 0xc2ae5b80  r5 = 0x00000000
> r6 = 0xc29aa800  r7 = 0xc2a46800
> r8 = 0x00000000  r9 = 0x00000000
> r10 = 0xc285d280
> device_probe_child() at device_probe_child+0x1dc
> pc = 0xc02c9018  lr = 0xc02c9d24 (device_probe+0x90)
> sp = 0xc0c13b70  fp = 0xc0c13b80
> r4 = 0xffffffff  r5 = 0xc2ae5b80
> r6 = 0x00000000  r7 = 0xc06a5d7b
> r8 = 0xc2aa34c0  r9 = 0xc0c13ca8
> r10 = 0xc07d9ed8
> device_probe() at device_probe+0x90
> pc = 0xc02c9d24  lr = 0xc02cb64c (bus_generic_attach+0x1c)
> sp = 0xc0c13b88  fp = 0xc0c13b90
> r4 = 0xc2ae5b80  r5 = 0xc06e1d53
> r6 = 0x00000000 r10 = 0xc07d9ed8
> bus_generic_attach() at bus_generic_attach+0x1c
> pc = 0xc02cb64c  lr = 0xc0089ee8 (ofw_iicbus_attach+0x2e4)
> sp = 0xc0c13b98  fp = 0xc0c13cd0
> r4 = 0xc2ae5c00 r10 = 0xc07d9ed8
> ofw_iicbus_attach() at ofw_iicbus_attach+0x2e4
> pc = 0xc0089ee8  lr = 0xc02ca2ec (device_attach+0x4ec)
> sp = 0xc0c13cd8  fp = 0xc0c13d20
> r4 = 0xc2ae5c00  r5 = 0xc095a270
> r6 = 0xc29a3780  r7 = 0x00000000
> r8 = 0xc093aa4c  r9 = 0xc02ce34c
> r10 = 0xc2ae5c50
> device_attach() at device_attach+0x4ec
> pc = 0xc02ca2ec  lr = 0xc02cb658 (bus_generic_attach+0x28)
> sp = 0xc0c13d28  fp = 0xc0c13d30
> r4 = 0xc2ae5c00  r5 = 0x80040006
> r6 = 0x00000000  r7 = 0x00000000
> r8 = 0xc29a37d0  r9 = 0xc2997628
> r10 = 0xc2997600
> bus_generic_attach() at bus_generic_attach+0x28
> pc = 0xc02cb658  lr = 0xc063b494 (ti_i2c_attach+0x364)
> sp = 0xc0c13d38  fp = 0xc0c13d78
> r4 = 0xc29a3780 r10 = 0xc2997600
> ti_i2c_attach() at ti_i2c_attach+0x364
> pc = 0xc063b494  lr = 0xc02ca2ec (device_attach+0x4ec)
> sp = 0xc0c13d80  fp = 0xc0c13dc8
> r4 = 0xc29a3780  r5 = 0xc095a270
> r6 = 0xc29a4480  r7 = 0x00000000
> r8 = 0xc093aa4c  r9 = 0xc02ce34c
> r10 = 0xc29a37d0
> device_attach() at device_attach+0x4ec
> pc = 0xc02ca2ec  lr = 0xc02cbc98 (bus_generic_new_pass+0xf8)
> sp = 0xc0c13dd0  fp = 0xc0c13de8
> r4 = 0xc29a3780  r5 = 0xc07d0a94
> r6 = 0xc080d3f4  r7 = 0x00000000
> r8 = 0xc092b3b0  r9 = 0xc07074d4
> r10 = 0xc093e188
> bus_generic_new_pass() at bus_generic_new_pass+0xf8
> pc = 0xc02cbc98  lr = 0xc02cbc78 (bus_generic_new_pass+0xd8)
> sp = 0xc0c13df0  fp = 0xc0c13e08
> r4 = 0xc29a4480  r5 = 0xc07d0a94
> r6 = 0xc07be0a8  r7 = 0x00000000
> r8 = 0xc092b3b0 r10 = 0xc093e188
> bus_generic_new_pass() at bus_generic_new_pass+0xd8
> pc = 0xc02cbc78  lr = 0xc02cbc78 (bus_generic_new_pass+0xd8)
> sp = 0xc0c13e10  fp = 0xc0c13e28
> r4 = 0xc29a4800  r5 = 0xc07d0a94
> r6 = 0xc07f4a60  r7 = 0x00000000
> r8 = 0xc092b3b0 r10 = 0xc093e188
> bus_generic_new_pass() at bus_generic_new_pass+0xd8
> pc = 0xc02cbc78  lr = 0xc02cbc78 (bus_generic_new_pass+0xd8)
> sp = 0xc0c13e30  fp = 0xc0c13e48
> r4 = 0xc29a4a80  r5 = 0xc07d0a94
> r6 = 0xc092b3b0  r7 = 0x00000000
> r8 = 0xc092b3b0 r10 = 0xc093e188
> bus_generic_new_pass() at bus_generic_new_pass+0xd8
> pc = 0xc02cbc78  lr = 0xc02cd6ec (root_bus_configure+0x80)
> sp = 0xc0c13e50  fp = 0xc0c13e68
> r4 = 0xc07d0a94  r5 = 0xc29a4c80
> r6 = 0xc092b3b0  r7 = 0xc285e060
> r8 = 0xc093ebcc r10 = 0xc093e188
> root_bus_configure() at root_bus_configure+0x80
> pc = 0xc02cd6ec  lr = 0xc0222114 (mi_startup+0xfc)
> sp = 0xc0c13e70  fp = 0xc0c13e90
> r4 = 0xc093e284  r5 = 0x00000001
> r6 = 0xc07065cc  r7 = 0x00000000
> r8 = 0xc093e280 r10 = 0xc093e188
> mi_startup() at mi_startup+0xfc
> pc = 0xc0222114  lr = 0xc0000244 (btext+0x144)
> sp = 0xc0c13e98  fp = 0x00000000
> r4 = 0xc0000378  r5 = 0xc0990000
> r6 = 0x82056600  r7 = 0x00c52078
> r8 = 0xc0b0e000  r9 = 0x9ff9dee0
> r10 = 0x44e35000
> btext() at btext+0x144
> pc = 0xc0000244  lr = 0xc0000244 (btext+0x144)
> sp = 0xc0c13e98  fp = 0x00000000
> KDB: enter: panic
> [ thread pid 0 tid 100000 ]
> Stopped at      $d.3:   ldrb    r15, [r15, r15, ror r15]!
> db>
>

_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: [BBB] kernel panic during boot

Ian Lepore-3
In reply to this post by Manuel Stühn
On Tue, 2017-08-08 at 13:19 +0200, Manuel Stühn wrote:

> Hi,
> booting a FreeBSD CURRENT r322118 on a BBB (GENERIC-NODEBUG kernel)
> ends 
> with a panic:
>
> [...]
> iichb0: <TI I2C Controller> mem 0x44e0b000-0x44e0bfff irq 17 on 
> simplebus0
> iichb0: I2C revision 4.0 FIFO size: 32 bytes
> iicbus0: <OFW I2C bus> on iichb0
> panic: timed sleep before timers are working
> cpuid = 0
> time = 1
> KDB: stack backtrace:
> db_trace_self() at db_trace_self
> [...]
>
> The complete boot log incl. backtrace is attached.
>
> Any ideas?
>

Yay!  I think that may be enough of a clue for the problem reported in
PR 221227 that I can start debugging it.  I'll dig into it after $work
today, hopefully have some sort of fix tonight or tomorrow.

-- Ian

_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[hidden email]"
Reply | Threaded
Open this post in threaded view
|

Re: [BBB] kernel panic during boot

Ian Lepore-3
In reply to this post by Manuel Stühn
On Tue, 2017-08-08 at 13:19 +0200, Manuel Stühn wrote:

> Hi,
> booting a FreeBSD CURRENT r322118 on a BBB (GENERIC-NODEBUG kernel)
> ends 
> with a panic:
>
> [...]
> iichb0: <TI I2C Controller> mem 0x44e0b000-0x44e0bfff irq 17 on 
> simplebus0
> iichb0: I2C revision 4.0 FIFO size: 32 bytes
> iicbus0: <OFW I2C bus> on iichb0
> panic: timed sleep before timers are working
> cpuid = 0
> time = 1
> KDB: stack backtrace:
> db_trace_self() at db_trace_self
> [...]
>
> The complete boot log incl. backtrace is attached.
>
> Any ideas?

It looks like we had 2 i2c rtc drivers that were misbehaving (trying to
do i2c transfers before interrupts are enabled).  For now I simply
removed them from the GENERIC config as a workaround (r322282).  I've
ordered samples of the chips and when they arrive I'll rework the
drivers to behave better.

-- Ian

_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[hidden email]"