On Sun, Aug 7, 2011 at 23:09, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote:
On Sun, Aug 7, 2011 at 22:57, Matthias Reis
<matthias.reis@xxxxxxxxxxxxxxxxxxx> wrote:
I wanted to tell you that my Atari ST kernel now boots up until calibrate_delay loop, which hangs in an infinite loop ... I have read that this indicates normally that the timer interrupt is not working. I therefore checked if atari_sched_init is called and found that it is invoked by time_init which is ok. However, the interrupt handler timer_interrupt is never called subsequently (I can check that by setting a corresponding breakpoint in the emulator). This means probably that MFP autovector exceptions (the timer interrupt is handled by the MFP chip) are not registered properly.
MFP interrupts are not autovector interrupts, but user vector interrupts.
I have applied most of the patches from Geert's uamiga-untested branch, especially the one regarding the 68000 autovectors (http://git.kernel.org/?p=linux/kernel/git/geert/linux-m68k.git;a=commit;h=21e03a7a7c60b2646bd7edd740cc964091bf8ca0). Comparing the amiga_init_IRQ and the atari_init_IRQ functions, I can see that the Amiga code registers the autovectors with request_irq. Do I need to do something similar in atari_init_IRQ and write a special handler for the MFP autovector (I think it is level 6)? If yes, how would such a handler look like?
W.r.t. interrupts, the only difference between MMU and NOMMU should be
the location of the exception vectors, as the 68000 doesn't have the
VBR.
Sorry, I forgot about this: it may be a stack frame format issue,
which causes the kernel to
incorrectly identify the interrupt number.
user_inthandler() in arch/m68k/kernel/entry_mm.S looks at the PT_OFF_FORMATVEC
field in the stack frame to identify the interrupt source. I don't
know from memory
if the plain 68000 stores it there. For autovector interrupts, it
doesn't, that's why
I created inidividual auto*_inthandler() functions that put an hardcoded number
on the stack instead of looking at the stack frame.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html