Thread (5 messages) flat view 5 messages, 3 authors, 2006-03-07

Re: Calling PCI Autoconfig again

From: Kumar Gala <hidden>
Date: 2006-03-07 16:26:20

On Mar 7, 2006, at 8:17 AM, Wyse, Chris wrote:
Hi,

This code will do the rescan of the PCI that we need for the FPGA.
However, it currently only supports a single execution after the FPGA
gets loaded.  Additional calls will continue to add FPGA devices to  
the
PCI device list data structure.  I'm going to make some changes to  
it to
handle multiple calls and to support multiple device ids.  I'm  
expecting
it to take a day or two, but I'll make an initial cut at it today that
will let us load the Spartan FPGA (only once).  This driver will be
loaded when the kernel boots, so I believe that we'll just need to  
make
a call into it (we won't have to dynamically load it like the phob
driver).
I'm dealing with this exact same situation and having a discussion on  
lkml regarding the proper way to do this.  In your case, do you care  
what addresses the FPGA is assigned at?

http://marc.theaimsgroup.com/?l=linux-kernel&m=114140791428032&w=2
Michael,

For the FPGA loader, you should load the FPGA, then make a call to
pci_rescan_bus0() (I'm renaming check_hw() to pci_rescan_bus0()).   
Next,
you need to do a pci_find_device() to detect the newly loaded  
FPGA.  If
the pci_find_device() fails, assume that the FPGA load has not
completed, so delay for some time frame (100 ms??), then rescan again.
If still not found, rescan up to MAX_PCI_RESCANS (probably set it  
to 3)
times, then return an error that the FPGA load failed.
Do you not know when the FPGA load is done?  I assume its under  
software control so the "fpga loader" should just call the PCI setup  
code once it has completed successfully.

- kumar
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help