On 12.06.2013 19:16, Jilong Kuang - SISA wrote:
> In my opinion, a simple fix is to remove the two lines in _find_next() 
> function in pci_session_component.h
> 
> If (!bus_valid(bus))
>   Continue;

Sure, however we would like to know why the pci driver doesn't find the
device you are looking for.

> 
> Another way is to scan all buses/devices/functions at the first call of 
> bus_valid(). A simple three level loop will do.

The initial scan is done early when pci_drv comes up ~ line 396 in file
pci_session_component.h [0].

So, does something happen to the hardware in your setup that a new scan
will result in other results ? If yes, can you please explain.

If yes, you may delay the first scan to a later point, by
removing the explicit call in line 397 to bus_valid. Without this call
the bus_valid function should be triggered as soon as the first pci
client connects to the pci driver and looks for a device (calling
implicitly _find_next).

Cheers,

Alex.


[0]
https://github.com/genodelabs/genode/blob/master/os/src/drivers/pci/pci_session_component.h

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to