Minimal requirements to run L4linux using only a serial console

Masti Ramya Jayaram rmasti at inf.ethz.ch
Fri Aug 29 16:56:51 CEST 2014


Hey Martin,

I am trying to run l4linux/fiasco on the Intel SCC which does have a pic-8259. The Intel SCC does not have a BIOS and does not have any ACPI tables which I think qemu generates on the fly.  It also does not use a Screen or keyboard. 

I obtained a patch from Markus Partheymueller which they used to boot fiasco on the SCC. With it I am able to run hello world both in qemu with no-acpi as well as on the SCC successfully.

The patch to the best of my knowledge does the following:

a. Makes the cmdline also parse an argument so that the frequency is an input (533Mhz)
b. Uses the apic timer for scheduling.
c. Disables the pic-8259 because it does not exist. Instead the core in the SCC has two interrupt lines and this patch initializes these lines as interrupts to the core.
d. Disables keyboard and screen and enables a serial line for communication instead
e. Disables super pages because the SCC does not support it.

So, when I try the patched  fiasco/L4linux on qemu, it works when I do not disable acpi. But since the SCC does not have any ACPI/IO-APIC, when I try to run the same thing on qemu with ACPI off, l4linux boots but is not responsive to input. 

In short:

when I run with I (below) , my l4linux responds to input and with II (below) not.

qemu-system-i386 -m 256 -serial stdio -kernel bootstrap_l4linux.elf -append "-arg=fiasco,,-serial_esc -freq=533000"  

qemu-system-i386 -no-acpi -m 256 -serial stdio -kernel bootstrap_l4linux.elf -append "-arg=fiasco,,-serial_esc -freq=533000"  

Now the question is:

a. Is the IO-APIC a must for the serial line?
b. Are ACPI tables just a matter of writing data at the right memory locations (e..g, qemu lets you give the acpi-table as input I noticed)?  Or is there more to it? 

Thanks for your patience,
ramya


________________________________________
From: l4-hackers [l4-hackers-bounces at os.inf.tu-dresden.de] on behalf of Martin Schröder [martin.schroeder at openlimit.com]
Sent: 29 August 2014 16:29
To: l4-hackers at os.inf.tu-dresden.de
Subject: Re: Minimal requirements to run L4linux using only a serial console

Hi Ramya,

Why did you disable the PIC?
What is your aim with ACPI and why should this lead to a change in the UART driver?
And what has the serial console to do with ACPI tables?

For me the topics have at the moment very little in common or I am missing something.

Best regards,
    Martin


