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, [email protected] 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 > krebserreg...@os-sfu-laptop 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 1024x...@1 > 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 > krebserreg...@os-sfu-laptop 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/framebuffer/vesa and report your results here. Greets. -- Christian Helmuth Genode Labs http://www.genode-labs.com/ · http://genode.org/ ------------------------------------------------------------------------------ Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/blackberry _______________________________________________ Genode-main mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/genode-main
