Driver Problems? Questions? Issues?
Put OSR's experience to work for you! Contact us for assistance with:
  • Creating the right design for your requirements
  • Reviewing your existing driver code
  • Analyzing driver reliability/performance issues
  • Custom training mixed with consulting and focused directly on your specific areas of interest/concern.
Check us out. OSR, the Windows driver experts.

Monthly Seminars at OSR Headquarters

East Coast USA
Windows Internals and SW Drivers, Dulles (Sterling) VA, 13 November 2017

Kernel Debugging & Crash Analysis for Windows, Nashua (Amherst) NH, 4 December 2017

Writing WDF Drivers I: Core Concepts, Nashua (Amherst) NH, 8 January 2018

WDF Drivers II: Advanced Implementation Techniques, Nashua (Amherst) NH, 15 January 2018


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 3  
07 Nov 17 12:48
Muthazhagan Arulbalasubramani
xxxxxx@gmail.com
Join Date: 23 Jan 2017
Posts To This List: 12
Reenumerating PCIe device without restart

Hello, We have an FPGA huins board connected to Windows 7 host machine. To flash the firmware we reset the FPGA board, at this point the PCIe link to the host is off (LED is turned orange). After flashing the firmware to bring the PCIe link up we need to restart the host machine. However we want to avoid doing a restart, for this we carried out following mechanism Connected the PCIe slot to an external power source, once the firmware is flashed we switch off the power to the particular PCIe slot and bring the power on, with this approach the PCIe link LED turns green but device is not enumerated on the host I have following questions wrt this: 1) Is there a way to control power to a PCIe slot without any external power source? 2) How to trigger a reenumeration of the PCIe device? Is there any way to talk to PCIe driver to reenumerate the device connected to the slot? Info: There is a phy reset button on the FPGA board, with this the link is up and the host is able to reenumerate the device but so far we haven't found a way to issue this reset via some command. Here the host is able to detect the device without restart, however I would like to know is there anything which can be done to do the similar thing from the host side Thanks.
  Message 2 of 3  
07 Nov 17 13:56
Peter Wieland
xxxxxx@microsoft.com
Join Date: 16 Jul 2009
Posts To This List: 304
Reenumerating PCIe device without restart

Before the flash & reset does the FPGA show up as a device on the PCIe port= ? Or only after you press the PHY reset button on the board? Is there a GPIO from the FPGA to the PHY reset that you could drive as part= of initializing the controller after reconfiguring it? -p -----Original Message----- From: xxxxx@lists.osr.com [mailto:bounce-641264-43642@lists.o= sr.com] On Behalf Of xxxxx@gmail.com Sent: Tuesday, November 7, 2017 9:47 AM To: Windows System Software Devs Interest List <xxxxx@lists.osr.com> Subject: [ntdev] Reenumerating PCIe device without restart Hello, We have an FPGA huins board connected to Windows 7 host machine. To flash t= he firmware we reset the FPGA board, at this point the PCIe link to the hos= t is off (LED is turned orange). After flashing the firmware to bring the P= CIe link up we need to restart the host machine. However we want to avoid doing a restart, for this we carried out following= mechanism Connected the PCIe slot to an external power source, once the firmware is f= lashed we switch off the power to the particular PCIe slot and bring the po= wer on, with this approach the PCIe link LED turns green but device is not = enumerated on the host I have following questions wrt this: 1) Is there a way to control power to a PCIe slot without any external powe= r source? 2) How to trigger a reenumeration of the PCIe device? Is there any way to t= alk to PCIe driver to reenumerate the device connected to the slot? Info: There is a phy reset button on the FPGA board, with this the link is = up and the host is able to reenumerate the device but so far we haven't fou= nd a way to issue this reset via some command. Here the host is able to det= ect the device without restart, however I would like to know is there anyth= ing which can be done to do the similar thing from the host side Thanks.=20 --- NTDEV is sponsored by OSR Visit the list online at: <https://na01.safelinks.protection.outlook.com/?u= rl=3Dhttp%3A%2F%2Fwww.osronline.com%2Fshowlists.cfm%3Flist%3Dntdev&data=3D0= 2%7C01%7Cpeterwie%40microsoft.com%7C22e067f1f09841c89a7508d52607b1af%7C72f9= 88bf86f141af91ab2d7cd011db47%7C1%7C0%7C636456736838170182&sdata=3DBnXDhATUD= akrJU68j2sagtLfqp3QFjA1EKVxlUD79b8%3D&reserved=3D0> MONTHLY seminars on crash dump analysis, WDF, Windows internals and softwar= e drivers! Details at <https://na01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F= %2Fwww.osr.com%2Fseminars&data=3D02%7C01%7Cpeterwie%40microsoft.com%7C22e06= 7f1f09841c89a7508d52607b1af%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63= 6456736838170182&sdata=3DIMpm6jp4tw%2FGIn2v%2F9dbYcBhnyqUgcE7b%2Bf%2F%2FJSe= 8pE%3D&reserved=3D0> To unsubscribe, visit the List Server section of OSR Online at <https://na0= 1.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fwww.osronline.com%2F= page.cfm%3Fname%3DListServer&data=3D02%7C01%7Cpeterwie%40microsoft.com%7C22= e067f1f09841c89a7508d52607b1af%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7= C636456736838170182&sdata=3D1PKPadM%2B%2Bjk0Q3IuX6X79CfJCNbRTPbEo9WAhiPDVIY= %3D&reserved=3D0>
  Message 3 of 3  
07 Nov 17 14:01
Tim Roberts
xxxxxx@probo.com
Join Date: 28 Jan 2005
Posts To This List: 11654
Reenumerating PCIe device without restart

xxxxx@gmail.com wrote: > We have an FPGA huins board connected to Windows 7 host machine. To flash the firmware we reset the FPGA board, at this point the PCIe link to the host is off (LED is turned orange). After flashing the firmware to bring the PCIe link up we need to restart the host machine. > > However we want to avoid doing a restart, for this we carried out following mechanism > > Connected the PCIe slot to an external power source, once the firmware is flashed we switch off the power to the particular PCIe slot and bring the power on, with this approach the PCIe link LED turns green but device is not enumerated on the host In order for this to work, your BIOS must support PCIExpress hot plug.  Almost none of the mainstream BIOSes do so.  You'll find it in some of the server machines. If you can somehow keep your configuration space valid across the reset, you'd stand a chance. > I have following questions wrt this: > ... > 2) How to trigger a reenumeration of the PCIe device? Is there any way to talk to PCIe driver to reenumerate the device connected to the slot? It has to be managed by the BIOS.  If the BIOS doesn't do it, there is no hope.   > Info: There is a phy reset button on the FPGA board, with this the link is up and the host is able to reenumerate the device but so far we haven't found a way to issue this reset via some command. Here the host is able to detect the device without restart, Probably because this reset has not interrupted power, so the configuration space is still intact.  With a scope, you ought to be able to figure out which FPGA pin this thing is wired to.  Given that, surely you can concoct Verilog to tickle the same pin via a register write. > however I would like to know is there anything which can be done to do the similar thing from the host side We don't have any way to know how your board is wired. -- Tim Roberts, xxxxx@probo.com Providenza & Boekelheide, Inc.
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 00:32.


Copyright ©2015, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license