cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
paul.mckechnie
Observer
Observer
5,040 Views
Registered: ‎02-22-2008

Reconfiguration of executing ML555 board

I have been playing with the PIO design included with the ML555 board and have been tinkering with the application note to perform custom operations. In particular, I have been customising the operation of the PCI Express Endpoint block and exploring the capabilities of the component through its LocalLink interface. Consequently, I do like to reconfigure the FPGA frequently and would like to do so while the host system is running. For clarification, the ML555 board is inserted into a separate system from my development envrionment. I have a separate Platform Cable USB from my development machine to the ML555 board, which is in a separate testing machine.

 

I would like to reconfigure the FPGA while the operating system is executing but Windows and Linux don't seem to like it when I do. For example, Windows results in a blue screen of death, while Linux warns of non-maskable interrupts and kernel panics. I realise that this isn't a result of the board per se but I would appreciate any help that would allow me to reconfigure the device without rebooting the test machine. I suspect that it is a result of the reconfiguration of the PCIe Endpoint and would appreciate any pointers to documentation that explains what happens in the system when the device is reconfigured. Unfortunately, I haven't been able to find any documentation related to this.

 

Regards,

 

Paul

Message Edited by paul.mckechnie on 11-27-2009 01:44 PM
0 Kudos
3 Replies
paul.mckechnie
Observer
Observer
4,987 Views
Registered: ‎02-22-2008

Does anyone know why reconfiguring the FPGA causes a blue screen of death in windows and non-maskable interrupts in Linux? As I understand, PCIe sends interrupts in-band as packets through the fabric. (Whereas the original PCI specification used sideband signals) Are these interrupts caused by the FPGA device itself as it is being reconfigured or are they a result of the switch detecting a lack of communciation from the FPGA and raising an interrupt? Surely someone must know what happens in the PCIe endpoint when the FPGA is reconfigured. Unfortunately, there does not seem to be any definitive documentation.
0 Kudos
mcgett
Xilinx Employee
Xilinx Employee
4,983 Views
Registered: ‎01-03-2008

My understanding is that PCIexpress doesn't really support hot-swap type devices and when you reconfigure the FPGA with the PCIe core it disappears from the system and causes havoc in the OS.

------Have you tried typing your question into Google? If not you should before posting.
Too many results? Try adding site:www.xilinx.com
0 Kudos
paul.mckechnie
Observer
Observer
4,974 Views
Registered: ‎02-22-2008

I believe that PCI Express does support hot swap and hot plug devices. I am fairly certain that it is part of the PCI Express standard but it is an optional part of the standard. I stumbled upon the following article from Microsoft, which states that Windows Vista supports PCI Express hot plug as described in the PCI Express specification.

 

http://www.microsoft.com/whdc/connect/PCI/BIOS_HotPlugPCIe.mspx

 

However, the document also says that an interrupt is generated on hot plug events. Consequently, I suspect that the drivers for the device that I am implementing on the ML555 do not have support for hot plug events. Ultimately, I think you are right in saying that the reconfiguration causes the PCIe to disappear from the system. This would then generate an interrupt, which would explain the non-maskable interrupts in Linux. Following the interrupt generation, the operating system would look for an interrupt handler which is not provided by the driver and cause the system to crash.

 

Overall, it would seem to be a driver issue. I realise that this question wasn't really about the board per se but I had hoped that someone else had come across this same issue. I have only been looking at PCI Express for a couple of weeks so I am not entirely confident that this is the correct explanation.

Message Edited by paul.mckechnie on 12-02-2009 11:04 AM
0 Kudos