Pin configuration conflict and NULL pointer dereference on RPi 3

Stefan Wahren stefan.wahren at i2se.com
Wed Feb 15 12:37:11 PST 2017


> Michael Zoran <mzoran at crowfest.net> hat am 14. Februar 2017 um 05:17 geschrieben:
> 
> 
> On Mon, 2017-02-13 at 12:27 -0800, Eric Anholt wrote:
> > Stefan Wahren <stefan.wahren at i2se.com> writes:
> > 
> > > Hi Gerd,
> > > 
> > > > Gerd Hoffmann <kraxel at redhat.com> hat am 2. Juni 2016 um 18:07
> > > > geschrieben:
> > > > 
> > > > 
> > > > On Do, 2016-06-02 at 11:31 +0200, Gerd Hoffmann wrote:
> > > > >   Hi,
> > > > > 
> > > > > > > Patches 20-32 are for the wifi.  Mostly from Eric's
> > > > > > > bcm2837-wireless
> > > > > > > branch.  They clearly need some more love, but do the job
> > > > > > > for now.
> > > > > > 
> > > > > > I just came up with a fix that should replace patch #29,
> > > > > > which means
> > > > > > I'll trust the expander stuff a lot more.  With the expander
> > > > > > working,
> > > > > > you should be able to use pin 4 on it for HDMI hotplug
> > > > > > detect, at which
> > > > > > point graphics should work.
> > > > > 
> > > > > Tried that.  i2c not working.  There seems to be a disagreement
> > > > > who owns
> > > > > gpio pin 45:
> > > > > 
> > > > > [root at pi-three linux]# dmesg | grep i2c
> > > > > [    2.354380] i2c /dev entries driver
> > > > > [    3.496734] pinctrl-bcm2835 3f200000.gpio: pin gpio45
> > > > > already
> > > > > requested by 3f20c000.pwm; cannot claim for 3f205000.i2c
> > > > > [    3.512506] pinctrl-bcm2835 3f200000.gpio: pin-45
> > > > > (3f205000.i2c)
> > > > > status -22
> > > > > [    3.540488] i2c-bcm2835 3f205000.i2c: Error applying
> > > > > setting, reverse
> > > > > things back
> > > > > [    4.551683] i2c-bcm2835 3f205000.i2c: i2c transfer timed out
> > > > > [    4.574599] i2c-bcm2835 3f805000.i2c: Could not read clock-
> > > > > frequency
> > > > > property
> > > > 
> > > > Tried to disable pwm in dt:
> > > > 
> > > >    -       status = "okay";
> > > >    +       status = "disabled";
> > > > 
> > > > Now i2c is happy, and fxl6408 seems to work too:
> > > > 
> > > >    [root at pi-two ~]# dmesg | grep -i FXL6408
> > > >    [    3.580660] fxl6408 0-0043: FXL6408 probe returned DID:
> > > > 0x87
> > > > 
> > > 
> > > i stumbled yesterday on this patch [1] which is related to this
> > > (still open) issue. I wrote to the patch author and he said that
> > > sometimes the i2c-bcm2835 on his RPi 3 (Aarch64 Kernel) crashed
> > > with a NULL pointer dereference. He also said that the random I2C
> > > timeouts like above
> > > 
> > > i2c-bcm2835 3f805000.i2c: i2c transfer timed out
> > > 
> > > still occurs. Also reported here [2].
> > > 
> > > Can you confirm any of these issues (requires PWM_BCM2835 and
> > > I2C_BCM2835 enabled)?
> > > 
> > > I've the suspicion that the unexpected interrupts are triggered by
> > > the pin muxing conflict at pin 45. Please refer to the firmware DT
> > > blob [3].
> > > 
> > > In order to fix the NULL pointer dereference i suggest the
> > > following:
> > 
> > Just a reminder: This FXL6408 driver will not be usable on the
> > Raspberry
> > Pi.  On Pi3, the firmware is looping hitting the only I2C controller
> > that can talk to the pins attached to the FXL6408 (for its
> > undervoltage
> > detection).  If Linux tries to drive that controller on its own,
> > everything will go wrong.
> 
> FYI: I don't understand why I'm getting some of the messages posted to
> linux-rpi-kernel but not all of them.  Is it a moderated e-mail list or
> something? I see many more messages on the archive then I'm actually
> getting.
>

In this case my original message has been blocked because of "Message has a suspicious header".



More information about the linux-rpi-kernel mailing list