BeagleBone System Hang

Brett Wynkoop wynkoop at wynn.com
Sun Jan 6 07:35:54 UTC 2013


On Fri, 04 Jan 2013 12:55:20 -0700
Ian Lepore <freebsd at damnhippie.dyndns.org> wrote:

> On Fri, 2013-01-04 at 12:45 -0700, Ian Lepore wrote:
> > On Fri, 2013-01-04 at 05:30 -0500, Brett Wynkoop wrote:
> > > Greeting-
> > > 
> > > Ok tonight before trying to install the world I just built I
> > > decided to back up my 8G microsd to my laptop.
> > > 
> > > On the Bone I ran:
> > > 
> > > dd if=/dev/mmcsd0 | gzip -c | nc laptop 12345
> > > 
> > > With of course the correct receiving nc and dd on the other side.
> > > 
> > > The result was:
> > > 
> > > 
> > > aintc0: Spurious interrupt detected (0xffffffff)
> > [...]
> > > aintc0: Spurious interrupt detected (0xffffffff)
> > > 
> > > and the loss of network connectivity as well as the inability to
> > > terminate the process with ctl-C and the inability to background
> > > it with ctl-Z.
> > > 
> > > I have no idea what aintc is, but what ever it is I bet we need
> > > to do some driver work related to it.
> > > 
> > > -Brett
> > 
> > After a few minutes of glancing at the complex and confusing
> > datasheet for that interrupt controller, I'm not sure what's
> > causing the spurious interrupt, but the code that's detecting and
> > reporting the problem isn't clearing the status, so it just gets
> > into a tight reporting loop.
> > 
> > Try the attached patch to see if it makes the loop stop and the
> > system become responsive again.  This is more of a workaround than
> > a real fix.
> > 
> > -- Ian
> > 
> > differences between files attachment (aintc_spurious.diff)
> > diff -r 28b12492cd58 sys/arm/ti/aintc.c
> > --- a/sys/arm/ti/aintc.c	Fri Dec 21 11:20:58 2012 -0700
> > +++ b/sys/arm/ti/aintc.c	Fri Jan 04 12:42:34 2013 -0700
> > @@ -157,6 +157,7 @@ arm_get_next_irq(int last_irq)
> >  	if ((active_irq & 0xffffff80)) {
> >  		device_printf(ti_aintc_sc->sc_dev,
> >  			"Spurious interrupt detected (0x%08x)\n",
> > active_irq);
> > +		aintc_write_4(INTC_SIR_IRQ, (active_irq &
> > 0xffffff80)); return -1;
> >  	}
> >  
> 
> Hrm, now I'm not so sure I've interpretted the datasheet correctly.
> If that doesn't work, try this line:
> 
>  aintc_write_4(INTC_SIR_IRQ, 0);
> 
> And if that doesn't work, then... well... my BeagleBone will arrive
> in a few days and I'll try other things. :)
> 
> -- Ian

Ian-

When I added the second patch to the first and rebuilt the kernel I was
able to send a dd of my disk over the net to my laptop!  Yeah!  You
rock!  I wish I understood this kernel magic you do!

Even if it is not the best way to do things I think you should commit
this to head as it is better than what is there now!

-Brett

-- 

wynkoop at wynn.com               http://prd4.wynn.com/wynkoop/pgp-keys.txt
917-642-6924
718-717-5435



More information about the freebsd-arm mailing list