On Sun, Aug 7, 2011 at 23:09, Geert Uytterhoeven <[email protected]> wrote:
> On Sun, Aug 7, 2011 at 22:57, Matthias Reis
> <[email protected]> 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 -- [email protected]

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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to