Am 29.08.2014 um 15:58 schrieb Masti Ramya Jayaram:
> Also, given that the thing works with ACPI on, wouldn't it be better to include ACPI information in the boot instead of changing the driver? Or is this impossible?
>
> Best,
> Ramya
>
>
> ________________________________________
> From: Masti  Ramya Jayaram
> Sent: 29 August 2014 15:55
> To: Martin Schröder; l4-hackers at os.inf.tu-dresden.de
> Subject: RE: Minimal requirements to run L4linux using only a serial console
>
> Hey Martin,
>
> Back on the list ;-)
>
> Ok, I can confirm that when I busy loop during fiasco init, I can actually see the character that I typed. So would I have to change the l4ser driver in Linux or the main driver in under pkg/l4/bootstrap or under fiasco in vkey.cpp? :)
>
> Thanks,
> ramya
> ________________________________________
> From: Masti  Ramya Jayaram
> Sent: 29 August 2014 12:15
> To: Martin Schröder; l4-hackers at os.inf.tu-dresden.de
> Subject: RE: Minimal requirements to run L4linux using only a serial console
>
> Hey Martin,
>
> I cleaned up my build and it worked - the mistake was mine. I had a question regarding ACPI. The target machine I am using has no BIOS/ACPi support. So, when I boot linux on it my console input does not work.This is similar to booting in qemu with the -no-acpi option. Serial console output works (I can see the prompt of L4Linux) but input does not.
>
> Is there something special to do when booting with a serial console but no ACPI tables?
>
> Thanks,
> ramya
> ________________________________________
> From: Martin Schröder [martin.schroeder at openlimit.com]
> Sent: 27 August 2014 18:32
> To: Masti  Ramya Jayaram; l4-hackers at os.inf.tu-dresden.de
> Subject: Re: Minimal requirements to run L4linux using only a serial console
>
> Hi Masti,
>
> you have  all of them already! I did not alter any other file beside the files you already sent. I inserted them into a fresh
> snapshot (http://l4re.org/download/snapshots-oc/l4re-snapshot-2014053111.tar.xz) and started building. Since "drops-rd.rd" was not
> found in the snapshot, I just renamed "ramdisk-x86.rd" to "drops-rd.rd". Nothing more.
>
> Martin
>
>
>
> Am 27.08.2014 um 18:02 schrieb Masti Ramya Jayaram:
>> Hey Martin,
>>
>> thanks for the quick response. Could you send me your configs (l4linux, fiasco, l4re) so that I can try it with that?
>>
>> Thanks,
>> Ramya
>> ________________________________________
>> From: l4-hackers [l4-hackers-bounces at os.inf.tu-dresden.de] on behalf of Martin Schröder [martin.schroeder at openlimit.com]
>> Sent: 27 August 2014 16:28
>> To: l4-hackers at os.inf.tu-dresden.de
>> Subject: Re: Minimal requirements to run L4linux using only a serial console
>>
>> Hi Masti,
>>
>> I just applied your config, replaced "drops-rd.rd" by "ramdisk-x86.rd" and everything (command prompt, debugger) runs fine as
>> expected in Qemu. Maybe you ran into a similar problem as described in this thread:
>>
>> http://os.inf.tu-dresden.de/pipermail/l4-hackers/2012/thread.html#5165
>>
>>
>> Best regards,
>>       Martin
>>
>>
>> Am 27.08.2014 um 15:18 schrieb Masti Ramya Jayaram:
>>> Sorry, a couple of typos in the l4linux.cfg
>>> --vim:set ft=lua:
>>>
>>>
>>> L4.default_loader:start({ caps = {
>>>          log = L4.Env.log:m("rws"),
>>>        },
>>>        l4re_dbg = L4.Dbg.Warn,
>>>        log = { "l4linux", "yellow" },
>>>      }, "rom/vmlinuz mem=64M console=ttyLv0 l4x_rd=rom/drops-rd.rd root=1:0 ramdisk_size=4000 l4ser.vkey_enable=1");
>>>
>>> Thanks in advance,
>>> ramya
>>>
>>> ________________________________________
>>> From: l4-hackers [l4-hackers-bounces at os.inf.tu-dresden.de] on behalf of Masti  Ramya Jayaram [rmasti at inf.ethz.ch]
>>> Sent: 27 August 2014 14:07
>>> To: l4-hackers at os.inf.tu-dresden.de
>>> Subject: Minimal requirements to run L4linux using only a serial console
>>>
>>> Dear all,
>>>
>>> I am trying to run L4linux on fiasco/l4re but with the keyboard and VGA disabled. I can get all the way to the command prompt (of the shell) in the initramfs but then, on pressing a key, I get a page fault and I cannot debug the system anymore using the serial_esc. I suspect it is my configuration which I have provided below. I was wondering what the minimal packages are to achieve this.
>>>
>>> modules.list:
>>> entry l4linux
>>> kernel fiasco -serial_esc -freq=533000
>>> roottask moe rom/l4linux.cfg
>>> module l4re
>>> module ned
>>> module l4linux.cfg
>>> module io
>>> module vmlinuz
>>> module drops-rd.rd
>>>
>>> I have disabled the framebuffer and input server in the L4linux stub drivers configuration and enabled the serial console.
>>>
>>> l4linux.cfg:
>>>
>>> --vim:set ft=lua:
>>>
>>> L4.default_loader:start({ caps = {
>>>          log = L4.Env.log:m("rws"),
>>>        },
>>>        l4re_dbg = L4.Dbg.Warn,
>>>        log = { "l4linux", "yellow" },
>>>      }, "rom/io -vvvv rom/vmlinuz mem=64M console=ttyLv0 l4x_rd=rom/drops-rd.rd root=1:0 ramdisk$
>>>
>>>
>>> I also specify a custom frequency for my board to fiasco.oc, do I have to make similar modifications to l4linux (e.g., Timer frequency)?
>>>
>>> Thanks,
>>> Ramya


_______________________________________________
l4-hackers mailing list
l4-hackers at os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers


More information about the l4-hackers mailing list