We are having custom board with 8569 processor , one peripheral is connected with processor via PCIE. Sometimes this peripheral is not detected on pci, at the same instance we wanted to read the ltssm status value of the pci controller to check for possible link errors.
For the same we are referring the 8569 Reference Manual the LTSSM register is present in PCI Express Extended Configuration Space.
We were trying to read the same using PCI Express Configuration Address Register (PEX_CONFIG_ADDR) and PCI Express Configuration Data Register (PEX_CONFIG_DATA).
What should be the data written into PEX_CONFIG_ADDR ?
已解决! 转到解答。
@ufedorThanks for the valuable input.
The ltssm value read in the board is 0x1600 . Still the end device is not detected on PCI. We have other boards as well in which end device is getting detected on pci and the ltssm value is 0x1600.
I have following queries-
1) Is there further registers through which we can get the actual root cause of this problem of peripheral not getting detected on pci, despite correct ltssm values?
2) Is there any way out to reinitiate EP enumeration from linux user space?
1) The issue could be caused by slow initialization of the EP device.
What could be the probable reason of slow initialization of EP device? Is there any PCIE standardization wrt the slow initialization of EP device which we can check further? Any debugging suggestion to close this case.
We have put the EP device in reset , lspci shows no devices. After that we have taken EP device out of reset, and lspci showed no devices.
We tried the command suggested by you echo 1 > /sys/bus/pci/rescan still the EP device was not detected at PCI.
Its after we reset the processor , then EP devices gets enumerated at PCI.
Could you please suggest what can be done in such a scenario to bring EP device on pci without rebooting processor?