I am working on a custom iMX7 Dual board and hope to support M.2 SSD as an additional storage.
The PCIe interface is mapped to the M.2 connector directly.
Having tested with a Kingston SSD, the pci link is detected and can be listed via Linux command "lspci" and "lsblk".
00:00.0 Class 0604: 16c3:abcd
01:00.0 Class 0108: 2646:5008
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 223.6G 0 disk
`-nvme0n1p1 259:1 0 223.6G 0 part /media/nvme0n1p1
Up to here, we assume the PCIe interface is correctly linked and implemented by software.
However, when we tested with a Western Digital (WD) SSD, iMX7 is unable to detect the pci interface.
lspci is unable to list the link and the boot message indicated that the pcie phy link never came up.
imx6q-pcie 33800000.pcie: phy link never came up
imx6q-pcie 33800000.pcie: Link never came up
imx6q-pcie 33800000.pcie: failed to initialize host
imx6q-pcie: probe of 33800000.pcie failed with error -110
I have searched for the error code -110, but most of the case I got were error code -22.
I have also verified this issue on the iMX7D Sabre board with an image supporting pci function and connected the SSD via a mini PCIe to M.2 adapter. But the result is as same as my custom board, only the Kingston SSD can be recognized.
I would like to ask:
1) What does the error code -110 actually means?
2) Does my issue related to some drivers compatibility? Or shall I look for driver updates to resolve the problem?