Hi Dave, Thanks for the input.
I was thinking about making the FPGA a hotplug device. I was really hoping that I could just enable CONFIG_HOTPLUG in the kernel build, but after some research, I don't believe that will work. The hotplug approach was more work than I wanted, but after your response, I decided to look into it some more, specifically looking for an FPGA implementation similar to ours. I searched the linux-hotplug-devel list for FPGA, and found this: http://marc.theaimsgroup.com/?l=linux-hotplug-devel&m=101318310111131&w= 2 It implements a rescan of the PCI bus for a newly loaded FPGA device (although despite the group name, it doesn't use HotPlug). I'm going to try to use the code from the above link rather than implement a hotplug driver. Thanks again for the help. Chris Wyse Member of Technical Staff Embedded Technologies 860-749-1556 office 860-978-0849 cell 413-778-9101 fax http://www.windriver.com -----Original Message----- From: David Hawkins [mailto:[EMAIL PROTECTED] Sent: Monday, March 06, 2006 11:33 PM To: Wyse, Chris Cc: linuxppc-embedded at ozlabs.org Subject: Re: Calling PCI Autoconfig again Wyse, Chris wrote: > Hi, > > I'm working on a board (PPC440GX CPU) that has an FPGA on it. The > FPGA software has a PCI interface. If I load the FPGA, then boot the > Linux kernel, the FPGA is recognized as a device on the PCI bus. > However, I'd like to load the FPGA after the kernel has booted, then > run autoconfig again to detect the device. What's the best way to do this? > > Please send responses directly to me (in addition to the list), since > I am not subscribed to the list. Hi Chris, I haven't had to do this, but I've thought about how I might do it. In compact PCI, you can hot-swap a PCI device, and the Linux host is supposed to go and re-enumerate the PCI bus. There is a pci (host-side) hotplug skeleton in the source; linux-2.6/drivers/pci/hotplug/pcihp_skeleton.c I believe you can do the following; - consider the 440GX is a hotplug controller (and write a hotplug driver appropriately) - when Linux loads the FPGA, the FPGA generates a hotplug event, i.e., it just got plugged in (I'm not sure what signal is generated, perhaps a power-management interrupt PME#?) - the 440GX hotplug controller re-enumerates the PCI bus and finds the device I'm sure you can get an idea from the hotplug skeleton what re-enumeration entails. Cheers Dave
