Hi Ralf,
On Thu, Oct 25, 2007 at 06:59:14PM +0100, Ralf Baechle wrote:
> On Wed, Oct 24, 2007 at 08:31:35PM +0200, Manuel Lauss wrote:
> > start_kernel()
> > time_init()
> > init_mips_clocksource()
> > mips_clockevent_init()
> > clockevents_register_device()
> > clockevents_do_notify()
> > notifier_call_chain():
> >
> > It dies here, line 69, in kernel/notifier.c:
> > ret = nb->notifier_call(nb, val, v);
> tick_notify(&tick_notifier, CLOCK_EVT_NOTIFY_ADD, dev)
>
> So things are likely going wrong somewhere in there.
starting in nb->notifier_call:
tick_notify()
tick_check_new_device()
tick_setup_device()
tick_setup_periodic():
it seems to enternally loop in here:
123 for (;;) {
124 if (!clockevents_program_event(dev, next,
ktime_get()))
125 return;
126 next = ktime_add(next, tick_period);
127 }
I think it's waiting for a timer irq which never happens. The code in
cevt-r4k.c assigns IRQ 7 as the timer irq which is a GPIO according to
the manual. Actually, there is no real requestable() timer irq mentioned
in the manual (RTC and TOY aside).
Thanks!
Manuel Lauss
|