[BPI-R3] How to force PCIe Gen3 (8GT/s) link?


On my v1.1 board NVMe is working but only at Gen2 link speed. I am aware that there are only two physical lanes but from the SoC datasheet they are supposed to be Gen3. I assume its limited to gen2 by default for compatibility/reliability/validation reasons due to PCB or whatever. Any ideas where this can be adjusted (at my own risk)? Kernel cmdline/module options, devicetree, kconfig, HW mod?

[    1.643957] pci_bus 0000:01: scanning bus
[    1.647973] pci 0000:01:00.0: [c0a9:540a] type 00 class 0x010802
[    1.653987] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
[    1.660949] pci 0000:01:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x2 link at 0000:00:00.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link)
[    1.698267] pci_bus 0000:01: fixups for bus
[    1.702436] pci_bus 0000:01: bus scan returning with max=01
[    1.707989] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01

(OpenWrt SNAPSHOT r24615-25e215c14e, Kernel Version 6.1.65)

Thanks in advance.

1 Like

Despite the misleading name of the PCIe driver (pcie-mediatek-gen3.c) the maximum speed of the PCIe host controller found in the MT7986 SoC is 5.0 GT/s. So it’s not you or your SSD or the R3 board – the chip simply can’t do it faster.

1 Like

Thanks for letting me know, i must have misread or misremebered that, since re-checking the datasheet, indeed PCIE 2.0 2L is written, my bad then. :+1: