I want to share a solution to a problem that I had:
Problem:
The problem was that no HDDs nor JMB585 were being detected. If I run the `lspci -nn`, it would show no devices:
# lspci -nn
And there were some `PCIe link training gen1 timeout` in the kernel messages.
root@helios64:/home/amreo# dmesg | grep -Ei 'sata|ahci|scsi|ata|sas|sd[a-z]|helios'
[ 0.000000] Machine model: Kobol Helios64
[ 0.000000] NODE_DATA(0) allocated [mem 0xf77c6800-0xf77c8fbf]
[ 0.000000] printk: log buffer data + meta data: 262144 + 917504 = 1179648 bytes
[ 0.016416] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[ 0.022065] Memory: 3778312K/4061184K available (17856K kernel code, 2818K rwdata, 11452K rodata, 2816K init, 696K bss, 143288K reserved, 131072K cma-reserved)
[ 0.130465] SCSI subsystem initialized
[ 0.130732] libata version 3.00 loaded.
[ 0.323947] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[ 2.153930] sdhci: Secure Digital Host Controller Interface driver
[ 2.153945] sdhci: Copyright(c) Pierre Ossman
[ 2.155445] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.434521] vcc_sdio_s0: Bringing 3300000uV into 3000000-3000000uV
[ 2.463615] dwmmc_rockchip fe320000.mmc: DW MMC controller at irq 66,32 bit host data width,256 deep fifo
[ 2.491098] mmc1: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
[ 5.342892] typec-extcon typec-extcon: extcon changed sdp=0 cdp=0 dcp=1 usb=0 usb_host=0 dp=0
[ 7.084150] mmc0: new UHS-I speed SDR104 SDXC card at address 0007
[ 8.734118] EXT4-fs (mmcblk0p1): mounted filesystem 01221172-9a2a-4044-ad5c-35efb272a1ba ro with writeback data mode. Quota mode: none.
[ 9.458990] systemd[1]: Hostname set to <helios64>.
[ 10.530522] systemd[1]: systemd-hwdb-update.service - Rebuild Hardware Database skipped, no trigger condition checks were met.
[ 11.366948] cfg80211: Loading compiled-in X.509 certificates for regulatory database root@helios64:/home/amreo# dmesg | grep -Ei 'pcie|pci|jmicron|jmb|ahci'
[ 0.063066] /pcie@f8000000: Fixed dependency cycle(s) with /pcie@f8000000/interrupt-controller
[ 0.223782] PCI: CLS 0 bytes, default 64
[ 2.463260] rockchip-pcie f8000000.pcie: host bridge /pcie@f8000000 ranges:
[ 2.463321] rockchip-pcie f8000000.pcie: MEM 0x00fa000000..0x00fbdfffff -> 0x00fa000000
[ 2.463346] rockchip-pcie f8000000.pcie: IO 0x00fbe00000..0x00fbefffff -> 0x00fbe00000
[ 2.464012] rockchip-pcie f8000000.pcie: no bus scan delay, default to 0 ms
[ 3.171191] rockchip-pcie f8000000.pcie: PCIe link training gen1 timeout!
[ 3.171258] rockchip-pcie f8000000.pcie: probe with driver rockchip-pcie failed with error -110
I had tried to manually rebind the pcie device but it didn't work.
`echo f8000000.pcie > /sys/bus/platform/drivers/rockchip-pcie/bind`
Solution:
* I have solved installing a older version of kernel Linux, namely `6.12.58-current-rockchip64` using `armbian-config`
* And applying the new opp-microvolt patch (not the one in the armbian distribution package, check the microvolts).
/dts-v1/;
/ {
compatible = "rockchip,rk3399";
fragment@0 {
target-path = "/opp-table-1";
__overlay__ {
opp00 {
opp-hz = <0x00 0x18519600>;
opp-microvolt = <0xdbba0 0xdbba0 0x1312d0>;
clock-latency-ns = <0x9c40>;
};
opp01 {
opp-hz = <0x00 0x23c34600>;
opp-microvolt = <0xdbba0 0xdbba0 0x1312d0>;
};
opp02 {
opp-hz = <0x00 0x30a32c00>;
opp-microvolt = <0xdbba0 0xdbba0 0x1312d0>;
};
opp03 {
opp-hz = <0x00 0x3c14dc00>;
opp-microvolt = <0xe7ef0 0xe7ef0 0x1312d0>;
};
opp04 {
opp-hz = <0x00 0x47868c00>;
opp-microvolt = <0xfa3e8 0xfa3e8 0x1312d0>;
};
opp05 {
opp-hz = <0x00 0x54667200>;
opp-microvolt = <0x10c8e0 0x10c8e0 0x1312d0>;
};
opp06 {
opp-hz = <0x00 0x5fd82200>;
opp-microvolt = <0x11edd8 0x11edd8 0x1312d0>;
};
opp07 {
opp-hz = <0x00 0x6b49d200>;
opp-microvolt = <0x1312d0 0x1312d0 0x1312d0>;
};
};
};
};
(The patch can be installed using `armbian-add-overlay`)