Genode on OKL4 Startup kicks pci driver when reading [cfc, d00) port range
Stefan Kalkowski
stefan.kalkowski at ...1...
Tue Jul 7 14:08:13 CEST 2009
Hi Sven,
On Tuesday, 7. July 2009 10:38:49 Sven Fülster wrote:
> Hi all,
>
> sorry that I must repeat bothering you :)
>
> I've now set up Genode on the OKL4 kernel for use on my Intel Atom
> hardware, and I see that sometime during the startup process, the
> pci-driver is kicked due to an error I don't understand:
>
> --
> [init -> test-dde_linux26_usbhid] Initializing DDE Linux 2.6 pa
> ge cache
>
> Genode::Io_port_session_component::Io_port_session_component(Genode::Ran
> ge_allocator*, const char*): I/O port [cfc,d00) not available
That means the I/O port 'cfc' requested by the pci-driver is already in use by
another component. Therefore, an exception is raised but not caught and you
get all these subsequent error messages.
Maybe, your vesa-card's code used that port already?
Please instrument the function:
'static FB_Port* get_port(unsigned short port)'
in file 'os/src/drivers/framebuffer/vesa/ifx86emu.cc', to check out who else
wants to use that port, e.g. by jumping into the kernel debugger, when
someone requested port 'cfc' and looking who's blocking on the active
thread - the thread, that fulfills the port request.
Best regards
Stefan
> [init ->
> pci_drv] v
> oid* fwrite(): fwrite - not yet implemented
> [init -> pci_drv] void*
> fputs(const c
> har*, void*): fputs: "Genode::Parent::Service_denied"
> [init -> pci_drv]
> void* fwr
> ite(): fwrite - not yet implemented
> [init -> pci_drv] void* abort():
> abort called
> --
>
> Do you have any idea what's missing in my setup?
>
> Thanx in advance
>
> Sven
>
> --
> Full startup log (sorry for the nasty tab width - what funny serial
> driver is this in the OKL kernel? :) ):
>
> OKL4 - (provider: Open Kernel Labs) built on Jul 7 2009 09:27:57 using
> gcc vers
> ion 3.3.4.
>
> kimg: 0x100200 - 0x147000
>
> Found l4 kernel heap! at [00400000, 00800000)
>
> pc99 heap [00400000, 00800000)
>
> mapping heap at 0x400000
>
> zero base f0400000 to end f0800000
>
> done zero
>
> parsing boot info at 0x4004000...
> int main(): --- create local services ---
>
> int ma
> in(): --- start init ---
> int main(): Ok we have 48 MB transfered to init
>
> int main(
> ): --- init created, waiting for exit condition ---
> [init] our quota
> limit is 503
> 64416
> [init] our used quota is 147456
> [init] starting timer with
> quota=1048576
>
> [in
> it] using unique child name "timer"
> [init] starting pci_drv with
> quota=1048576
>
> [in
> it] using unique child name "pci_drv"
> [init] starting
> test-dde_linux26_usbhid wit
> h quota=1048576
> [init] using unique child name "test-dde_linux26_usbhid"
>
> [init] ti
> mer registered service Timer
> [init -> pci_drv] PCI driver started
> [init]
> pci_drv r
> egistered service PCI
> [init] starting vesa_drv with quota=1048576
> [init]
> using uni
> que child name "vesa_drv"
> [init] starting nitpicker with quota=1048576
>
> [init] usin
> g unique child name "nitpicker"
> [init] vesa_drv registered service
> Framebuffer
>
> [in
> it] test-dde_linux26_usbhid registered service Input
> [init -> vesa_drv]
> bool hand
> le_pci_port_write(short unsigned int, T) [with T = long unsigned int]:
> accessing
> unknown PCI device 10
> [init -> vesa_drv] bool handle_pci_port_read(short
> unsigne
> d int, T*) [with T = X86emu::x86emuu16]: reading with size 2 not supported
>
> [init
> -> vesa_drv] Found: VESA BIOS version 3.0
> [init -> vesa_drv] OEM:
> Intel(r)Poulsbo
> Graphics Chip Accelerated VGA BIOS
> [init -> vesa_drv] bool
> handle_pci_port_write
> (short unsigned int, T) [with T = long unsigned int]: accessing unknown
> PCI devi
> ce 10
> [init -> vesa_drv] bool handle_pci_port_read(short unsigned int,
> T*) [with
> T = X86emu::x86emuu16]: reading with size 2 not supported
> [init ->
> vesa_drv] bool
> handle_pci_port_write(short unsigned int, T) [with T = long unsigned
> int]: acce
> ssing unknown PCI device 10
> [init -> test-dde_linux26_usbhid] Softirq
> daemon star
> ting
> [init -> vesa_drv] bool handle_pci_port_write(short unsigned int, T)
> [with T
> = long unsigned int]: accessing unknown PCI device 10
> [init -> vesa_drv]
> bool ha
> ndle_pci_port_read(short unsigned int, T*) [with T = X86emu::x86emuu16]:
> reading
> with size 2 not supported
> [init -> test-dde_linux26_usbhid] void
> dde_thread_main
> (): --- initcalls
> [init -> test-dde_linux26_usbhid] Initializing DDE
> Linux 2.6 pa
> ge cache
>
> Genode::Io_port_session_component::Io_port_session_component(Genode::Ran
> ge_allocator*, const char*): I/O port [cfc,d00) not available
> [init ->
> pci_drv] v
> oid* fwrite(): fwrite - not yet implemented
> [init -> pci_drv] void*
> fputs(const c
> har*, void*): fputs: "Genode::Parent::Service_denied"
> [init -> pci_drv]
> void* fwr
> ite(): fwrite - not yet implemented
> [init -> pci_drv] void* abort():
> abort called
>
> [init -> vesa_drv] bool handle_pci_port_write(short unsigned int, T)
> [with T = l
> ong unsigned int]: accessing unknown PCI device 10
> [init -> vesa_drv]
> bool handle
> _pci_port_read(short unsigned int, T*) [with T = X86emu::x86emuu16]:
> reading wit
> h size 2 not supported
> [init -> vesa_drv] bool
> handle_pci_port_write(short unsign
> ed int, T) [with T = long unsigned int]: accessing unknown PCI device 10
>
> [init ->
> vesa_drv] int Framebuffer_drv::set_mode(long unsigned int, long
> unsigned int, l
> ong unsigned int): FB phys at 0x81000000 size: 0x003d0000
> [init ->
> nitpicker] fra
> mebuffer is 1024x768 at ...23...
> [init] nitpicker registered service Nitpicker
>
>
>
> --
> Sven Fülster
>
> ---------------------------------------------------------------------------
>--- 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
> Genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs Developer
http://genode-labs.com
More information about the users
mailing list