L4Linux with serial console / IRQ usage

Adam Lackorzynski adam at os.inf.tu-dresden.de
Sun Aug 20 15:33:30 CEST 2006


On Mon Aug 14, 2006 at 19:35:24 +0200, Andreas Niederl wrote:
> Hi,
> 
> Adam Lackorzynski wrote:
> > On Mon Aug 14, 2006 at 14:16:43 +0200, Andreas Niederl wrote:
> > 
> >>Adam Lackorzynski wrote:
> [...]
> >>What about the stop after I got the first message using one thread per 
> >>IRQ with the rmgr way? Is it a known problem or perhaps caused by some 
> >>misconfiguration on my side?
> > 
> > 
> > Do you refer to the 'RMGR denied IRQ 4' issue? RMGR won't give you IRQ 4
> > as it is already used by the kernel for the debug console. Try the 17
> > with this setup and it should work.
> 
> No, I should have separated the two messages more clearly. I meant this 
> part:
>  >>>>Now the system stops after printing out the message
>  >>>>'l4lx    | l4lx_thread_create: Created thread 0e.0b (IRQ17)'.
> 
> It's just like this, the system stops at this line and I cannot get into 
> JDB (with the Escape key this time). Qemu itself remains responsive, I 
> can e.g. access its monitor.
> This only happens when I specify 'l4ser.vkey_irq=17' as argument for 
> L4Linux, otherwise I get only the output of L4Linux on the serial line 
> but the system runs happily.

The attached patch against Fiasco should fix the issue for now.

Index: kern/shared/jdb-ia32-amd64.cpp
===================================================================
RCS file: /home/cvs/l4/kernel/fiasco/src/kern/shared/jdb-ia32-amd64.cpp,v
retrieving revision 1.15
diff -u -r1.15 jdb-ia32-amd64.cpp
--- kern/shared/jdb-ia32-amd64.cpp	1 Aug 2006 14:16:16 -0000	1.15
+++ kern/shared/jdb-ia32-amd64.cpp	20 Aug 2006 13:32:25 -0000
@@ -116,6 +116,7 @@
 #include "kernel_console.h"
 #include "keycodes.h"
 #include "kernel_uart.h"
+#include "kernel_task.h"
 #include "kmem.h"
 #include "logdefs.h"
 #include "mem_layout.h"
@@ -939,12 +940,13 @@
 	    {
 	    case 13:
 	      // inchar
-	      if (Vkey::get() != -1)
+	      //if (Vkey::get() != -1)
 		{
 		  // we still have received a character via serial
 		  entry_frame->value(Vkey::get());
 		  Vkey::clear();
 		}
+#if 0
 	      else
 		{
 		  // wait for a character (either from serial or from keyboard
@@ -952,6 +954,7 @@
 		  entry_frame->value(getchar());
 		  close_debug_console();
 		}
+#endif
 	      return 1;
 	      // fiasco_tbuf
 	    case 29:



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