Click here to Skip to main content
15,846,144 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
Hello All,

I need to reset a PCIE device using Function Level Reset. I figured out the way of doing so, we just need to write the 15th bit in the PCIe device control register.

I am just figuring out as to how do we ensure that FLR has succeeded, I cross checked through the internet and read the Specification document as well, but could not find out the way.

The next part of my problem statement is once I do a Pcie device reset, which registers or what part should be restored.

Hence I request some inputs.


What I have tried:

- Wrote the code to read the config space.
- Stored the contents of device capability register and set the 15th bit of the device control register.
- Read the contents of the command register to check if FLR has occurred, but dint find any clue.
- I also printed the contents of the Device control register before and after initiating an FLR:
BEFORE FLR: Enable Relaxed Ordering bit, Enable No Snoop bits is set
AFTER FLR: Contents of the register become 0

Need some more conclusive evidence for FLR completion.
Updated 8-Oct-23 8:59am

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900