Date: Sun, 27 Sep 2015 15:29:49 -0300 From: Luiz Otavio O Souza <lists.br@gmail.com> To: sparvu@kronometrix.org Cc: "freebsd-arm@freebsd.org" <freebsd-arm@freebsd.org> Subject: Re: RBPI2 ds1307 rtc kernel panic Message-ID: <CAB=2f8y2Lcp5eHyc=nbgQ_-OZyJOrNwKqK4wstnH77kd47hZag@mail.gmail.com> In-Reply-To: <5607C63D.2010203@kronometrix.org> References: <5607C63D.2010203@kronometrix.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 27 September 2015 at 07:34, Stefan Parvu wrote: > > Im seeing kernel panics after I have compiled support for DS1307 RTC > device on RBPI2 hardware: > > panic: sleepq_add: td 0xc395b000 to sleep on wchan 0xc39fa380 with > sleeping prohibited > > The system here: > > iichb0: <BCM2708/2835 BSC controller> mem 0x205000-0x20501f irq 61 on > simplebus0 > iicbus0: <OFW I2C bus> on iichb0 > iic0: <I2C generic I/O> on iicbus0 > iichb1: <BCM2708/2835 BSC controller> mem 0x804000-0x80401f irq 61 on > simplebus0 > iicbus1: <OFW I2C bus> on iichb1 > iic1: <I2C generic I/O> on iicbus1 > ds13070: <Maxim DS1307 RTC> at addr 0xd0 on iicbus1 > > > FreeBSD rpi2 11.0-CURRENT FreeBSD 11.0-CURRENT #0 r288098: Thu Aug 20 > 04:00:38 UTC 2015 root@rpi2:/usr/obj/usr/src/sys/KPI2 arm > > > I have compiled the kernel by Vadim's procedure [1] but modified for > RBPI2: bcm2836.dtsi: https://github.com/vzaigrin/ds1307/issues/1 > > Anyone any ideas why the crash ? > Many thanks > > [1] > https://vzaigrin.wordpress.com/2015/08/04/real-time-clock-on-raspberry-pi-with-freebsd-11/ > > -- > Stefan Parvu <sparvu@kronometrix.org> The crash happens when you enable ntpd with an i2c RTC, this is a know issue. There are two workarounds: 1) sysctl machdep.rtc_save_period=0 2) use gpioiic(4) instead of the hardware i2c controller. gpioiic doesn't sleeps and this will prevent the crash. The setup of gpioiic requires a few more steps, so usually the option 1 is preferred. The crash happens because ntpd tries to update the RTC from a callout and callout functions should not sleep (which happens with most of i2c controllers we support on ARM). Also, I committed the change that includes #address-cells and #size-cells to RPi2 DTS file (bcm2836.dtsi). Thanks Jukka for noticing this. Luiz
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB=2f8y2Lcp5eHyc=nbgQ_-OZyJOrNwKqK4wstnH77kd47hZag>