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.