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.