I am trying to port 2.6.8.1 onto ARM9TDMI, TI's Innovator board.

I found the reason that it crashes when compiling into kernel is that: when
compiled in kernel, adp_pipelined is not checked; __adeos_handle_irq calls
handlers when adeos has not yet been completely initialized.

I forced adp_pipelined is checked even when adeos is compiled into kernel. Now
that the crashing is gone, I encountered another problem: still in
__adeos_handle_irq, somewhere down in __adeos_sync_stage, just before invoking
irq handler,
        if (adp == adp_root)
                adeos_hw_sti();
This, adeos_hw_sti, causes a new interrupt comes in; and this repeats
(__irq_svc->__adeos_handle_irq->__adeos_sync_stage->__irq_svc,...).

I got stuck here for two days.

Best regards.

Jason Huang
Wescon Technology
408-727-8818 x108 


> -----Original Message-----
> From: Philippe Gerum [mailto:[EMAIL PROTECTED]
> Sent: Thursday, February 24, 2005 12:10 AM
> To: Jason Huang
> Cc: [email protected]
> Subject: Re: [Adeos-main] When to do __adeos_takeover() on ARM
> 
> Jason Huang wrote:
> > Dear list members,
> >
> > If __adeos_takeover is called in init(), the timer interrupt kicks in way
> before
> > adp->irqs[] have been initialized and hence adeos_switch_domain is not
> called
> > and the interrupt is not handled.
> >
> 
> If the takeover has not taken place, then the standard IRQ vectors
> should be in place after the interrupt layer has been initialized,
> therefore further interrupts should be handled by the regular Linux
> handlers as they would if Adeos was absent. Additionally,
> __adeos_switch_domain() is only called when more than a single domain
> exists, which sounds unlikely during the boot phase.
> 
> > Has anybody seen the problem? How/where do I place __adeos_takeover?
> 
> Which architecture are you working on?
> 
> >
> > Thanks in advance.
> >
> > Jason Huang
> > Wescon Technology
> > 408-727-8818 x108
> >
> >


Reply via email to