Hi all,
first of all thank you Christian for the quick bugfix concerning the dde/usb makefile.
This time, I have a question related to the allocation of memory during system startup. At the moment, I'm just working with qemu/ l4ka-pistachio, and I've noticed that the initial memory allcation ("Trying to allocate 4K pages from sigma0") requests over 100MB, and this allocation takes about 3 seconds on my machine (without kqemu acceleration).
In core/platform.cc I saw, that you ask sigma0 for the entire amount of memory it has concerning this page size and that you also memset the returned memory to zero.
When playing around with that, I saw that omitting the zeroing does not seem to have any impact on the running system (I only have a dde driver running...).
I also saw that I may - for a start - limit the memory allocation to a much smaller size. This involved a much better startup performance.
So I wonder why the zeroing is needed, and I'd like to know if your memory management allowed for subsequent allocations from sigma0, so that I could save some startup time and allocate the remaining memory later.
(Is this question - from your point of view - worth the investigation at all? Or is the delay only related to my slow qemu having no impact on an average hardware?)
Thanx in advance
Sven
-- Sven Fülster
Hi Sven,
This time, I have a question related to the allocation of memory during system startup. At the moment, I'm just working with qemu/ l4ka-pistachio, and I've noticed that the initial memory allcation ("Trying to allocate 4K pages from sigma0") requests over 100MB, and this allocation takes about 3 seconds on my machine (without kqemu acceleration).
In core/platform.cc I saw, that you ask sigma0 for the entire amount of memory it has concerning this page size and that you also memset the returned memory to zero.
When playing around with that, I saw that omitting the zeroing does not seem to have any impact on the running system (I only have a dde driver running...).
I also saw that I may - for a start - limit the memory allocation to a much smaller size. This involved a much better startup performance.
at the startup, we use sigma0 as a tool to determine the physical memory regions to initialize core's pyhsical-memory allocator with. This is useful because Sigma0 knows which pages are RAM and which pages are non-RAM (e.g., memory-mapped I/O). Furthermore, on Pistachio, each physical page that is going to be mapped by core to another process must be locally mapped within core anyway. So we initialize this mapping right at the startup. This way, there is no further interaction with sigma0 needed during the actual runtime.
You are right, the delay is annoying. It is caused by two things. First, we do not request 4M pages, only 4K pages, from sigma0 because we experienced problems with further mapping 4K pages out of a 4M page on Pistachio and will need to investigate that. So there is far to much interaction going on between core and sigma0. Second, as you noticed, there is the zeroing of the pages, which, indeed, is not needed. Before handing out RAM dataspaces to the outside of core, we zero them out anyway. So there is no benefit to be gained from this early initialization.
So far we have mostly worked with only 64M of memory (on Qemu). On hardware with much memory, we experienced a further problem with the 4K allocations as the kernel tends to run out of kernel memory then. As a quick work-around for this case, we restricted the maximum amount of memory via the following kickstart argument:
kernel /pistachio/kickstart maxmem=64M
So I wonder why the zeroing is needed, and I'd like to know if your memory management allowed for subsequent allocations from sigma0, so that I could save some startup time and allocate the remaining memory later.
(Is this question - from your point of view - worth the investigation at all? Or is the delay only related to my slow qemu having no impact on an average hardware?)
You definitly spotted an area that we would like to see improved. The zeroing of memory can be discarded right away. However, the 4M-page issue and the kernel-memory issue are still unresolved problems.
If you are venturesome, you may try out using 4M mappings by removing the line
page_size_mask &= 1 << 12;
from the 'Platform::_setup_mem_alloc' function. ;-) You will notice that the startup delay gets much reduced. But you will certainly also notice corruptions in Pistachio's mapping database.
Thanks for your investigations and for pointing out the superfluous zeroing of memory!
Best regards
Norman
Hi Norman,
If you are venturesome, you may try out using 4M mappings by removing the line
page_size_mask &= 1 << 12;
from the 'Platform::_setup_mem_alloc' function. ;-) You will notice that the startup delay gets much reduced. But you will certainly also notice corruptions in Pistachio's mapping database.
No, I need a reliable kernel :) But I will even now investigate that, especially because we go for Genode on OKL4-Pistachio (on qemu, l4ka-pistachio was easier to set up for a start...). The OKL4 kernel was derived from l4ka, so it might show similar corruptions.
I'll get back to that as soon as I understand about it.
As you might have figured by receiving this mail, I have another question up my sleeve :)
This question concerns the USB HID driver once more, which I don't manage to get started. I'm working with an Intel Atom target meanwhile, and your system starts up fine there with nitpicker but without a running HID (I have keyboard and mouse as well as the startup USB stick connected to a USB hub).
A co-worker who tested this case in qemu, had to provide some device id explicitly in the qemu config file. In that context, the driver worked fine with a running mouse.
The HID driver does not seem to find any hardware on the PCI (see trace below).
When I run a system without nitpicker, there is - contrary to case 1 - some USB hardware found.
Do you have any idea what I might have forgotten to set up?
Thanx in advance
Sven
-- Sven Fülster
-- This is case 1 with nitpicker
L4Ka::Pistachio - built on Jun 15 2009 20:43:32 by krebserregend@...22... u sing gcc version 4.3.3 Genode::Platform::Platform(): > setup_basics void Genode::Platform::_setup_basics(): Let's check if we are complete... void Genode::Platform::_setup_basics(): DONE. mem 0: [0x00000000, 0x00000000) type=0x4 (Shared) Non-Virtual mem 1: [0x00000000, 0x0009f400) type=0x1 (Conventional) Non-Virtual mem 2: [0x0009f400, 0x000a0000) type=0x2f (Architecture-dependent) Non-Virtual mem 3: [0x000e0000, 0x00100000) type=0x2f (Architecture-dependent) Non-Virtual mem 4: [0x00100000, 0x1fa90000) type=0x1 (Conventional) Non-Virtual mem 5: [0x1fa90000, 0x1faa0000) type=0x2f (Architecture-dependent) Non-Virtual mem 6: [0x1faa0000, 0x1faae000) type=0x3f (Architecture-dependent) Non-Virtual mem 7: [0x1faae000, 0x1fae8000) type=0x4f (Architecture-dependent) Non-Virtual mem 8: [0x1fae8000, 0x1fb00000) type=0x2f (Architecture-dependent) Non-Virtual mem 9: [0x1fb00000, 0x1fc00000) type=0x2f (Architecture-dependent) Non-Virtual mem 10: [0xfee00000, 0xfee01000) type=0x2f (Architecture-dependent) Non-Virtual mem 11: [0xfff00000, 0x00000000) type=0x2f (Architecture-dependent) Non-Virtual mem 12: [0x0e000000, 0x0f000000) type=0x2 (Reserved by kernel) Non-Virtual mem 13: [0x000a0000, 0x000c0000) type=0x4 (Shared) Non-Virtual mem 14: [0x000c0000, 0x000f0000) type=0x4 (Shared) Non-Virtual mem 15: [0x00020000, 0x00028800) type=0x2e (Boot loader) Non-Virtual mem 16: [0x00300000, 0x0036c400) type=0x2e (Boot loader) Non-Virtual mem 17: [0x00a2c000, 0x00b42c00) type=0x3e (Boot loader) Non-Virtual mem 18: [0x00b43000, 0x00b43400) type=0x3e (Boot loader) Non-Virtual mem 19: [0x00b44000, 0x00c01c00) type=0x3e (Boot loader) Non-Virtual mem 20: [0x00c02000, 0x00ccfc00) type=0x3e (Boot loader) Non-Virtual mem 21: [0x00cd0000, 0x00de3c00) type=0x3e (Boot loader) Non-Virtual mem 22: [0x00de4000, 0x00eb2400) type=0x3e (Boot loader) Non-Virtual mem 23: [0x00eb3000, 0x01114000) type=0x3e (Boot loader) Non-Virtual mem 24: [0x01114000, 0x0126f400) type=0x3e (Boot loader) Non-Virtual mem 25: [0x01270000, 0x01356800) type=0x3e (Boot loader) Non-Virtual mem 26: [0x01357000, 0x016c5000) type=0x3e (Boot loader) Non-Virtual mem 27: [0x016c5000, 0x017cb000) type=0x3e (Boot loader) Non-Virtual mem 28: [0x017cb000, 0x0186f000) type=0x3e (Boot loader) Non-Virtual mem 29: [0x0186f000, 0x01c70800) type=0x3e (Boot loader) Non-Virtual mem 30: [0x01c71000, 0x020a0400) type=0x3e (Boot loader) Non-Virtual mem 31: [0x020a1000, 0x023ca800) type=0x3e (Boot loader) Non-Virtual mem 32: [0x023cb000, 0x02489800) type=0x3e (Boot loader) Non-Virtual mem 33: [0x00001000, 0x00002000) type=0x1e (Boot loader) Non-Virtual mem 34: [0x00002000, 0x00003000) type=0x1e (Boot loader) Non-Virtual mem 35: [0x00000000, 0xc0000000) type=0x1 (Conventional) Virtual mem 36: [0x00100000, 0x00143000) type=0x2 (Reserved by kernel) Non-Virtual void Genode::Platform::_setup_basics(): Requesting the BootInfo page from Sigma0 . void Genode::Platform::_setup_basics(): Multiboot size is 924 bytes. static void Genode::Platform_pd::touch_utcb_space(): Core can have 8 threads. void Genode::Platform::_setup_basics(): KIP @ bff00000 (size 0x00000120) void Genode::Platform::_setup_basics(): UTCB base @ bf000000 (size 00001000) void Genode::Platform::_setup_basics(): _setup_basics done! Genode::Platform::Platform(): > setup_preemption Genode::Platform::Platform(): > setup_mem_alloc Trying to allocate 4K pages from sigma0. Got 471828K in 4K pieces. Genode::Platform::Platform(): > setup_port_alloc void Genode::Platform::_setup_io_port_alloc(): Do we need to do something to all ocate I/O ports?! Genode::Platform::Platform(): > setup_irq_alloc Genode::Platform::Platform(): > setup_rom Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 0 is init. Start: 00a2c000 | Size: 00116ab0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for init created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 1 is config. Start: 00b43000 | Size: 0000024a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for config created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 2 is timer. Start: 00b44000 | Size: 000bd963 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for timer created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 3 is pci_drv. Start: 00c02000 | Size: 000cd8d3 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for pci_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 4 is vesa_drv. Start: 00cd0000 | Size: 00113846 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for vesa_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 5 is ps2_drv. Start: 00de4000 | Size: 000ce093 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for ps2_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 6 is launchpad. Start: 00eb3000 | Size: 00260d49 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for launchpad created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 7 is liquid_fb. Start: 01114000 | Size: 0015b056 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for liquid_fb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 8 is nitlog. Start: 01270000 | Size: 000e67e0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitlog created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 9 is scout. Start: 01357000 | Size: 0036df9a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for scout created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 10 i s nitpicker. Start: 016c5000 | Size: 00105cb7 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitpicker created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 11 i s test-pci. Start: 017cb000 | Size: 000a3f31 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-pci created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 12 i s test-dde_linux26_usb. Start: 0186f000 | Size: 00401476 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 13 i s test-dde_linux26_usbhid. Start: 01c71000 | Size: 0042f3ea Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usbhid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 14 i s test-dde_linux26_usb_hid. Start: 020a1000 | Size: 0032952a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb_hid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 15 i s input_dummy. Start: 023cb000 | Size: 000be7c1 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for input_dummy created. void Genode::Platform_pd::_setup_address_space(): Setting up Core's address spac e. Genode::Platform::Platform(): Trying to start core pager. thread 'core.pager0' has id 0x00808002 (task = 0x1, thread = 0x2) void Genode::Platform::_setup_core_pager(): Core pager has L4_ThreadId 00808002. Genode::Platform::Platform(): Done starting core pager. We are: THREAD (global) 32 (version 1) thread 'activation' has id 0x0080c002 (task = 0x1, thread = 0x3) void _core_pager_loop(): Waiting for page fault. int main(): --- create local services --- thread 'pager' has id 0x00810002 (task = 0x1, thread = 0x4) int main(): --- start init --- int main(): Ok we have 459 MB transfered to init thread 'init' has id 0x00814002 (task = 0x1, thread = 0x5) thread 'signal-tx' has id 0x00818002 (task = 0x1, thread = 0x6) thread 'init' has id 0x01004002 (task = 0x2, thread = 0x1) int main(): --- init created, waiting for exit condition --- [init] our quota limit is 482072924 [init] our used quota is 155648 [init] starting timer with quota=1048576 [init] using unique child name "timer" thread 'timer' has id 0x01008002 (task = 0x2, thread = 0x2) thread 'signal-tx' has id 0x0081c002 (task = 0x1, thread = 0x7) thread 'timer' has id 0x01804002 (task = 0x3, thread = 0x1) [init] starting pci_drv with quota=1048576 [init] using unique child name "pci_drv" thread 'activation' has id 0x01808002 (task = 0x3, thread = 0x2) thread 'pci_drv' has id 0x0100c002 (task = 0x2, thread = 0x3) [init] timer registered service Timer thread 'signal-tx' has id 0x00820002 (task = 0x1, thread = 0x8) thread 'pci_drv' has id 0x02004002 (task = 0x4, thread = 0x1) [init] starting test-dde_linux26_usbhid with quota=1048576 [init -> pci_drv] PCI driver started thread 'activation' has id 0x02008002 (task = 0x4, thread = 0x2) [init] using unique child name "test-dde_linux26_usbhid" thread 'test-dde_linux26_usbhid' has id 0x01010002 (task = 0x2, thread = 0x4) [init] pci_drv registered service PCI thread 'signal-tx' has id 0x00824002 (task = 0x1, thread = 0x9) thread 'test-dde_linux26_usbhid' has id 0x02804002 (task = 0x5, thread = 0x1) [init] starting vesa_drv with quota=1048576 thread 'activation' has id 0x0180c002 (task = 0x3, thread = 0x3) [init] using unique child name "vesa_drv" thread 'vesa_drv' has id 0x01014002 (task = 0x2, thread = 0x5) thread 'signal-tx' has id 0x00828002 (task = 0x1, thread = 0xa) thread 'vesa_drv' has id 0x03004002 (task = 0x6, thread = 0x1) [init] starting nitpicker with quota=1048576 thread 'activation' has id 0x03008002 (task = 0x6, thread = 0x2) [init] using unique child name "nitpicker" thread 'nitpicker' has id 0x01018002 (task = 0x2, thread = 0x6) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x00000000, size = 0x00001000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x00000000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x0009f000, size = 0x00061000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x0009f000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f0000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f1000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f2000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f3000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f4000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f5000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f6000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f7000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f8000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f9000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fa000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fb000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fc000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fd000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fe000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000ff000. (ignoring) [init] vesa_drv registered service Framebuffer thread 'signal-tx' has id 0x0082c002 (task = 0x1, thread = 0xb) thread 'nitpicker' has id 0x03804002 (task = 0x7, thread = 0x1) [init] starting launchpad with quota=33554432 thread 'activation' has id 0x01810002 (task = 0x3, thread = 0x4) [init] using unique child name "launchpad" thread 'launchpad' has id 0x0101c002 (task = 0x2, thread = 0x7) [init -> vesa_drv] Found: VESA BIOS version 3.0 [init -> vesa_drv] OEM: Intel(r)Poulsbo Graphics Chip Accelerated VGA BIOS thread 'signal-tx' has id 0x00830002 (task = 0x1, thread = 0xc) thread 'launchpad' has id 0x04004002 (task = 0x8, thread = 0x1) [init] starting nitlog with quota=16777216 [init] using unique child name "nitlog" thread 'nitlog' has id 0x01020002 (task = 0x2, thread = 0x8) thread 'signal-tx' has id 0x00834002 (task = 0x1, thread[init] launchpad: servic e Nitpicker not yet available - sleeping = 0xd) thread 'nitlog' has id 0x04804002 (task = 0x9, thread = 0x1) [init -> nitlog] --- nitlog --- [init] nitlog: service Nitpicker not yet available - sleeping [init -> vesa_drv] int Framebuffer_drv::set_mode(long unsigned int, long unsigne d int, long unsigned int): FB phys at 0x1fc00000 size: 0003d0000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x1fc00000, size = 0x003d0000 [init] nitpicker: service Input not yet available - sleeping thread 'activation' has id 0x02808002 (task = 0x5, thread = 0x2) [init] test-dde_linux26_usbhid registered service Input thread 'activation' has id 0x01814002 (task = 0x3, thread = 0x5) [init] nitpicker: service Input got available thread 'activation' has id 0x03808002 (task = 0x7, thread = 0x2) thread 'timer' has id 0x0280c002 (task = 0x5, thread = 0x3) [init -> nitpicker] framebuffer is 1024x768@...23... thread '.softirqd' has id 0x02810002 (task = 0x5, thread = 0x4) [init -> test-dde_linux26_usbhid] Softirq daemon starting thread 'DDE main' has id 0x02814002 (task = 0x5, thread = 0x5) [init -> test-dde_linux26_usbhid] void dde_thread_main(): --- initcalls [init -> test-dde_linux26_usbhid] Initializing DDE Linux 2.6 page cache [init] nitpicker registered service Nitpicker thread '.kthread1' has id 0x02818002 (task = 0x5, thread = 0x6) [init] launchpad: service Nitpicker got available [init -> nitpicker] create session with args: ram_quota=1654784, fb_mode=1, labe l="launchpad" [init] nitlog: service Nitpicker got available thread '.kthread2' has id 0x0281c002 (task = 0x5, thread = 0x7) Genode::Io_port_session_component::Io_port_session_component(Genode::Range_alloc ator[init -> nitpicker] create session with args: ram_quota=1245184, fb_width=40 0, fb_heigh*, const char*): I/O port [cf8,cfc) not available t=1536, fb_mode=1, label="launchpad" [init -> pci_drv] void* fwrite(): fwrite - not yet implemented [init -> pci_drv] void* fputs(const char*, void*): fputs: "Genode::Parent::Servi ce_denied" thread 'activation' has id 0x01818002 (task = 0x3, thread = 0x6) [init -> nitpicker] create session with args: ram_quota=307512, fb_width=482, fb _height=302, fb_mode=1, label="nitlog" [init -> pci_drv] void* fwrite(): fwrite - not yet implemented [init -> pci_drv] void* abort(): abort called thread '<noname>' has id 0x04008002 (task = 0x8, thread = 0x2) thread 'activation' has id 0x0181c002 (task = 0x3, thread = 0x7) thread 'activation' has id 0x04808002 (task = 0x9, thread = 0x2) [init] nitlog registered service LOG
-- This is case 2 without nitpicker - I don't know why the exception is raised at the end of output, but now, some USB hardware is found in contrast to case 1
L4Ka::Pistachio - built on Jun 15 2009 20:43:32 by krebserregend@...22... u sing gcc version 4.3.3 Genode::Platform::Platform(): > setup_basics void Genode::Platform::_setup_basics(): Let's check if we are complete... void Genode::Platform::_setup_basics(): DONE. mem 0: [0x00000000, 0x00000000) type=0x4 (Shared) Non-Virtual mem 1: [0x00000000, 0x0009f400) type=0x1 (Conventional) Non-Virtual mem 2: [0x0009f400, 0x000a0000) type=0x2f (Architecture-dependent) Non-Virtual mem 3: [0x000e0000, 0x00100000) type=0x2f (Architecture-dependent) Non-Virtual mem 4: [0x00100000, 0x1fa90000) type=0x1 (Conventional) Non-Virtual mem 5: [0x1fa90000, 0x1faa0000) type=0x2f (Architecture-dependent) Non-Virtual mem 6: [0x1faa0000, 0x1faae000) type=0x3f (Architecture-dependent) Non-Virtual mem 7: [0x1faae000, 0x1fae8000) type=0x4f (Architecture-dependent) Non-Virtual mem 8: [0x1fae8000, 0x1fb00000) type=0x2f (Architecture-dependent) Non-Virtual mem 9: [0x1fb00000, 0x1fc00000) type=0x2f (Architecture-dependent) Non-Virtual mem 10: [0xfee00000, 0xfee01000) type=0x2f (Architecture-dependent) Non-Virtual mem 11: [0xfff00000, 0x00000000) type=0x2f (Architecture-dependent) Non-Virtual mem 12: [0x0e000000, 0x0f000000) type=0x2 (Reserved by kernel) Non-Virtual mem 13: [0x000a0000, 0x000c0000) type=0x4 (Shared) Non-Virtual mem 14: [0x000c0000, 0x000f0000) type=0x4 (Shared) Non-Virtual mem 15: [0x00020000, 0x00028800) type=0x2e (Boot loader) Non-Virtual mem 16: [0x00300000, 0x0036c400) type=0x2e (Boot loader) Non-Virtual mem 17: [0x00a2c000, 0x00b42c00) type=0x3e (Boot loader) Non-Virtual mem 18: [0x00b43000, 0x00b43400) type=0x3e (Boot loader) Non-Virtual mem 19: [0x00b44000, 0x00c01c00) type=0x3e (Boot loader) Non-Virtual mem 20: [0x00c02000, 0x00ccfc00) type=0x3e (Boot loader) Non-Virtual mem 21: [0x00cd0000, 0x00de3c00) type=0x3e (Boot loader) Non-Virtual mem 22: [0x00de4000, 0x00eb2400) type=0x3e (Boot loader) Non-Virtual mem 23: [0x00eb3000, 0x01114000) type=0x3e (Boot loader) Non-Virtual mem 24: [0x01114000, 0x0126f400) type=0x3e (Boot loader) Non-Virtual mem 25: [0x01270000, 0x01356800) type=0x3e (Boot loader) Non-Virtual mem 26: [0x01357000, 0x016c5000) type=0x3e (Boot loader) Non-Virtual mem 27: [0x016c5000, 0x017cb000) type=0x3e (Boot loader) Non-Virtual mem 28: [0x017cb000, 0x0186f000) type=0x3e (Boot loader) Non-Virtual mem 29: [0x0186f000, 0x01c70800) type=0x3e (Boot loader) Non-Virtual mem 30: [0x01c71000, 0x020a0400) type=0x3e (Boot loader) Non-Virtual mem 31: [0x020a1000, 0x023ca800) type=0x3e (Boot loader) Non-Virtual mem 32: [0x023cb000, 0x02489800) type=0x3e (Boot loader) Non-Virtual mem 33: [0x00001000, 0x00002000) type=0x1e (Boot loader) Non-Virtual mem 34: [0x00002000, 0x00003000) type=0x1e (Boot loader) Non-Virtual mem 35: [0x00000000, 0xc0000000) type=0x1 (Conventional) Virtual mem 36: [0x00100000, 0x00143000) type=0x2 (Reserved by kernel) Non-Virtual void Genode::Platform::_setup_basics(): Requesting the BootInfo page from Sigma0 . void Genode::Platform::_setup_basics(): Multiboot size is 924 bytes. static void Genode::Platform_pd::touch_utcb_space(): Core can have 8 threads. void Genode::Platform::_setup_basics(): KIP @ bff00000 (size 0x00000120) void Genode::Platform::_setup_basics(): UTCB base @ bf000000 (size 00001000) void Genode::Platform::_setup_basics(): _setup_basics done! Genode::Platform::Platform(): > setup_preemption Genode::Platform::Platform(): > setup_mem_alloc Trying to allocate 4K pages from sigma0. Got 471828K in 4K pieces. Genode::Platform::Platform(): > setup_port_alloc void Genode::Platform::_setup_io_port_alloc(): Do we need to do something to all ocate I/O ports?! Genode::Platform::Platform(): > setup_irq_alloc Genode::Platform::Platform(): > setup_rom Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 0 is init. Start: 00a2c000 | Size: 00116ab0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for init created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 1 is config. Start: 00b43000 | Size: 00000253 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for config created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 2 is timer. Start: 00b44000 | Size: 000bd963 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for timer created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 3 is pci_drv. Start: 00c02000 | Size: 000cd8d3 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for pci_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 4 is vesa_drv. Start: 00cd0000 | Size: 00113846 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for vesa_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 5 is ps2_drv. Start: 00de4000 | Size: 000ce093 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for ps2_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 6 is launchpad. Start: 00eb3000 | Size: 00260d49 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for launchpad created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 7 is liquid_fb. Start: 01114000 | Size: 0015b056 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for liquid_fb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 8 is nitlog. Start: 01270000 | Size: 000e67e0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitlog created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 9 is scout. Start: 01357000 | Size: 0036df9a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for scout created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 10 i s nitpicker. Start: 016c5000 | Size: 00105cb7 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitpicker created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 11 i s test-pci. Start: 017cb000 | Size: 000a3f31 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-pci created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 12 i s test-dde_linux26_usb. Start: 0186f000 | Size: 00401476 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 13 i s test-dde_linux26_usbhid. Start: 01c71000 | Size: 0042f3ea Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usbhid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 14 i s test-dde_linux26_usb_hid. Start: 020a1000 | Size: 0032952a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb_hid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 15 i s input_dummy. Start: 023cb000 | Size: 000be7c1 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for input_dummy created. void Genode::Platform_pd::_setup_address_space(): Setting up Core's address spac e. Genode::Platform::Platform(): Trying to start core pager. thread 'core.pager0' has id 0x00808002 (task = 0x1, thread = 0x2) void Genode::Platform::_setup_core_pager(): Core pager has L4_ThreadId 00808002. Genode::Platform::Platform(): Done starting core pager. We are: THREAD (global) 32 (version 1) thread 'activation' has id 0x0080c002 (task = 0x1, thread = 0x3) void _core_pager_loop(): Waiting for page fault. int main(): --- create local services --- thread 'pager' has id 0x00810002 (task = 0x1, thread = 0x4) int main(): --- start init --- int main(): Ok we have 459 MB transfered to init thread 'init' has id 0x00814002 (task = 0x1, thread = 0x5) thread 'signal-tx' has id 0x00818002 (task = 0x1, thread = 0x6) thread 'init' has id 0x01004002 (task = 0x2, thread = 0x1) int main(): --- init created, waiting for exit condition --- [init] our quota limit is 482072924 [init] our used quota is 155648 [init] starting timer with quota=1048576 [init] using unique child name "timer" thread 'timer' has id 0x01008002 (task = 0x2, thread = 0x2) thread 'signal-tx' has id 0x0081c002 (task = 0x1, thread = 0x7) thread 'timer' has id 0x01804002 (task = 0x3, thread = 0x1) [init] starting pci_drv with quota=1048576 thread 'activation' has id 0x01808002 (task = 0x3, thread = 0x2) [init] using unique child name "pci_drv" thread 'pci_drv' has id 0x0100c002 (task = 0x2, thread = 0x3) [init] timer registered service Timer thread 'signal-tx' has id 0x00820002 (task = 0x1, thread = 0x8) thread 'pci_drv' has id 0x02004002 (task = 0x4, thread = 0x1) [init] starting test-dde_linux26_usbhid with quota=1048576 [init] using unique child name "test-dde_linux26_usbhid" [init -> pci_drv] PCI driver started thread 'activation' has id 0x02008002 (task = 0x4, thread = 0x2) thread 'test-dde_linux26_usbhid' has id 0x01010002 (task = 0x2, thread = 0x4) [init] pci_drv registered service PCI thread 'signal-tx' has id 0x00824002 (task = 0x1, thread = 0x9) thread 'test-dde_linux26_usbhid' has id 0x02804002 (task = 0x5, thread = 0x1) [init] starting vesa_drv with quota=1048576 thread 'activation' has id 0x0180c002 (task = 0x3, thread = 0x3) [init] using unique child name "vesa_drv" thread 'vesa_drv' has id 0x01014002 (task = 0x2, thread = 0x5) thread 'signal-tx' has id 0x00828002 (task = 0x1, thread = 0xa) thread 'vesa_drv' has id 0x03004002 (task = 0x6, thread = 0x1) thread 'activation' has id 0x03008002 (task = 0x6, thread = 0x2) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x00000000, size = 0x00001000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x00000000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x0009f000, size = 0x00061000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x0009f000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f0000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f1000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f2000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f3000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f4000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f5000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f6000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f7000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f8000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f9000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fa000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fb000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fc000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fd000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fe000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000ff000. (ignoring) [init] vesa_drv registered service Framebuffer thread 'activation' has id 0x02808002 (task = 0x5, thread = 0x2) [init] test-dde_linux26_usbhid registered service Input thread 'activation' has id 0x01810002 (task = 0x3, thread = 0x4) thread 'timer' has id 0x0280c002 (task = 0x5, thread = 0x3) thread '.softirqd' has id 0x02810002 (task = 0x5, thread = 0x4) [init -> test-dde_linux26_usbhid] Softirq daemon starting thread 'DDE main' has id 0x02814002 (task = 0x5, thread = 0x5) [init -> test-dde_linux26_usbhid] void dde_thread_main(): --- initcalls [init -> test-dde_linux26_usbhid] Initializing DDE Linux 2.6 page cache thread '.kthread1' has id 0x02818002 (task = 0x5, thread = 0x6) thread '.kthread2' has id 0x0281c002 (task = 0x5, thread = 0x7) [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:00.0 8086 :8100 (6) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:01.0 8086 :8108 (3) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:02.0 8086 :8110 (6) ht=81 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:03.0 8086 :8112 (6) ht=01 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:04.0 8086 :8114 (c) ht=80 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:05.0 8086 :8117 (c) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:06.0 8086 :8119 (6) ht=80 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:07.0 8086 :811a (1) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:08.0 8086 :10d3 (2) ht=00 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:810 0 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:810 8 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 0 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 2 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 4 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 7 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 9 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 a [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:10d 3 [init -> test-dde_linux26_usbhid] <6>usbcore: registered new interface driver us bfs [init -> test-dde_linux26_usbhid] <6>usbcore: registered new interface driver hu b thread '.kthread3' has id 0x02820002 (task = 0x5, thread = 0x8) [init -> test-dde_linux26_usbhid] <6>usbcore: registered new device driver usb Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0xdff5bc00, size = 0x00000400 e0102800: invalid opcode at IP 00304dbd --- "KD# invalid opcode" --- --------------------------------- (eip=f010c25a, esp=f0114177) ---
Hi Sven,
sorry for the delay, but I seem to have problems posting to the list...
On Mon, Jul 06, 2009 at 03:08:09PM +0200, mx@...19... wrote:
As you might have figured by receiving this mail, I have another question up my sleeve :)
This question concerns the USB HID driver once more, which I don't manage to get started. I'm working with an Intel Atom target meanwhile, and your system starts up fine there with nitpicker but without a running HID (I have keyboard and mouse as well as the startup USB stick connected to a USB hub).
A co-worker who tested this case in qemu, had to provide some device id explicitly in the qemu config file. In that context, the driver worked fine with a running mouse.
The HID driver does not seem to find any hardware on the PCI (see trace below).
When I run a system without nitpicker, there is - contrary to case 1 - some USB hardware found.
Do you have any idea what I might have forgotten to set up?
Yes, thanks to your attached logs I'm sure the problem is the vesa_drv, which accesses the PCI configuration registers indirectly through the code in the VESA VBE code. Afterwards, the pci_drv is not able to grab the PCI registers from core and fails to start. For this reason also the USB core drivers fails as it depends on the pci_drv for managed PCI access. (see below for notes in the logs)
-- This is case 1 with nitpicker
L4Ka::Pistachio - built on Jun 15 2009 20:43:32 by krebserregend@...22... u sing gcc version 4.3.3 Genode::Platform::Platform(): > setup_basics void Genode::Platform::_setup_basics(): Let's check if we are complete... void Genode::Platform::_setup_basics(): DONE. mem 0: [0x00000000, 0x00000000) type=0x4 (Shared) Non-Virtual mem 1: [0x00000000, 0x0009f400) type=0x1 (Conventional) Non-Virtual mem 2: [0x0009f400, 0x000a0000) type=0x2f (Architecture-dependent) Non-Virtual mem 3: [0x000e0000, 0x00100000) type=0x2f (Architecture-dependent) Non-Virtual mem 4: [0x00100000, 0x1fa90000) type=0x1 (Conventional) Non-Virtual mem 5: [0x1fa90000, 0x1faa0000) type=0x2f (Architecture-dependent) Non-Virtual mem 6: [0x1faa0000, 0x1faae000) type=0x3f (Architecture-dependent) Non-Virtual mem 7: [0x1faae000, 0x1fae8000) type=0x4f (Architecture-dependent) Non-Virtual mem 8: [0x1fae8000, 0x1fb00000) type=0x2f (Architecture-dependent) Non-Virtual mem 9: [0x1fb00000, 0x1fc00000) type=0x2f (Architecture-dependent) Non-Virtual mem 10: [0xfee00000, 0xfee01000) type=0x2f (Architecture-dependent) Non-Virtual mem 11: [0xfff00000, 0x00000000) type=0x2f (Architecture-dependent) Non-Virtual mem 12: [0x0e000000, 0x0f000000) type=0x2 (Reserved by kernel) Non-Virtual mem 13: [0x000a0000, 0x000c0000) type=0x4 (Shared) Non-Virtual mem 14: [0x000c0000, 0x000f0000) type=0x4 (Shared) Non-Virtual mem 15: [0x00020000, 0x00028800) type=0x2e (Boot loader) Non-Virtual mem 16: [0x00300000, 0x0036c400) type=0x2e (Boot loader) Non-Virtual mem 17: [0x00a2c000, 0x00b42c00) type=0x3e (Boot loader) Non-Virtual mem 18: [0x00b43000, 0x00b43400) type=0x3e (Boot loader) Non-Virtual mem 19: [0x00b44000, 0x00c01c00) type=0x3e (Boot loader) Non-Virtual mem 20: [0x00c02000, 0x00ccfc00) type=0x3e (Boot loader) Non-Virtual mem 21: [0x00cd0000, 0x00de3c00) type=0x3e (Boot loader) Non-Virtual mem 22: [0x00de4000, 0x00eb2400) type=0x3e (Boot loader) Non-Virtual mem 23: [0x00eb3000, 0x01114000) type=0x3e (Boot loader) Non-Virtual mem 24: [0x01114000, 0x0126f400) type=0x3e (Boot loader) Non-Virtual mem 25: [0x01270000, 0x01356800) type=0x3e (Boot loader) Non-Virtual mem 26: [0x01357000, 0x016c5000) type=0x3e (Boot loader) Non-Virtual mem 27: [0x016c5000, 0x017cb000) type=0x3e (Boot loader) Non-Virtual mem 28: [0x017cb000, 0x0186f000) type=0x3e (Boot loader) Non-Virtual mem 29: [0x0186f000, 0x01c70800) type=0x3e (Boot loader) Non-Virtual mem 30: [0x01c71000, 0x020a0400) type=0x3e (Boot loader) Non-Virtual mem 31: [0x020a1000, 0x023ca800) type=0x3e (Boot loader) Non-Virtual mem 32: [0x023cb000, 0x02489800) type=0x3e (Boot loader) Non-Virtual mem 33: [0x00001000, 0x00002000) type=0x1e (Boot loader) Non-Virtual mem 34: [0x00002000, 0x00003000) type=0x1e (Boot loader) Non-Virtual mem 35: [0x00000000, 0xc0000000) type=0x1 (Conventional) Virtual mem 36: [0x00100000, 0x00143000) type=0x2 (Reserved by kernel) Non-Virtual void Genode::Platform::_setup_basics(): Requesting the BootInfo page from Sigma0 . void Genode::Platform::_setup_basics(): Multiboot size is 924 bytes. static void Genode::Platform_pd::touch_utcb_space(): Core can have 8 threads. void Genode::Platform::_setup_basics(): KIP @ bff00000 (size 0x00000120) void Genode::Platform::_setup_basics(): UTCB base @ bf000000 (size 00001000) void Genode::Platform::_setup_basics(): _setup_basics done! Genode::Platform::Platform(): > setup_preemption Genode::Platform::Platform(): > setup_mem_alloc Trying to allocate 4K pages from sigma0. Got 471828K in 4K pieces. Genode::Platform::Platform(): > setup_port_alloc void Genode::Platform::_setup_io_port_alloc(): Do we need to do something to all ocate I/O ports?! Genode::Platform::Platform(): > setup_irq_alloc Genode::Platform::Platform(): > setup_rom Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 0 is init. Start: 00a2c000 | Size: 00116ab0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for init created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 1 is config. Start: 00b43000 | Size: 0000024a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for config created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 2 is timer. Start: 00b44000 | Size: 000bd963 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for timer created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 3 is pci_drv. Start: 00c02000 | Size: 000cd8d3 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for pci_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 4 is vesa_drv. Start: 00cd0000 | Size: 00113846 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for vesa_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 5 is ps2_drv. Start: 00de4000 | Size: 000ce093 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for ps2_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 6 is launchpad. Start: 00eb3000 | Size: 00260d49 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for launchpad created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 7 is liquid_fb. Start: 01114000 | Size: 0015b056 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for liquid_fb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 8 is nitlog. Start: 01270000 | Size: 000e67e0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitlog created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 9 is scout. Start: 01357000 | Size: 0036df9a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for scout created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 10 i s nitpicker. Start: 016c5000 | Size: 00105cb7 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitpicker created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 11 i s test-pci. Start: 017cb000 | Size: 000a3f31 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-pci created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 12 i s test-dde_linux26_usb. Start: 0186f000 | Size: 00401476 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 13 i s test-dde_linux26_usbhid. Start: 01c71000 | Size: 0042f3ea Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usbhid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 14 i s test-dde_linux26_usb_hid. Start: 020a1000 | Size: 0032952a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb_hid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 15 i s input_dummy. Start: 023cb000 | Size: 000be7c1 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for input_dummy created. void Genode::Platform_pd::_setup_address_space(): Setting up Core's address spac e. Genode::Platform::Platform(): Trying to start core pager. thread 'core.pager0' has id 0x00808002 (task = 0x1, thread = 0x2) void Genode::Platform::_setup_core_pager(): Core pager has L4_ThreadId 00808002. Genode::Platform::Platform(): Done starting core pager. We are: THREAD (global) 32 (version 1) thread 'activation' has id 0x0080c002 (task = 0x1, thread = 0x3) void _core_pager_loop(): Waiting for page fault. int main(): --- create local services --- thread 'pager' has id 0x00810002 (task = 0x1, thread = 0x4) int main(): --- start init --- int main(): Ok we have 459 MB transfered to init thread 'init' has id 0x00814002 (task = 0x1, thread = 0x5) thread 'signal-tx' has id 0x00818002 (task = 0x1, thread = 0x6) thread 'init' has id 0x01004002 (task = 0x2, thread = 0x1) int main(): --- init created, waiting for exit condition --- [init] our quota limit is 482072924 [init] our used quota is 155648 [init] starting timer with quota=1048576 [init] using unique child name "timer" thread 'timer' has id 0x01008002 (task = 0x2, thread = 0x2) thread 'signal-tx' has id 0x0081c002 (task = 0x1, thread = 0x7) thread 'timer' has id 0x01804002 (task = 0x3, thread = 0x1) [init] starting pci_drv with quota=1048576 [init] using unique child name "pci_drv" thread 'activation' has id 0x01808002 (task = 0x3, thread = 0x2) thread 'pci_drv' has id 0x0100c002 (task = 0x2, thread = 0x3) [init] timer registered service Timer thread 'signal-tx' has id 0x00820002 (task = 0x1, thread = 0x8) thread 'pci_drv' has id 0x02004002 (task = 0x4, thread = 0x1) [init] starting test-dde_linux26_usbhid with quota=1048576 [init -> pci_drv] PCI driver started thread 'activation' has id 0x02008002 (task = 0x4, thread = 0x2) [init] using unique child name "test-dde_linux26_usbhid" thread 'test-dde_linux26_usbhid' has id 0x01010002 (task = 0x2, thread = 0x4) [init] pci_drv registered service PCI thread 'signal-tx' has id 0x00824002 (task = 0x1, thread = 0x9) thread 'test-dde_linux26_usbhid' has id 0x02804002 (task = 0x5, thread = 0x1) [init] starting vesa_drv with quota=1048576 thread 'activation' has id 0x0180c002 (task = 0x3, thread = 0x3) [init] using unique child name "vesa_drv" thread 'vesa_drv' has id 0x01014002 (task = 0x2, thread = 0x5) thread 'signal-tx' has id 0x00828002 (task = 0x1, thread = 0xa) thread 'vesa_drv' has id 0x03004002 (task = 0x6, thread = 0x1) [init] starting nitpicker with quota=1048576 thread 'activation' has id 0x03008002 (task = 0x6, thread = 0x2) [init] using unique child name "nitpicker" thread 'nitpicker' has id 0x01018002 (task = 0x2, thread = 0x6) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x00000000, size = 0x00001000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x00000000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x0009f000, size = 0x00061000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x0009f000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f0000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f1000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f2000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f3000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f4000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f5000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f6000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f7000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f8000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f9000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fa000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fb000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fc000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fd000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fe000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000ff000. (ignoring) [init] vesa_drv registered service Framebuffer thread 'signal-tx' has id 0x0082c002 (task = 0x1, thread = 0xb) thread 'nitpicker' has id 0x03804002 (task = 0x7, thread = 0x1) [init] starting launchpad with quota=33554432 thread 'activation' has id 0x01810002 (task = 0x3, thread = 0x4) [init] using unique child name "launchpad" thread 'launchpad' has id 0x0101c002 (task = 0x2, thread = 0x7) [init -> vesa_drv] Found: VESA BIOS version 3.0 [init -> vesa_drv] OEM: Intel(r)Poulsbo Graphics Chip Accelerated VGA BIOS thread 'signal-tx' has id 0x00830002 (task = 0x1, thread = 0xc) thread 'launchpad' has id 0x04004002 (task = 0x8, thread = 0x1) [init] starting nitlog with quota=16777216 [init] using unique child name "nitlog" thread 'nitlog' has id 0x01020002 (task = 0x2, thread = 0x8) thread 'signal-tx' has id 0x00834002 (task = 0x1, thread[init] launchpad: servic e Nitpicker not yet available - sleeping = 0xd) thread 'nitlog' has id 0x04804002 (task = 0x9, thread = 0x1) [init -> nitlog] --- nitlog --- [init] nitlog: service Nitpicker not yet available - sleeping [init -> vesa_drv] int Framebuffer_drv::set_mode(long unsigned int, long unsigne d int, long unsigned int): FB phys at 0x1fc00000 size: 0003d0000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x1fc00000, size = 0x003d0000 [init] nitpicker: service Input not yet available - sleeping thread 'activation' has id 0x02808002 (task = 0x5, thread = 0x2) [init] test-dde_linux26_usbhid registered service Input thread 'activation' has id 0x01814002 (task = 0x3, thread = 0x5) [init] nitpicker: service Input got available thread 'activation' has id 0x03808002 (task = 0x7, thread = 0x2) thread 'timer' has id 0x0280c002 (task = 0x5, thread = 0x3) [init -> nitpicker] framebuffer is 1024x768@...23... thread '.softirqd' has id 0x02810002 (task = 0x5, thread = 0x4) [init -> test-dde_linux26_usbhid] Softirq daemon starting thread 'DDE main' has id 0x02814002 (task = 0x5, thread = 0x5) [init -> test-dde_linux26_usbhid] void dde_thread_main(): --- initcalls [init -> test-dde_linux26_usbhid] Initializing DDE Linux 2.6 page cache [init] nitpicker registered service Nitpicker thread '.kthread1' has id 0x02818002 (task = 0x5, thread = 0x6) [init] launchpad: service Nitpicker got available [init -> nitpicker] create session with args: ram_quota=1654784, fb_mode=1, labe l="launchpad" [init] nitlog: service Nitpicker got available thread '.kthread2' has id 0x0281c002 (task = 0x5, thread = 0x7) Genode::Io_port_session_component::Io_port_session_component(Genode::Range_alloc ator[init -> nitpicker] create session with args: ram_quota=1245184, fb_width=40 0, fb_heigh*, const char*): I/O port [cf8,cfc) not available
Core logs failed creation of an I/O port session - PCI configuration registers.
t=1536, fb_mode=1, label="launchpad" [init -> pci_drv] void* fwrite(): fwrite - not yet implemented [init -> pci_drv] void* fputs(const char*, void*): fputs: "Genode::Parent::Servi ce_denied"
Here, the pci_drv complains about the denied I/O port service and aborts.
thread 'activation' has id 0x01818002 (task = 0x3, thread = 0x6) [init -> nitpicker] create session with args: ram_quota=307512, fb_width=482, fb _height=302, fb_mode=1, label="nitlog" [init -> pci_drv] void* fwrite(): fwrite - not yet implemented [init -> pci_drv] void* abort(): abort called thread '<noname>' has id 0x04008002 (task = 0x8, thread = 0x2) thread 'activation' has id 0x0181c002 (task = 0x3, thread = 0x7) thread 'activation' has id 0x04808002 (task = 0x9, thread = 0x2) [init] nitlog registered service LOG
-- This is case 2 without nitpicker - I don't know why the exception is raised at the end of output, but now, some USB hardware is found in contrast to case 1
L4Ka::Pistachio - built on Jun 15 2009 20:43:32 by krebserregend@...22... u sing gcc version 4.3.3 Genode::Platform::Platform(): > setup_basics void Genode::Platform::_setup_basics(): Let's check if we are complete... void Genode::Platform::_setup_basics(): DONE. mem 0: [0x00000000, 0x00000000) type=0x4 (Shared) Non-Virtual mem 1: [0x00000000, 0x0009f400) type=0x1 (Conventional) Non-Virtual mem 2: [0x0009f400, 0x000a0000) type=0x2f (Architecture-dependent) Non-Virtual mem 3: [0x000e0000, 0x00100000) type=0x2f (Architecture-dependent) Non-Virtual mem 4: [0x00100000, 0x1fa90000) type=0x1 (Conventional) Non-Virtual mem 5: [0x1fa90000, 0x1faa0000) type=0x2f (Architecture-dependent) Non-Virtual mem 6: [0x1faa0000, 0x1faae000) type=0x3f (Architecture-dependent) Non-Virtual mem 7: [0x1faae000, 0x1fae8000) type=0x4f (Architecture-dependent) Non-Virtual mem 8: [0x1fae8000, 0x1fb00000) type=0x2f (Architecture-dependent) Non-Virtual mem 9: [0x1fb00000, 0x1fc00000) type=0x2f (Architecture-dependent) Non-Virtual mem 10: [0xfee00000, 0xfee01000) type=0x2f (Architecture-dependent) Non-Virtual mem 11: [0xfff00000, 0x00000000) type=0x2f (Architecture-dependent) Non-Virtual mem 12: [0x0e000000, 0x0f000000) type=0x2 (Reserved by kernel) Non-Virtual mem 13: [0x000a0000, 0x000c0000) type=0x4 (Shared) Non-Virtual mem 14: [0x000c0000, 0x000f0000) type=0x4 (Shared) Non-Virtual mem 15: [0x00020000, 0x00028800) type=0x2e (Boot loader) Non-Virtual mem 16: [0x00300000, 0x0036c400) type=0x2e (Boot loader) Non-Virtual mem 17: [0x00a2c000, 0x00b42c00) type=0x3e (Boot loader) Non-Virtual mem 18: [0x00b43000, 0x00b43400) type=0x3e (Boot loader) Non-Virtual mem 19: [0x00b44000, 0x00c01c00) type=0x3e (Boot loader) Non-Virtual mem 20: [0x00c02000, 0x00ccfc00) type=0x3e (Boot loader) Non-Virtual mem 21: [0x00cd0000, 0x00de3c00) type=0x3e (Boot loader) Non-Virtual mem 22: [0x00de4000, 0x00eb2400) type=0x3e (Boot loader) Non-Virtual mem 23: [0x00eb3000, 0x01114000) type=0x3e (Boot loader) Non-Virtual mem 24: [0x01114000, 0x0126f400) type=0x3e (Boot loader) Non-Virtual mem 25: [0x01270000, 0x01356800) type=0x3e (Boot loader) Non-Virtual mem 26: [0x01357000, 0x016c5000) type=0x3e (Boot loader) Non-Virtual mem 27: [0x016c5000, 0x017cb000) type=0x3e (Boot loader) Non-Virtual mem 28: [0x017cb000, 0x0186f000) type=0x3e (Boot loader) Non-Virtual mem 29: [0x0186f000, 0x01c70800) type=0x3e (Boot loader) Non-Virtual mem 30: [0x01c71000, 0x020a0400) type=0x3e (Boot loader) Non-Virtual mem 31: [0x020a1000, 0x023ca800) type=0x3e (Boot loader) Non-Virtual mem 32: [0x023cb000, 0x02489800) type=0x3e (Boot loader) Non-Virtual mem 33: [0x00001000, 0x00002000) type=0x1e (Boot loader) Non-Virtual mem 34: [0x00002000, 0x00003000) type=0x1e (Boot loader) Non-Virtual mem 35: [0x00000000, 0xc0000000) type=0x1 (Conventional) Virtual mem 36: [0x00100000, 0x00143000) type=0x2 (Reserved by kernel) Non-Virtual void Genode::Platform::_setup_basics(): Requesting the BootInfo page from Sigma0 . void Genode::Platform::_setup_basics(): Multiboot size is 924 bytes. static void Genode::Platform_pd::touch_utcb_space(): Core can have 8 threads. void Genode::Platform::_setup_basics(): KIP @ bff00000 (size 0x00000120) void Genode::Platform::_setup_basics(): UTCB base @ bf000000 (size 00001000) void Genode::Platform::_setup_basics(): _setup_basics done! Genode::Platform::Platform(): > setup_preemption Genode::Platform::Platform(): > setup_mem_alloc Trying to allocate 4K pages from sigma0. Got 471828K in 4K pieces. Genode::Platform::Platform(): > setup_port_alloc void Genode::Platform::_setup_io_port_alloc(): Do we need to do something to all ocate I/O ports?! Genode::Platform::Platform(): > setup_irq_alloc Genode::Platform::Platform(): > setup_rom Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 0 is init. Start: 00a2c000 | Size: 00116ab0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for init created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 1 is config. Start: 00b43000 | Size: 00000253 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for config created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 2 is timer. Start: 00b44000 | Size: 000bd963 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for timer created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 3 is pci_drv. Start: 00c02000 | Size: 000cd8d3 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for pci_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 4 is vesa_drv. Start: 00cd0000 | Size: 00113846 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for vesa_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 5 is ps2_drv. Start: 00de4000 | Size: 000ce093 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for ps2_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 6 is launchpad. Start: 00eb3000 | Size: 00260d49 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for launchpad created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 7 is liquid_fb. Start: 01114000 | Size: 0015b056 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for liquid_fb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 8 is nitlog. Start: 01270000 | Size: 000e67e0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitlog created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 9 is scout. Start: 01357000 | Size: 0036df9a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for scout created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 10 i s nitpicker. Start: 016c5000 | Size: 00105cb7 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitpicker created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 11 i s test-pci. Start: 017cb000 | Size: 000a3f31 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-pci created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 12 i s test-dde_linux26_usb. Start: 0186f000 | Size: 00401476 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 13 i s test-dde_linux26_usbhid. Start: 01c71000 | Size: 0042f3ea Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usbhid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 14 i s test-dde_linux26_usb_hid. Start: 020a1000 | Size: 0032952a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb_hid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 15 i s input_dummy. Start: 023cb000 | Size: 000be7c1 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for input_dummy created. void Genode::Platform_pd::_setup_address_space(): Setting up Core's address spac e. Genode::Platform::Platform(): Trying to start core pager. thread 'core.pager0' has id 0x00808002 (task = 0x1, thread = 0x2) void Genode::Platform::_setup_core_pager(): Core pager has L4_ThreadId 00808002. Genode::Platform::Platform(): Done starting core pager. We are: THREAD (global) 32 (version 1) thread 'activation' has id 0x0080c002 (task = 0x1, thread = 0x3) void _core_pager_loop(): Waiting for page fault. int main(): --- create local services --- thread 'pager' has id 0x00810002 (task = 0x1, thread = 0x4) int main(): --- start init --- int main(): Ok we have 459 MB transfered to init thread 'init' has id 0x00814002 (task = 0x1, thread = 0x5) thread 'signal-tx' has id 0x00818002 (task = 0x1, thread = 0x6) thread 'init' has id 0x01004002 (task = 0x2, thread = 0x1) int main(): --- init created, waiting for exit condition --- [init] our quota limit is 482072924 [init] our used quota is 155648 [init] starting timer with quota=1048576 [init] using unique child name "timer" thread 'timer' has id 0x01008002 (task = 0x2, thread = 0x2) thread 'signal-tx' has id 0x0081c002 (task = 0x1, thread = 0x7) thread 'timer' has id 0x01804002 (task = 0x3, thread = 0x1) [init] starting pci_drv with quota=1048576 thread 'activation' has id 0x01808002 (task = 0x3, thread = 0x2) [init] using unique child name "pci_drv" thread 'pci_drv' has id 0x0100c002 (task = 0x2, thread = 0x3) [init] timer registered service Timer thread 'signal-tx' has id 0x00820002 (task = 0x1, thread = 0x8) thread 'pci_drv' has id 0x02004002 (task = 0x4, thread = 0x1) [init] starting test-dde_linux26_usbhid with quota=1048576 [init] using unique child name "test-dde_linux26_usbhid" [init -> pci_drv] PCI driver started thread 'activation' has id 0x02008002 (task = 0x4, thread = 0x2) thread 'test-dde_linux26_usbhid' has id 0x01010002 (task = 0x2, thread = 0x4) [init] pci_drv registered service PCI thread 'signal-tx' has id 0x00824002 (task = 0x1, thread = 0x9) thread 'test-dde_linux26_usbhid' has id 0x02804002 (task = 0x5, thread = 0x1) [init] starting vesa_drv with quota=1048576 thread 'activation' has id 0x0180c002 (task = 0x3, thread = 0x3) [init] using unique child name "vesa_drv" thread 'vesa_drv' has id 0x01014002 (task = 0x2, thread = 0x5) thread 'signal-tx' has id 0x00828002 (task = 0x1, thread = 0xa) thread 'vesa_drv' has id 0x03004002 (task = 0x6, thread = 0x1) thread 'activation' has id 0x03008002 (task = 0x6, thread = 0x2) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x00000000, size = 0x00001000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x00000000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x0009f000, size = 0x00061000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x0009f000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f0000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f1000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f2000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f3000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f4000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f5000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f6000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f7000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f8000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f9000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fa000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fb000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fc000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fd000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fe000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000ff000. (ignoring) [init] vesa_drv registered service Framebuffer thread 'activation' has id 0x02808002 (task = 0x5, thread = 0x2) [init] test-dde_linux26_usbhid registered service Input thread 'activation' has id 0x01810002 (task = 0x3, thread = 0x4) thread 'timer' has id 0x0280c002 (task = 0x5, thread = 0x3) thread '.softirqd' has id 0x02810002 (task = 0x5, thread = 0x4) [init -> test-dde_linux26_usbhid] Softirq daemon starting thread 'DDE main' has id 0x02814002 (task = 0x5, thread = 0x5) [init -> test-dde_linux26_usbhid] void dde_thread_main(): --- initcalls [init -> test-dde_linux26_usbhid] Initializing DDE Linux 2.6 page cache thread '.kthread1' has id 0x02818002 (task = 0x5, thread = 0x6) thread '.kthread2' has id 0x0281c002 (task = 0x5, thread = 0x7) [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:00.0 8086 :8100 (6) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:01.0 8086 :8108 (3) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:02.0 8086 :8110 (6) ht=81 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:03.0 8086 :8112 (6) ht=01 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:04.0 8086 :8114 (c) ht=80 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:05.0 8086 :8117 (c) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:06.0 8086 :8119 (6) ht=80 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:07.0 8086 :811a (1) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:08.0 8086 :10d3 (2) ht=00 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:810 0 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:810 8 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 0 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 2 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 4 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 7 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 9 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 a [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:10d 3
Here, the USB driver successfully scans its provided PCI bus and discovers a USB host controller.
[init -> test-dde_linux26_usbhid] <6>usbcore: registered new interface driver us bfs [init -> test-dde_linux26_usbhid] <6>usbcore: registered new interface driver hu b thread '.kthread3' has id 0x02820002 (task = 0x5, thread = 0x8) [init -> test-dde_linux26_usbhid] <6>usbcore: registered new device driver usb Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0xdff5bc00, size = 0x00000400 e0102800: invalid opcode at IP 00304dbd --- "KD# invalid opcode" ---
The current subversion repository contains an updated vesa_drv with a very simple PCI access wrapper to circumvent conflicts with the pci_drv. Please try to checkout the driver from
http://genode.svn.sourceforge.net/svnroot/genode/trunk/os/src/drivers/frameb...
and report your results here.
Greets.
Hi Sven,
On Mon, Jul 06, 2009 at 03:08:09PM +0200, mx@...19... wrote:
As you might have figured by receiving this mail, I have another question up my sleeve :)
This question concerns the USB HID driver once more, which I don't manage to get started. I'm working with an Intel Atom target meanwhile, and your system starts up fine there with nitpicker but without a running HID (I have keyboard and mouse as well as the startup USB stick connected to a USB hub).
A co-worker who tested this case in qemu, had to provide some device id explicitly in the qemu config file. In that context, the driver worked fine with a running mouse.
The HID driver does not seem to find any hardware on the PCI (see trace below).
When I run a system without nitpicker, there is - contrary to case 1 - some USB hardware found.
Do you have any idea what I might have forgotten to set up?
Yes, thanks to your attached logs I'm sure the problem is the vesa_drv, which accesses the PCI configuration registers indirectly through the code in the VESA VBE code. Afterwards, the pci_drv is not able to grab the PCI registers from core and fails to start. For this reason also the USB core drivers fails as it depends on the pci_drv for managed PCI access. (see below for notes in the logs)
-- This is case 1 with nitpicker
L4Ka::Pistachio - built on Jun 15 2009 20:43:32 by krebserregend@...22... u sing gcc version 4.3.3 Genode::Platform::Platform(): > setup_basics void Genode::Platform::_setup_basics(): Let's check if we are complete... void Genode::Platform::_setup_basics(): DONE. mem 0: [0x00000000, 0x00000000) type=0x4 (Shared) Non-Virtual mem 1: [0x00000000, 0x0009f400) type=0x1 (Conventional) Non-Virtual mem 2: [0x0009f400, 0x000a0000) type=0x2f (Architecture-dependent) Non-Virtual mem 3: [0x000e0000, 0x00100000) type=0x2f (Architecture-dependent) Non-Virtual mem 4: [0x00100000, 0x1fa90000) type=0x1 (Conventional) Non-Virtual mem 5: [0x1fa90000, 0x1faa0000) type=0x2f (Architecture-dependent) Non-Virtual mem 6: [0x1faa0000, 0x1faae000) type=0x3f (Architecture-dependent) Non-Virtual mem 7: [0x1faae000, 0x1fae8000) type=0x4f (Architecture-dependent) Non-Virtual mem 8: [0x1fae8000, 0x1fb00000) type=0x2f (Architecture-dependent) Non-Virtual mem 9: [0x1fb00000, 0x1fc00000) type=0x2f (Architecture-dependent) Non-Virtual mem 10: [0xfee00000, 0xfee01000) type=0x2f (Architecture-dependent) Non-Virtual mem 11: [0xfff00000, 0x00000000) type=0x2f (Architecture-dependent) Non-Virtual mem 12: [0x0e000000, 0x0f000000) type=0x2 (Reserved by kernel) Non-Virtual mem 13: [0x000a0000, 0x000c0000) type=0x4 (Shared) Non-Virtual mem 14: [0x000c0000, 0x000f0000) type=0x4 (Shared) Non-Virtual mem 15: [0x00020000, 0x00028800) type=0x2e (Boot loader) Non-Virtual mem 16: [0x00300000, 0x0036c400) type=0x2e (Boot loader) Non-Virtual mem 17: [0x00a2c000, 0x00b42c00) type=0x3e (Boot loader) Non-Virtual mem 18: [0x00b43000, 0x00b43400) type=0x3e (Boot loader) Non-Virtual mem 19: [0x00b44000, 0x00c01c00) type=0x3e (Boot loader) Non-Virtual mem 20: [0x00c02000, 0x00ccfc00) type=0x3e (Boot loader) Non-Virtual mem 21: [0x00cd0000, 0x00de3c00) type=0x3e (Boot loader) Non-Virtual mem 22: [0x00de4000, 0x00eb2400) type=0x3e (Boot loader) Non-Virtual mem 23: [0x00eb3000, 0x01114000) type=0x3e (Boot loader) Non-Virtual mem 24: [0x01114000, 0x0126f400) type=0x3e (Boot loader) Non-Virtual mem 25: [0x01270000, 0x01356800) type=0x3e (Boot loader) Non-Virtual mem 26: [0x01357000, 0x016c5000) type=0x3e (Boot loader) Non-Virtual mem 27: [0x016c5000, 0x017cb000) type=0x3e (Boot loader) Non-Virtual mem 28: [0x017cb000, 0x0186f000) type=0x3e (Boot loader) Non-Virtual mem 29: [0x0186f000, 0x01c70800) type=0x3e (Boot loader) Non-Virtual mem 30: [0x01c71000, 0x020a0400) type=0x3e (Boot loader) Non-Virtual mem 31: [0x020a1000, 0x023ca800) type=0x3e (Boot loader) Non-Virtual mem 32: [0x023cb000, 0x02489800) type=0x3e (Boot loader) Non-Virtual mem 33: [0x00001000, 0x00002000) type=0x1e (Boot loader) Non-Virtual mem 34: [0x00002000, 0x00003000) type=0x1e (Boot loader) Non-Virtual mem 35: [0x00000000, 0xc0000000) type=0x1 (Conventional) Virtual mem 36: [0x00100000, 0x00143000) type=0x2 (Reserved by kernel) Non-Virtual void Genode::Platform::_setup_basics(): Requesting the BootInfo page from Sigma0 . void Genode::Platform::_setup_basics(): Multiboot size is 924 bytes. static void Genode::Platform_pd::touch_utcb_space(): Core can have 8 threads. void Genode::Platform::_setup_basics(): KIP @ bff00000 (size 0x00000120) void Genode::Platform::_setup_basics(): UTCB base @ bf000000 (size 00001000) void Genode::Platform::_setup_basics(): _setup_basics done! Genode::Platform::Platform(): > setup_preemption Genode::Platform::Platform(): > setup_mem_alloc Trying to allocate 4K pages from sigma0. Got 471828K in 4K pieces. Genode::Platform::Platform(): > setup_port_alloc void Genode::Platform::_setup_io_port_alloc(): Do we need to do something to all ocate I/O ports?! Genode::Platform::Platform(): > setup_irq_alloc Genode::Platform::Platform(): > setup_rom Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 0 is init. Start: 00a2c000 | Size: 00116ab0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for init created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 1 is config. Start: 00b43000 | Size: 0000024a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for config created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 2 is timer. Start: 00b44000 | Size: 000bd963 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for timer created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 3 is pci_drv. Start: 00c02000 | Size: 000cd8d3 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for pci_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 4 is vesa_drv. Start: 00cd0000 | Size: 00113846 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for vesa_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 5 is ps2_drv. Start: 00de4000 | Size: 000ce093 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for ps2_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 6 is launchpad. Start: 00eb3000 | Size: 00260d49 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for launchpad created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 7 is liquid_fb. Start: 01114000 | Size: 0015b056 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for liquid_fb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 8 is nitlog. Start: 01270000 | Size: 000e67e0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitlog created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 9 is scout. Start: 01357000 | Size: 0036df9a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for scout created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 10 i s nitpicker. Start: 016c5000 | Size: 00105cb7 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitpicker created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 11 i s test-pci. Start: 017cb000 | Size: 000a3f31 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-pci created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 12 i s test-dde_linux26_usb. Start: 0186f000 | Size: 00401476 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 13 i s test-dde_linux26_usbhid. Start: 01c71000 | Size: 0042f3ea Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usbhid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 14 i s test-dde_linux26_usb_hid. Start: 020a1000 | Size: 0032952a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb_hid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 15 i s input_dummy. Start: 023cb000 | Size: 000be7c1 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for input_dummy created. void Genode::Platform_pd::_setup_address_space(): Setting up Core's address spac e. Genode::Platform::Platform(): Trying to start core pager. thread 'core.pager0' has id 0x00808002 (task = 0x1, thread = 0x2) void Genode::Platform::_setup_core_pager(): Core pager has L4_ThreadId 00808002. Genode::Platform::Platform(): Done starting core pager. We are: THREAD (global) 32 (version 1) thread 'activation' has id 0x0080c002 (task = 0x1, thread = 0x3) void _core_pager_loop(): Waiting for page fault. int main(): --- create local services --- thread 'pager' has id 0x00810002 (task = 0x1, thread = 0x4) int main(): --- start init --- int main(): Ok we have 459 MB transfered to init thread 'init' has id 0x00814002 (task = 0x1, thread = 0x5) thread 'signal-tx' has id 0x00818002 (task = 0x1, thread = 0x6) thread 'init' has id 0x01004002 (task = 0x2, thread = 0x1) int main(): --- init created, waiting for exit condition --- [init] our quota limit is 482072924 [init] our used quota is 155648 [init] starting timer with quota=1048576 [init] using unique child name "timer" thread 'timer' has id 0x01008002 (task = 0x2, thread = 0x2) thread 'signal-tx' has id 0x0081c002 (task = 0x1, thread = 0x7) thread 'timer' has id 0x01804002 (task = 0x3, thread = 0x1) [init] starting pci_drv with quota=1048576 [init] using unique child name "pci_drv" thread 'activation' has id 0x01808002 (task = 0x3, thread = 0x2) thread 'pci_drv' has id 0x0100c002 (task = 0x2, thread = 0x3) [init] timer registered service Timer thread 'signal-tx' has id 0x00820002 (task = 0x1, thread = 0x8) thread 'pci_drv' has id 0x02004002 (task = 0x4, thread = 0x1) [init] starting test-dde_linux26_usbhid with quota=1048576 [init -> pci_drv] PCI driver started thread 'activation' has id 0x02008002 (task = 0x4, thread = 0x2) [init] using unique child name "test-dde_linux26_usbhid" thread 'test-dde_linux26_usbhid' has id 0x01010002 (task = 0x2, thread = 0x4) [init] pci_drv registered service PCI thread 'signal-tx' has id 0x00824002 (task = 0x1, thread = 0x9) thread 'test-dde_linux26_usbhid' has id 0x02804002 (task = 0x5, thread = 0x1) [init] starting vesa_drv with quota=1048576 thread 'activation' has id 0x0180c002 (task = 0x3, thread = 0x3) [init] using unique child name "vesa_drv" thread 'vesa_drv' has id 0x01014002 (task = 0x2, thread = 0x5) thread 'signal-tx' has id 0x00828002 (task = 0x1, thread = 0xa) thread 'vesa_drv' has id 0x03004002 (task = 0x6, thread = 0x1) [init] starting nitpicker with quota=1048576 thread 'activation' has id 0x03008002 (task = 0x6, thread = 0x2) [init] using unique child name "nitpicker" thread 'nitpicker' has id 0x01018002 (task = 0x2, thread = 0x6) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x00000000, size = 0x00001000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x00000000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x0009f000, size = 0x00061000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x0009f000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f0000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f1000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f2000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f3000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f4000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f5000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f6000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f7000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f8000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f9000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fa000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fb000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fc000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fd000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fe000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000ff000. (ignoring) [init] vesa_drv registered service Framebuffer thread 'signal-tx' has id 0x0082c002 (task = 0x1, thread = 0xb) thread 'nitpicker' has id 0x03804002 (task = 0x7, thread = 0x1) [init] starting launchpad with quota=33554432 thread 'activation' has id 0x01810002 (task = 0x3, thread = 0x4) [init] using unique child name "launchpad" thread 'launchpad' has id 0x0101c002 (task = 0x2, thread = 0x7) [init -> vesa_drv] Found: VESA BIOS version 3.0 [init -> vesa_drv] OEM: Intel(r)Poulsbo Graphics Chip Accelerated VGA BIOS thread 'signal-tx' has id 0x00830002 (task = 0x1, thread = 0xc) thread 'launchpad' has id 0x04004002 (task = 0x8, thread = 0x1) [init] starting nitlog with quota=16777216 [init] using unique child name "nitlog" thread 'nitlog' has id 0x01020002 (task = 0x2, thread = 0x8) thread 'signal-tx' has id 0x00834002 (task = 0x1, thread[init] launchpad: servic e Nitpicker not yet available - sleeping = 0xd) thread 'nitlog' has id 0x04804002 (task = 0x9, thread = 0x1) [init -> nitlog] --- nitlog --- [init] nitlog: service Nitpicker not yet available - sleeping [init -> vesa_drv] int Framebuffer_drv::set_mode(long unsigned int, long unsigne d int, long unsigned int): FB phys at 0x1fc00000 size: 0003d0000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x1fc00000, size = 0x003d0000 [init] nitpicker: service Input not yet available - sleeping thread 'activation' has id 0x02808002 (task = 0x5, thread = 0x2) [init] test-dde_linux26_usbhid registered service Input thread 'activation' has id 0x01814002 (task = 0x3, thread = 0x5) [init] nitpicker: service Input got available thread 'activation' has id 0x03808002 (task = 0x7, thread = 0x2) thread 'timer' has id 0x0280c002 (task = 0x5, thread = 0x3) [init -> nitpicker] framebuffer is 1024x768@...23... thread '.softirqd' has id 0x02810002 (task = 0x5, thread = 0x4) [init -> test-dde_linux26_usbhid] Softirq daemon starting thread 'DDE main' has id 0x02814002 (task = 0x5, thread = 0x5) [init -> test-dde_linux26_usbhid] void dde_thread_main(): --- initcalls [init -> test-dde_linux26_usbhid] Initializing DDE Linux 2.6 page cache [init] nitpicker registered service Nitpicker thread '.kthread1' has id 0x02818002 (task = 0x5, thread = 0x6) [init] launchpad: service Nitpicker got available [init -> nitpicker] create session with args: ram_quota=1654784, fb_mode=1, labe l="launchpad" [init] nitlog: service Nitpicker got available thread '.kthread2' has id 0x0281c002 (task = 0x5, thread = 0x7) Genode::Io_port_session_component::Io_port_session_component(Genode::Range_alloc ator[init -> nitpicker] create session with args: ram_quota=1245184, fb_width=40 0, fb_heigh*, const char*): I/O port [cf8,cfc) not available
Core logs failed creation of an I/O port session - PCI configuration registers.
t=1536, fb_mode=1, label="launchpad" [init -> pci_drv] void* fwrite(): fwrite - not yet implemented [init -> pci_drv] void* fputs(const char*, void*): fputs: "Genode::Parent::Servi ce_denied"
Here, the pci_drv complains about the denied I/O port service and aborts.
thread 'activation' has id 0x01818002 (task = 0x3, thread = 0x6) [init -> nitpicker] create session with args: ram_quota=307512, fb_width=482, fb _height=302, fb_mode=1, label="nitlog" [init -> pci_drv] void* fwrite(): fwrite - not yet implemented [init -> pci_drv] void* abort(): abort called thread '<noname>' has id 0x04008002 (task = 0x8, thread = 0x2) thread 'activation' has id 0x0181c002 (task = 0x3, thread = 0x7) thread 'activation' has id 0x04808002 (task = 0x9, thread = 0x2) [init] nitlog registered service LOG
-- This is case 2 without nitpicker - I don't know why the exception is raised at the end of output, but now, some USB hardware is found in contrast to case 1
L4Ka::Pistachio - built on Jun 15 2009 20:43:32 by krebserregend@...22... u sing gcc version 4.3.3 Genode::Platform::Platform(): > setup_basics void Genode::Platform::_setup_basics(): Let's check if we are complete... void Genode::Platform::_setup_basics(): DONE. mem 0: [0x00000000, 0x00000000) type=0x4 (Shared) Non-Virtual mem 1: [0x00000000, 0x0009f400) type=0x1 (Conventional) Non-Virtual mem 2: [0x0009f400, 0x000a0000) type=0x2f (Architecture-dependent) Non-Virtual mem 3: [0x000e0000, 0x00100000) type=0x2f (Architecture-dependent) Non-Virtual mem 4: [0x00100000, 0x1fa90000) type=0x1 (Conventional) Non-Virtual mem 5: [0x1fa90000, 0x1faa0000) type=0x2f (Architecture-dependent) Non-Virtual mem 6: [0x1faa0000, 0x1faae000) type=0x3f (Architecture-dependent) Non-Virtual mem 7: [0x1faae000, 0x1fae8000) type=0x4f (Architecture-dependent) Non-Virtual mem 8: [0x1fae8000, 0x1fb00000) type=0x2f (Architecture-dependent) Non-Virtual mem 9: [0x1fb00000, 0x1fc00000) type=0x2f (Architecture-dependent) Non-Virtual mem 10: [0xfee00000, 0xfee01000) type=0x2f (Architecture-dependent) Non-Virtual mem 11: [0xfff00000, 0x00000000) type=0x2f (Architecture-dependent) Non-Virtual mem 12: [0x0e000000, 0x0f000000) type=0x2 (Reserved by kernel) Non-Virtual mem 13: [0x000a0000, 0x000c0000) type=0x4 (Shared) Non-Virtual mem 14: [0x000c0000, 0x000f0000) type=0x4 (Shared) Non-Virtual mem 15: [0x00020000, 0x00028800) type=0x2e (Boot loader) Non-Virtual mem 16: [0x00300000, 0x0036c400) type=0x2e (Boot loader) Non-Virtual mem 17: [0x00a2c000, 0x00b42c00) type=0x3e (Boot loader) Non-Virtual mem 18: [0x00b43000, 0x00b43400) type=0x3e (Boot loader) Non-Virtual mem 19: [0x00b44000, 0x00c01c00) type=0x3e (Boot loader) Non-Virtual mem 20: [0x00c02000, 0x00ccfc00) type=0x3e (Boot loader) Non-Virtual mem 21: [0x00cd0000, 0x00de3c00) type=0x3e (Boot loader) Non-Virtual mem 22: [0x00de4000, 0x00eb2400) type=0x3e (Boot loader) Non-Virtual mem 23: [0x00eb3000, 0x01114000) type=0x3e (Boot loader) Non-Virtual mem 24: [0x01114000, 0x0126f400) type=0x3e (Boot loader) Non-Virtual mem 25: [0x01270000, 0x01356800) type=0x3e (Boot loader) Non-Virtual mem 26: [0x01357000, 0x016c5000) type=0x3e (Boot loader) Non-Virtual mem 27: [0x016c5000, 0x017cb000) type=0x3e (Boot loader) Non-Virtual mem 28: [0x017cb000, 0x0186f000) type=0x3e (Boot loader) Non-Virtual mem 29: [0x0186f000, 0x01c70800) type=0x3e (Boot loader) Non-Virtual mem 30: [0x01c71000, 0x020a0400) type=0x3e (Boot loader) Non-Virtual mem 31: [0x020a1000, 0x023ca800) type=0x3e (Boot loader) Non-Virtual mem 32: [0x023cb000, 0x02489800) type=0x3e (Boot loader) Non-Virtual mem 33: [0x00001000, 0x00002000) type=0x1e (Boot loader) Non-Virtual mem 34: [0x00002000, 0x00003000) type=0x1e (Boot loader) Non-Virtual mem 35: [0x00000000, 0xc0000000) type=0x1 (Conventional) Virtual mem 36: [0x00100000, 0x00143000) type=0x2 (Reserved by kernel) Non-Virtual void Genode::Platform::_setup_basics(): Requesting the BootInfo page from Sigma0 . void Genode::Platform::_setup_basics(): Multiboot size is 924 bytes. static void Genode::Platform_pd::touch_utcb_space(): Core can have 8 threads. void Genode::Platform::_setup_basics(): KIP @ bff00000 (size 0x00000120) void Genode::Platform::_setup_basics(): UTCB base @ bf000000 (size 00001000) void Genode::Platform::_setup_basics(): _setup_basics done! Genode::Platform::Platform(): > setup_preemption Genode::Platform::Platform(): > setup_mem_alloc Trying to allocate 4K pages from sigma0. Got 471828K in 4K pieces. Genode::Platform::Platform(): > setup_port_alloc void Genode::Platform::_setup_io_port_alloc(): Do we need to do something to all ocate I/O ports?! Genode::Platform::Platform(): > setup_irq_alloc Genode::Platform::Platform(): > setup_rom Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 0 is init. Start: 00a2c000 | Size: 00116ab0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for init created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 1 is config. Start: 00b43000 | Size: 00000253 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for config created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 2 is timer. Start: 00b44000 | Size: 000bd963 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for timer created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 3 is pci_drv. Start: 00c02000 | Size: 000cd8d3 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for pci_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 4 is vesa_drv. Start: 00cd0000 | Size: 00113846 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for vesa_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 5 is ps2_drv. Start: 00de4000 | Size: 000ce093 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for ps2_drv created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 6 is launchpad. Start: 00eb3000 | Size: 00260d49 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for launchpad created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 7 is liquid_fb. Start: 01114000 | Size: 0015b056 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for liquid_fb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 8 is nitlog. Start: 01270000 | Size: 000e67e0 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitlog created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 9 is scout. Start: 01357000 | Size: 0036df9a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for scout created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 10 i s nitpicker. Start: 016c5000 | Size: 00105cb7 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for nitpicker created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 11 i s test-pci. Start: 017cb000 | Size: 000a3f31 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-pci created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 12 i s test-dde_linux26_usb. Start: 0186f000 | Size: 00401476 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 13 i s test-dde_linux26_usbhid. Start: 01c71000 | Size: 0042f3ea Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usbhid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 14 i s test-dde_linux26_usb_hid. Start: 020a1000 | Size: 0032952a Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for test-dde_linux26_usb_hid created. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Module 15 i s input_dummy. Start: 023cb000 | Size: 000be7c1 Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Get the mod ule memory from Sigma0. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Done. Genode::Rom_module Genode::Multiboot_info::get_module(unsigned int): Rom_module for input_dummy created. void Genode::Platform_pd::_setup_address_space(): Setting up Core's address spac e. Genode::Platform::Platform(): Trying to start core pager. thread 'core.pager0' has id 0x00808002 (task = 0x1, thread = 0x2) void Genode::Platform::_setup_core_pager(): Core pager has L4_ThreadId 00808002. Genode::Platform::Platform(): Done starting core pager. We are: THREAD (global) 32 (version 1) thread 'activation' has id 0x0080c002 (task = 0x1, thread = 0x3) void _core_pager_loop(): Waiting for page fault. int main(): --- create local services --- thread 'pager' has id 0x00810002 (task = 0x1, thread = 0x4) int main(): --- start init --- int main(): Ok we have 459 MB transfered to init thread 'init' has id 0x00814002 (task = 0x1, thread = 0x5) thread 'signal-tx' has id 0x00818002 (task = 0x1, thread = 0x6) thread 'init' has id 0x01004002 (task = 0x2, thread = 0x1) int main(): --- init created, waiting for exit condition --- [init] our quota limit is 482072924 [init] our used quota is 155648 [init] starting timer with quota=1048576 [init] using unique child name "timer" thread 'timer' has id 0x01008002 (task = 0x2, thread = 0x2) thread 'signal-tx' has id 0x0081c002 (task = 0x1, thread = 0x7) thread 'timer' has id 0x01804002 (task = 0x3, thread = 0x1) [init] starting pci_drv with quota=1048576 thread 'activation' has id 0x01808002 (task = 0x3, thread = 0x2) [init] using unique child name "pci_drv" thread 'pci_drv' has id 0x0100c002 (task = 0x2, thread = 0x3) [init] timer registered service Timer thread 'signal-tx' has id 0x00820002 (task = 0x1, thread = 0x8) thread 'pci_drv' has id 0x02004002 (task = 0x4, thread = 0x1) [init] starting test-dde_linux26_usbhid with quota=1048576 [init] using unique child name "test-dde_linux26_usbhid" [init -> pci_drv] PCI driver started thread 'activation' has id 0x02008002 (task = 0x4, thread = 0x2) thread 'test-dde_linux26_usbhid' has id 0x01010002 (task = 0x2, thread = 0x4) [init] pci_drv registered service PCI thread 'signal-tx' has id 0x00824002 (task = 0x1, thread = 0x9) thread 'test-dde_linux26_usbhid' has id 0x02804002 (task = 0x5, thread = 0x1) [init] starting vesa_drv with quota=1048576 thread 'activation' has id 0x0180c002 (task = 0x3, thread = 0x3) [init] using unique child name "vesa_drv" thread 'vesa_drv' has id 0x01014002 (task = 0x2, thread = 0x5) thread 'signal-tx' has id 0x00828002 (task = 0x1, thread = 0xa) thread 'vesa_drv' has id 0x03004002 (task = 0x6, thread = 0x1) thread 'activation' has id 0x03008002 (task = 0x6, thread = 0x2) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x00000000, size = 0x00001000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x00000000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0x0009f000, size = 0x00061000 Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x0009f000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f0000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f1000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f2000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f3000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f4000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f5000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f6000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f7000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f8000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000f9000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fa000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fb000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fc000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fd000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000fe000. (ignoring) Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): Got nil fpage for 0x000ff000. (ignoring) [init] vesa_drv registered service Framebuffer thread 'activation' has id 0x02808002 (task = 0x5, thread = 0x2) [init] test-dde_linux26_usbhid registered service Input thread 'activation' has id 0x01810002 (task = 0x3, thread = 0x4) thread 'timer' has id 0x0280c002 (task = 0x5, thread = 0x3) thread '.softirqd' has id 0x02810002 (task = 0x5, thread = 0x4) [init -> test-dde_linux26_usbhid] Softirq daemon starting thread 'DDE main' has id 0x02814002 (task = 0x5, thread = 0x5) [init -> test-dde_linux26_usbhid] void dde_thread_main(): --- initcalls [init -> test-dde_linux26_usbhid] Initializing DDE Linux 2.6 page cache thread '.kthread1' has id 0x02818002 (task = 0x5, thread = 0x6) thread '.kthread2' has id 0x0281c002 (task = 0x5, thread = 0x7) [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:00.0 8086 :8100 (6) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:01.0 8086 :8108 (3) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:02.0 8086 :8110 (6) ht=81 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:03.0 8086 :8112 (6) ht=01 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:04.0 8086 :8114 (c) ht=80 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:05.0 8086 :8117 (c) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:06.0 8086 :8119 (6) ht=80 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:07.0 8086 :811a (1) ht=00 [init -> test-dde_linux26_usbhid] void Dde_kit::Pci_device::show(): 00:08.0 8086 :10d3 (2) ht=00 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:810 0 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:810 8 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 0 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 2 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 4 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 7 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 9 [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:811 a [init -> test-dde_linux26_usbhid] _add_dde_kit_device: Detected device: 8086:10d 3
Here, the USB driver successfully scans its provided PCI bus and discovers a USB host controller.
[init -> test-dde_linux26_usbhid] <6>usbcore: registered new interface driver us bfs [init -> test-dde_linux26_usbhid] <6>usbcore: registered new interface driver hu b thread '.kthread3' has id 0x02820002 (task = 0x5, thread = 0x8) [init -> test-dde_linux26_usbhid] <6>usbcore: registered new device driver usb Genode::addr_t Genode::Io_mem_session_component::_map_local(Genode::addr_t, Geno de::size_t): base = 0xdff5bc00, size = 0x00000400 e0102800: invalid opcode at IP 00304dbd --- "KD# invalid opcode" ---
The current subversion repository contains an updated vesa_drv with a very simple PCI access wrapper to circumvent conflicts with the pci_drv. Please try to checkout the driver from
http://genode.svn.sourceforge.net/svnroot/genode/trunk/os/src/drivers/frameb...
and report your results here.
Greets.
Hello Sven,
from the 'Platform::_setup_mem_alloc' function. ;-) You will notice that the startup delay gets much reduced. But you will certainly also notice corruptions in Pistachio's mapping database.
No, I need a reliable kernel :) But I will even now investigate that, especially because we go for Genode on OKL4-Pistachio (on qemu, l4ka-pistachio was easier to set up for a start...). The OKL4 kernel was derived from l4ka, so it might show similar corruptions.
I took your mail as reason to try out Pistachio's "new mapping database" feature, which is disabled by default. Apparently, this feature works much better so you may give it a shot. Please note that the changed Pistachio kernel config updates the kernel headers so you need to rebuild not just the kernel but also the Genode userland.
BTW, OKL4 is not prone to the mentioned mapping-database corruption problem because it does not support recursive mappings. On Pistachio, we observed the problem when mapping a 4K page out of a locally mapped 4M page to another process. (In fact, the real problem appeared later, when unmapping the said mapping) On OKL4, this never happens because the map operation takes a physical memory descriptor as source argument (the kernal does not maintain a hierarchical mapping database).
Regards Norman