I’ve been a user of an Espressobin for a few years now, first time posting. I have mine built into a NAS enclosure, using a 4-port SATA card in the mini PCIe slot to do RAID. It’s running Gentoo, with a (mostly) mainline kernel 5.4.156. This is working just fine, but that kernel is getting old, by Gentoo standards anyway ;P
I’ve tried building newer kernels – including actual mainline sources – my latest attempt was 5.15.16 – but each time I run into the same issue: the PCIe card isn’t being recognized. For example, I see this output in the boot log for the working kernel, which is absent in the non-working one:
[ 1.753820] advk-pcie d0070000.pcie: host bridge /soc/pcie@d0070000 ranges:
[ 1.760986] advk-pcie d0070000.pcie: MEM 0xe8000000..0xefefffff -> 0xe8000000
[ 1.768467] advk-pcie d0070000.pcie: IO 0xefff0000..0xefffffff -> 0xefff0000
[ 1.876008] advk-pcie d0070000.pcie: link up
[ 1.880475] advk-pcie d0070000.pcie: PCI host bridge to bus 0000:00
Aside from not being able to access the disks, the system will otherwise boot from SD card. I understand some things have changed in the kernel for Espressobin since 5.4, and there are new device trees available for newer Espressobin models, but I’m not sure how to get things working again. Perhaps there’s a config option I overlooked?
Hello @gtbX! Could you please provide output from “lspci -nn -vv” command from working kernel and whole dmesg ouput from non-working kernel? I can look at PCIe issues. In recent kernels there are lot of fixes for pci-aardvark.c A3720 PCIe driver.
Thanks. I went back to my original config, and checked each of those options. I think the issue was that I had CONFIG_PCI_AARDVARK=y, but CONFIG_PHY_MVEBU_A3700_COMPHY=m. According to the help for that option, it seems required to use PCIe, along with some other buses. It makes sense then that it couldn’t mount the rootfs if a module required for doing so was stored there. I changed it to ‘y’ and it’s able to boot again.