I’m writing this blog because of something I learned the hard way and that I just did not understand. I, of course, hopes this helps someone else.
I just start playing with the Raspberry Pi Compute Module and Carrier boards and I recently received the Official Pi IO Board for the Compute Module 4. I decided the first thing I wanted to do was make use of the PCIe slot on the board.
And that’s where the trouble began.
There are LOTS of great web pages on Pi Carrier Boards and PCIe configuration but this issue slipped me up for over a day.
I ordered an NVME adapter and a Samsung EVO 970 Plus NVME drive and the adapter arrived first. So I decided to go ahead and get it set up and ready for the NVME drive.
And this is really where the trouble began.
So I installed the adapter and went looking for it with
lspci
And nothing happened. Then I checked dmesg
dmesg | grep pci
And was greeted with this:
[ 1.280768] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:[ 1.283491] brcm-pcie fd500000.pcie: No bus range found for /scb/pcie@7d500000, using [bus 00-ff] [ 1.286226] brcm-pcie fd500000.pcie: MEM 0x0600000000..0x063fffffff -> 0x00c0000000
[ 1.288961] brcm-pcie fd500000.pcie: IB MEM 0x0000000000..0x00ffffffff -> 0x0400000000
[ 1.610922] brcm-pcie fd500000.pcie: link down
And this is the crux of the problem. I spent a day troubleshooting the issue of no PCIe lane detected until I discovered that if there is nothing connected to it, meaning a drive, or other peripheral, then the link is DOWN.
No one, and I mean no one discusses this. And this is why I’m discussing it.
After I added the NVME drive I noticed that the red light blinked during the boot which it didn’t do before. Here’s my build:
CM4 with NVME Drive and Adapter (click pics to enlarge)
And finally issuing
lspci lsblk
Revealed the drive
lspci and lsblk results (click pic to enlarge)
So all is well but I really expected the Adapter to reveal itself as a PCIe device and IT DID NOT. Seems like it should have but it was no different than having nothing plugged in the PCIe slot.
And now you know.