Hi,
I started from a default l4linux26 kernel config. I did not touch anything, except for the things I had to, like acpi, apic, MTRR, MCE .. and the stuff that is missing (olpc, scx200 and these things). Everything else is default. The problem still exists but I was able to gather some info.
Executing the l4linux26.cfg prints out:
loader | sleeping for 1000 ms loader | vmlinuz: Starting application using libld-l4.s.so loader | vmlinuz,#11: Loading binary loader | vmlinuz,#11: Loading ldso loader | vmlinuz,#11: Starting libld-l4.s.so at 00013940 via 0000cc3c loader | DEBUG file = vmlinuz l4lx | ======> L4Linux 2.6 starting... <======== l4lx | Linux version 2.6.30-l4 (stefan@scarface) (gcc version 4.3.2 (Ubuntu l4lx : 4.3.2-1ubuntu12) ) #10 Wed Aug 5 16:45:57 CEST 2009 l4lx | Binary name: vmlinuz l4lx | Linux kernel command line (5 args): mem=64M load_ramdisk=1 ramdisk_si l4lx : ze=16384 root=/dev/ram l4env_rd=drops-rd.rd l4lx | Image: 00400000 - 00874000 [4560 KiB]. l4lx | Areas: Text: 00400000 - 006fd000 [3060kB] (a bit longer) l4lx | Data: 006fd000 - 007280e8 [172kB] l4lx | Initdata: 0072c000 - 00770000 [272kB] l4lx | BSS: 00772000 - 00853a94 [902kB] l4lx | l4lx_thread_create: Created thread 11.03 (tamer0) l4lx | Tamer0 is 11.03 l4lx | Using tamed mode. ROOT: Task #0c is not allowed to execute cli/sti loader | vmlinuz,#11: WARNING: Can't map I/O space, ROOT denies page (result=0 loader : 0004000) loader | vmlinuz,#11: Not allowed to perform any I/O l4lx | Got 0 out of 65536 I/O ports l4lx | Connecting to l4io server. l4lx | l4env_linux_startup thread 4. l4lx | l4lx_thread_create: Created thread 11.04 (cpu0) l4lx | main thread will be 11.04 l4lx | l4env_register_pointer_section: addr = 0072a000 size = 290816 l4lx | sec-w-init: virt: 0x0072a000 to 0x00770fff [284 KiB] l4lx | Noncontiguous region for sec-w-init l4lx | sec-w-init: Number of physical regions: 2, 290816 Bytes l4lx | sec-w-init: 1: Phys: 0x014f0000 to 0x01500000, Size: 65536 l4lx | sec-w-init: 2: Phys: 0x013b5000 to 0x013ec000, Size: 225280 l4lx | main thread: received startup message. l4lx | Main thread running, waiting... l4lx | memory_setup: mem=64M load_ramdisk=1 ramdisk_size=16384 root=/dev/ram l4lx : l4env_rd=drops-rd.rd l4lx | setup_l4env_memory: Forcing superpages for main memory l4lx | Main memory size: 64MB l4lx | Main memory: virt: 0x00c00000 to 0x04bfffff [65536 KiB] l4lx | Main memory: Number of physical regions: 1, 67108864 Bytes l4lx | Main memory: 1: Phys: 0x07400000 to 0x0b400000, Size: 67108864 l4lx | Filling lower ptabs... l4lx | mainmem = c00000 l4lx | Done (1864 entries). l4lx | l4env_register_pointer_section: addr = 00772000 size = 1056768 l4lx | end: virt: 0x00772000 to 0x00873fff [1032 KiB] l4lx | end: Number of physical regions: 1, 1056768 Bytes l4lx | end: 1: Phys: 0x06499000 to 0x0659b000, Size: 1056768 l4lx | memory_setup done l4lx | l4env_rd_path: drops-rd.rd l4lx | Loading: drops-rd.rd l4lx | INITRD: Size of RAMdisk is 16384KiB l4lx | RAMdisk from 04c00000 to 05c00000 [16384KiB] l4lx | l4env_phys_to_virt: Could not translate phys. address 0x80000 l4lx | l4env_phys_to_virt: Could not translate phys. address 0x80010 l4lx | l4env_phys_to_virt: Could not translate phys. address 0x80020 ...
and continues untiel physical address 0x9fff0 and ends with a lock up of the computer.
I am wondering about these lines:
ROOT: Task #0c is not allowed to execute cli/sti loader | vmlinuz,#11: WARNING: Can't map I/O space, ROOT denies page (result=0 loader : 0004000) loader | vmlinuz,#11: Not allowed to perform any I/O
Could that be causing the error? How can I fix this?
Thank you for help. Kind Regards, Stefan
Hi,
On Tue Aug 04, 2009 at 11:11:15 +0200, Stefan K?gel wrote:
I am still trying to run l4linux on top of fiasco. I am running it on top of a console system and configured L4Linux2.6 without any input drivers. Thanks to your suggestion I am loading vmlinuz with a start script.
I can't tell you much, but once booted both serial and console are spammed with
... l4lx | l4env_phys_to_virt: Could not translate phys. address 0x94140 l4lx | l4env_phys_to_virt: Could not translate phys. address 0x94150 l4lx | l4env_phys_to_virt: Could not translate phys. address 0x94160 ...
messages.
Did I forget to configure some kind of memory translation unit?
No but I'd guess that there's some driver in the Linux that causes this. Maybe you could start from the x86-ux or x86-native defconfigs and see if the same happens?
Adam
Hi,
On Wed Aug 05, 2009 at 19:39:00 +0200, Stefan Kögel wrote:
I started from a default l4linux26 kernel config. I did not touch anything, except for the things I had to, like acpi, apic, MTRR, MCE .. and the stuff that is missing (olpc, scx200 and these things). Everything else is default. The problem still exists but I was able to gather some info.
Executing the l4linux26.cfg prints out:
l4lx | l4env_phys_to_virt: Could not translate phys. address 0x80000 l4lx | l4env_phys_to_virt: Could not translate phys. address 0x80010 l4lx | l4env_phys_to_virt: Could not translate phys. address 0x80020 ...
and continues untiel physical address 0x9fff0 and ends with a lock up of the computer.
L4Linux will not work but the system would still run.
My guess is that ISCSI_IBFT_FIND is enabled. This option causes scans through physical memory, and the conversion functions in L4Linux are built in a conservative way because if something goes wrong this can lead to very subtle issues. If my guess is wrong you should get a backtrace when you enable earlyprintk on the kernel command line (i.e. it's already there but not printed (yet)).
I am wondering about these lines:
ROOT: Task #0c is not allowed to execute cli/sti loader | vmlinuz,#11: WARNING: Can't map I/O space, ROOT denies page (result=0 loader : 0004000) loader | vmlinuz,#11: Not allowed to perform any I/O
Could that be causing the error? How can I fix this?
Adding allow_cli as an option flag to the loader script will give L4Linux all I/O rights and make the message go away.
Adam
l4-hackers@os.inf.tu-dresden.de