Hi,
Adam Lackorzynski wrote:
On Thu Aug 10, 2006 at 19:22:15 +0200, Andreas Niederl wrote:
[...]
Unfortunately I don't know which IRQ number is required here. I tried passing some different values to L4Linux which resulted in the error message 'irq_thread: RMGR denied IRQ 4: Code 0x1'.
I'd be grateful for some hints on that.
It's 17.
Thanks, where did you get that number?
Now the system stops after printing out the message 'l4lx | l4lx_thread_create: Created thread 0e.0b (IRQ17)'. When using l4io as omega0 server it stops after this message: l4lx_irq_dev_startup_virt(17) unimplemented
Ctrl-C still doesn't work on my serial console, so I'm not able to debug this.
Is gdb suitable for this kind of debugging? I could not find much information on this topic on the internet.
The serial console is in my case a pseudo terminal connected to the serial port emulation of Qemu which I can access with GNU screen or kermit or by using Qemu with the -nographic option which maps the serial console onto the invoking terminal (Grub needs extra configuration for that).
I also noticed that there are several different ways for handling IRQs (omega0, rmgr, l4io, ...) which require different options for some servers and L4Linux. Are there any documents describing the IRQ handling in L4Env and how to follow one of these ways consistently?
Short summary: There's the direct way of attaching to interrupts or using the omega0 protocol to attach to an interupt server. l4io and omega0 both implement the omega0 interface, the 'rmgr way' is the way to directly attach to the interrupts. When directly attaching you need I/O port access and might have problems with IRQ sharing which an interrupt server should fix for you, adding a slight penalty due to the indirection. There's a paper on omega0 at http://os.inf.tu-dresden.de/~hohmuth/prj/omega0.ps.gz
So, is there a recommended setup for interrupt handling? omega0 seems to be a reasonable approach.
Regards, Andi