Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Problems booting NSLU2 (slug)



On 10/09/2012, at 10:18 PM, Matt Thomas <matt%3am-software.com@localhost> wrote:

> 
> On Sep 10, 2012, at 1:15 AM, Dave Tyson wrote:
> 
>> On Saturday 08 September 2012 01:34:15 Matt Thomas wrote:
>>> On Sep 7, 2012, at 4:43 PM, Richard Earnshaw (home) wrote:
>>>> That instruction is so bogus that you must be executing data, not code.
>>> 
>>> Nope, that's how the kernel enter DDB.
>> 
>> OK, that presumably happens after the KASSERT. I'll try and work through the 
>> code and see why the assert is tripped - this must be early on as I don't 
>> see 
>> the symbol/seqment sizes message.
> 
> This is fixed in -current.  Maybe the changes were never submitted for pullup 
> to netbsd-6.

Assuming "this" is "the symbol/seqment sizes message" and we are still looking 
for the cause of the assertion, I think I know the answer.

The evcnt system is being invoked before it is initialised, the TS7200 has this 
problem as well. There seems to have been a number of NetBSD 6 changes that 
haven't been propagated through all the evbarm targets, I noticed that there 
has been some work on device_t/softc stuff that hasn't been completed on the 
TS7200. 

I completed the evcnt updates for the TS7200 and then hit a uvm problem at 
which point I got distracted by things I was actually supposed to be doing. 

To fix the evcnt stuff on the TS7200 I removed the call to evcnt_attach_dynamic 
from ep93xx_intr_init and added it to ep93xx_intr_establish. I also added a 
call to evcnt_detach in ep93xx_intr_disestablish. I followed Martin Husemann's 
advice on looking to see what omap/omap2430_intr.c does. 

Cheers,
Lloyd

Index: ep93xx/ep93xx_intr.c
===================================================================
RCS file: /vol/src/rsync-src/src/sys/arch/arm/ep93xx/ep93xx_intr.c,v
retrieving revision 1.16
diff -r1.16 ep93xx_intr.c
263a264
> #if 0
266a268
> #endif
305a308,309
>       evcnt_attach_dynamic(&iq->iq_ev, EVCNT_TYPE_INTR, NULL,
>                            (irq < VIC_NIRQ ? "vic1" : "vic2"), iq->iq_name);
322a327
>       evcnt_detach(&iq->iq_ev);


Home | Main Index | Thread Index | Old Index