L4Linux with serial console / IRQ usage
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Sat Aug 12 01:23:22 CEST 2006
On Fri Aug 11, 2006 at 14:39:32 +0200, Andreas Niederl wrote:
> 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?
I know it (and maybe made it up too).
> 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
Yes, unimplemented, I'm sorry. I added that to my todo list, should be
low hanging stuff.
> Ctrl-C still doesn't work on my serial console, so I'm not able to debug
> this.
I don't understand. Who should get that Ctrl-C?
> Is gdb suitable for this kind of debugging? I could not find much
> information on this topic on the internet.
gdb is not really suited for multi address space debugging. Fiasco has a
nice built-in debugger which gives you thread states, back traces,
present and ready lists, various forms of tracing and logging etc.
> 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).
You can also use -serial stdio to get the serial channel into the
invoking terminal, and you can make GRUB auto-boot without manual
selection.
> >>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.
Yes, l4io with omega0 protocol is supposed to be fine.
Adam
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list