kernel icon indicating copy to clipboard operation
kernel copied to clipboard

Custom board with RK3568: problem with PCI-E

Open Pasha-From-Russia opened this issue 1 year ago • 2 comments

Hello I'm trying to run pci-e on my board with RK35368 CPU. I took rockchip-linux/kernel (branch develop-5.10), rockchip-linux/u-boot (branch next-dev )

my dts file is

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Minimal generic DT for RK3566/RK3568 with eMMC and SD-card enabled
 */

/dts-v1/;
#include "rk3568.dtsi"
#include "rk3568-u-boot.dtsi"

/ {
	model = "Generic RK3566/RK3568";
	compatible = "rockchip,rk3568";
	aliases {
		ethernet0 = &gmac1;
	};

	vcc3v3_pcie: vcc3v3-pcie-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_pcie";
		gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		regulator-always-on;
		enable-active-high;
		status = "okay";
	};
};

&pcie30phy {
	data-lanes = <1 2>;
	status = "okay";
};

&pcie2x1 {
	status = "okay";
	vpcie3v3-supply = <&vcc3v3_pcie>;
};

&pcie3x1 {
	status = "okay";
	num-lanes = <1>;
	vpcie3v3-supply = <&vcc3v3_pcie>;
};

&pcie3x2 {
	status = "okay";
	num-lanes = <1>;
	vpcie3v3-supply = <&vcc3v3_pcie>;
};

i also added a u-boot patch from here https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/

my kernel says the following errors:

mesg | grep -E "(pci|phy)"
[    0.721217][    T0] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[    1.239459][    T0] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    1.380762][    T1] platform 3c0000000.pcie: Linked as a consumer to fdd90000.power-management:power-controller
[    1.383388][    T1] platform 3c0400000.pcie: Linked as a consumer to fdd90000.power-management:power-controller
[    1.385908][    T1] platform 3c0800000.pcie: Linked as a consumer to fdd90000.power-management:power-controller
[    1.396452][    T1] platform usbhost: Linked as a sync state only consumer to fe8a0000.usb2-phy
[    1.397446][    T1] platform usbdrd: Linked as a sync state only consumer to fe8a0000.usb2-phy
[    1.398896][    T1] platform 3c0800000.pcie: Linked as a consumer to fe8c0000.phy
[    1.399789][    T1] platform 3c0400000.pcie: Linked as a consumer to fe8c0000.phy
[    1.604083][    T1] rockchip-pinctrl pinctrl: parse function(94): pcie20
[    1.604757][    T1] rockchip-pinctrl pinctrl: group(0): pcie20m0-pins
[    1.605507][    T1] rockchip-pinctrl pinctrl: group(1): pcie20m1-pins
[    1.606243][    T1] rockchip-pinctrl pinctrl: group(2): pcie20m2-pins
[    1.606977][    T1] rockchip-pinctrl pinctrl: group(3): pcie20-buttonrstn
[    1.607724][    T1] rockchip-pinctrl pinctrl: parse function(95): pcie30x1
[    1.608416][    T1] rockchip-pinctrl pinctrl: group(0): pcie30x1m0-pins
[    1.609180][    T1] rockchip-pinctrl pinctrl: group(1): pcie30x1m1-pins
[    1.609932][    T1] rockchip-pinctrl pinctrl: group(2): pcie30x1m2-pins
[    1.610685][    T1] rockchip-pinctrl pinctrl: group(3): pcie30x1-buttonrstn
[    1.611450][    T1] rockchip-pinctrl pinctrl: parse function(96): pcie30x2
[    1.612144][    T1] rockchip-pinctrl pinctrl: group(0): pcie30x2m0-pins
[    1.612897][    T1] rockchip-pinctrl pinctrl: group(1): pcie30x2m1-pins
[    1.613649][    T1] rockchip-pinctrl pinctrl: group(2): pcie30x2m2-pins
[    1.614399][    T1] rockchip-pinctrl pinctrl: group(3): pcie30x2-buttonrstn
[    1.831045][    T1] platform 3c0800000.pcie: Linked as a consumer to vcc3v3-pcie-regulator
[    1.832027][    T1] platform 3c0400000.pcie: Linked as a consumer to vcc3v3-pcie-regulator
[    1.832995][    T1] platform 3c0000000.pcie: Linked as a consumer to vcc3v3-pcie-regulator
[    1.833999][    T1] platform vcc3v3-pcie-regulator: Linked as a consumer to fdd60000.gpio
[    2.777433][    T1] platform vcc3v3-pcie-regulator: really_probe::device_links_check_suppliers = 0
[    2.778322][    T1] platform vcc3v3-pcie-regulator: bus: 'platform': really_probe: probing driver reg-fixed-voltage with device vcc3v3-pcie-regulator
[    2.779685][    T1] reg-fixed-voltage vcc3v3-pcie-regulator: no pinctrl handle
[    2.780424][    T1] reg-fixed-voltage vcc3v3-pcie-regulator: device is not dma coherent
[    2.781219][    T1] reg-fixed-voltage vcc3v3-pcie-regulator: device is not behind an iommu
[    2.782143][    T1] reg-fixed-voltage vcc3v3-pcie-regulator: GPIO lookup for consumer (null)
[    2.782976][    T1] reg-fixed-voltage vcc3v3-pcie-regulator: using device tree for GPIO lookup
[    2.785887][    T1] reg-fixed-voltage vcc3v3-pcie-regulator: vcc3v3_pcie supplying 3300000uV
[    2.786790][    T1] platform 3c0800000.pcie: Added to deferred list
[    2.787418][    T1] platform 3c0400000.pcie: Added to deferred list
[    2.788039][    T1] platform 3c0000000.pcie: Added to deferred list
[    3.115142][    T1] platform fe8c0000.phy: really_probe::device_links_check_suppliers = 0
[    3.116031][    T1] platform fe8c0000.phy: bus: 'platform': really_probe: probing driver rockchip-snps-pcie3-phy with device fe8c0000.phy
[    3.117267][    T1] rockchip-snps-pcie3-phy fe8c0000.phy: no pinctrl handle
[    3.117982][    T1] rockchip-snps-pcie3-phy fe8c0000.phy: device is not dma coherent
[    3.118752][    T1] rockchip-snps-pcie3-phy fe8c0000.phy: device is not behind an iommu
[    3.119950][    T1] rockchip-snps-pcie3-phy fe8c0000.phy: failed to find rockchip,pipe_grf regmap
[    3.120869][    T1] phy phy-fe8c0000.phy.0: Looking up phy-supply from device tree
[    3.121638][    T1] phy phy-fe8c0000.phy.0: Looking up phy-supply property in node /phy@fe8c0000 failed
[    3.124958][    T1] platform 3c0000000.pcie: really_probe::device_links_check_suppliers = 0
[    3.125789][    T1] platform 3c0000000.pcie: bus: 'platform': really_probe: probing driver rk-pcie with device 3c0000000.pcie
[    3.126971][    T1] rk-pcie 3c0000000.pcie: no pinctrl handle
[    3.127569][    T1] rk-pcie 3c0000000.pcie: device is not dma coherent
[    3.128223][    T1] rk-pcie 3c0000000.pcie: device is not behind an iommu
[    3.128941][    T1] rk-pcie 3c0000000.pcie: adding to PM domain pipe
[    3.129613][    T1] rk-pcie 3c0000000.pcie: genpd_add_device()
[    3.130206][    T1] rk-pcie 3c0000000.pcie: attaching to power domain 'pipe'
[    3.130936][    T1] rk-pcie 3c0000000.pcie: adding clock 'aclk_pcie20_mst' to list of PM clocks
[    3.131802][    T1] rk-pcie 3c0000000.pcie: Clock aclk_pcie20_mst con_id (null) managed by runtime PM.
[    3.132771][    T1] rk-pcie 3c0000000.pcie: adding clock 'aclk_pcie20_slv' to list of PM clocks
[    3.133633][    T1] rk-pcie 3c0000000.pcie: Clock aclk_pcie20_slv con_id (null) managed by runtime PM.
[    3.134560][    T1] rk-pcie 3c0000000.pcie: adding clock 'aclk_pcie20_dbi' to list of PM clocks
[    3.135418][    T1] rk-pcie 3c0000000.pcie: Clock aclk_pcie20_dbi con_id (null) managed by runtime PM.
[    3.136385][    T1] rk-pcie 3c0000000.pcie: adding clock 'pclk_pcie20' to list of PM clocks
[    3.137214][    T1] rk-pcie 3c0000000.pcie: Clock pclk_pcie20 con_id (null) managed by runtime PM.
[    3.138117][    T1] rk_pcie_probe
[    3.138828][  T107] rk-pcie 3c0000000.pcie: rk_pcie_really_probe
[    3.138898][    T1] rk-pcie 3c0000000.pcie: Removed from deferred list
[    3.139587][  T107] rk-pcie 3c0000000.pcie: GPIO lookup for consumer reset
[    3.140237][    T1] platform 3c0400000.pcie: really_probe::device_links_check_suppliers = 0
[    3.140814][  T107] rk-pcie 3c0000000.pcie: using device tree for GPIO lookup
[    3.141625][    T1] platform 3c0400000.pcie: bus: 'platform': really_probe: probing driver rk-pcie with device 3c0400000.pcie
[    3.142374][  T107] rk-pcie 3c0000000.pcie: using lookup tables for GPIO lookup
[    3.143475][    T1] rk-pcie 3c0400000.pcie: no pinctrl handle
[    3.144185][  T107] rk-pcie 3c0000000.pcie: No GPIO consumer reset found
[    3.144761][    T1] rk-pcie 3c0400000.pcie: device is not dma coherent
[    3.145398][  T107] rk-pcie 3c0000000.pcie: GPIO lookup for consumer prsnt
[    3.146069][    T1] rk-pcie 3c0400000.pcie: device is not behind an iommu
[    3.146737][  T107] rk-pcie 3c0000000.pcie: using device tree for GPIO lookup
[    3.147440][    T1] rk-pcie 3c0400000.pcie: adding to PM domain pipe
[    3.148124][  T107] rk-pcie 3c0000000.pcie: using lookup tables for GPIO lookup
[    3.148707][    T1] rk-pcie 3c0400000.pcie: genpd_add_device()
[    3.149457][  T107] rk-pcie 3c0000000.pcie: No GPIO consumer prsnt found
[    3.150027][    T1] rk-pcie 3c0400000.pcie: attaching to power domain 'pipe'
[    3.150674][  T107] rk-pcie 3c0000000.pcie: invalid prsnt-gpios property in node
[    3.151375][    T1] rk-pcie 3c0400000.pcie: adding clock 'aclk_pcie30x1_mst' to list of PM clocks
[    3.152081][  T107] rk-pcie 3c0000000.pcie: Looking up vpcie3v3-supply from device tree
[    3.152975][    T1] rk-pcie 3c0400000.pcie: Clock aclk_pcie30x1_mst con_id (null) managed by runtime PM.
[    3.154039][  T107] rk-pcie 3c0000000.pcie: Linked as a consumer to regulator.1
[    3.154675][    T1] rk-pcie 3c0400000.pcie: adding clock 'aclk_pcie30x1_slv' to list of PM clocks
[    3.155404][  T107] rk-pcie 3c0000000.pcie: phy init failed
[    3.156266][    T1] rk-pcie 3c0400000.pcie: Clock aclk_pcie30x1_slv con_id (null) managed by runtime PM.
[    3.156297][    T1] rk-pcie 3c0400000.pcie: adding clock 'aclk_pcie30x1_dbi' to list of PM clocks
[    3.156868][  T107] rk-pcie 3c0000000.pcie: removing from PM domain pipe
[    3.157752][    T1] rk-pcie 3c0400000.pcie: Clock aclk_pcie30x1_dbi con_id (null) managed by runtime PM.
[    3.158609][  T107] rk-pcie 3c0000000.pcie: genpd_remove_device()
[    3.159307][    T1] rk-pcie 3c0400000.pcie: adding clock 'pclk_pcie30x1' to list of PM clocks
[    3.160222][  T107] rk-pcie 3c0000000.pcie: detaching from power domain 'pipe'
[    3.160772][    T1] rk-pcie 3c0400000.pcie: Clock pclk_pcie30x1 con_id (null) managed by runtime PM.
[    3.166116][    T1] rk_pcie_probe
[    3.166185][  T107] rk-pcie 3c0000000.pcie: Dropping the link to regulator.1
[    3.166829][  T108] rk-pcie 3c0400000.pcie: rk_pcie_really_probe
[    3.167492][    T1] rk-pcie 3c0400000.pcie: Removed from deferred list
[    3.167862][  T108] rk-pcie 3c0400000.pcie: GPIO lookup for consumer reset
[    3.168476][    T1] platform 3c0800000.pcie: really_probe::device_links_check_suppliers = 0
[    3.169054][  T108] rk-pcie 3c0400000.pcie: using device tree for GPIO lookup
[    3.169926][    T1] platform 3c0800000.pcie: bus: 'platform': really_probe: probing driver rk-pcie with device 3c0800000.pcie
[    3.170662][  T108] rk-pcie 3c0400000.pcie: using lookup tables for GPIO lookup
[    3.171724][    T1] rk-pcie 3c0800000.pcie: no pinctrl handle
[    3.172417][  T108] rk-pcie 3c0400000.pcie: No GPIO consumer reset found
[    3.173036][    T1] rk-pcie 3c0800000.pcie: device is not dma coherent
[    3.173670][  T108] rk-pcie 3c0400000.pcie: GPIO lookup for consumer prsnt
[    3.174299][    T1] rk-pcie 3c0800000.pcie: device is not behind an iommu
[    3.174965][  T108] rk-pcie 3c0400000.pcie: using device tree for GPIO lookup
[    3.175666][    T1] rk-pcie 3c0800000.pcie: adding to PM domain pipe
[    3.176389][  T108] rk-pcie 3c0400000.pcie: using lookup tables for GPIO lookup
[    3.176972][    T1] rk-pcie 3c0800000.pcie: genpd_add_device()
[    3.177679][  T108] rk-pcie 3c0400000.pcie: No GPIO consumer prsnt found
[    3.178248][    T1] rk-pcie 3c0800000.pcie: attaching to power domain 'pipe'
[    3.178896][  T108] rk-pcie 3c0400000.pcie: invalid prsnt-gpios property in node
[    3.179635][    T1] rk-pcie 3c0800000.pcie: adding clock 'aclk_pcie30x2_mst' to list of PM clocks
[    3.180344][  T108] rk-pcie 3c0400000.pcie: Looking up vpcie3v3-supply from device tree
[    3.181197][    T1] rk-pcie 3c0800000.pcie: Clock aclk_pcie30x2_mst con_id (null) managed by runtime PM.
[    3.182330][  T108] rk-pcie 3c0400000.pcie: Linked as a consumer to regulator.1
[    3.182938][    T1] rk-pcie 3c0800000.pcie: adding clock 'aclk_pcie30x2_slv' to list of PM clocks
[    3.183925][  T108] rk-pcie 3c0400000.pcie: Linked as a consumer to phy-fe8c0000.phy.0
[    3.184502][    T1] rk-pcie 3c0800000.pcie: Clock aclk_pcie30x2_slv con_id (null) managed by runtime PM.
[    3.185811][  T108] rockchip_p3phy_rk3568_init: lock failed 0x6890000, check input refclk and power supply, -110
[    3.186237][    T1] rk-pcie 3c0800000.pcie: adding clock 'aclk_pcie30x2_dbi' to list of PM clocks
[    3.187222][  T108] phy phy-fe8c0000.phy.0: phy init failed --> -110
[    3.188068][    T1] rk-pcie 3c0800000.pcie: Clock aclk_pcie30x2_dbi con_id (null) managed by runtime PM.
[    3.188684][  T108] rk-pcie 3c0400000.pcie: fail to init phy, err -110
[    3.189652][    T1] rk-pcie 3c0800000.pcie: adding clock 'pclk_pcie30x2' to list of PM clocks
[    3.190270][  T108] rk-pcie 3c0400000.pcie: phy init failed
[    3.191096][    T1] rk-pcie 3c0800000.pcie: Clock pclk_pcie30x2 con_id (null) managed by runtime PM.
[    3.191671][  T108] rk-pcie 3c0400000.pcie: removing from PM domain pipe
[    3.192535][    T1] rk_pcie_probe
[    3.193208][  T108] rk-pcie 3c0400000.pcie: genpd_remove_device()
[    3.193883][  T110] rk-pcie 3c0800000.pcie: rk_pcie_really_probe
[    3.193947][    T1] rk-pcie 3c0800000.pcie: Removed from deferred list
[    3.194136][  T108] rk-pcie 3c0400000.pcie: detaching from power domain 'pipe'
[    3.194815][  T110] rk-pcie 3c0800000.pcie: GPIO lookup for consumer reset
[    3.195465][  T108] rk-pcie 3c0400000.pcie: Dropping the link to phy-fe8c0000.phy.0
[    3.196111][  T110] rk-pcie 3c0800000.pcie: using device tree for GPIO lookup
[    3.196172][  T110] rk-pcie 3c0800000.pcie: using lookup tables for GPIO lookup
[    3.197243][  T108] rk-pcie 3c0400000.pcie: Dropping the link to regulator.1
[    3.197553][  T110] rk-pcie 3c0800000.pcie: No GPIO consumer reset found
[    3.198959][  T110] rk-pcie 3c0800000.pcie: GPIO lookup for consumer prsnt
[    3.200509][  T110] rk-pcie 3c0800000.pcie: using device tree for GPIO lookup
[    3.202224][  T110] rk-pcie 3c0800000.pcie: using lookup tables for GPIO lookup
[    3.203470][  T110] rk-pcie 3c0800000.pcie: No GPIO consumer prsnt found
[    3.208027][  T110] rk-pcie 3c0800000.pcie: invalid prsnt-gpios property in node
[    3.208769][  T110] rk-pcie 3c0800000.pcie: Looking up vpcie3v3-supply from device tree
[    3.210568][  T110] rk-pcie 3c0800000.pcie: Linked as a consumer to regulator.1
[    3.212748][  T110] rk-pcie 3c0800000.pcie: Linked as a consumer to phy-fe8c0000.phy.0
[    3.214083][  T110] rockchip_p3phy_rk3568_init: lock failed 0x6890000, check input refclk and power supply, -110
[    3.215328][  T110] phy phy-fe8c0000.phy.0: phy init failed --> -110
[    3.217004][  T110] rk-pcie 3c0800000.pcie: fail to init phy, err -110
[    3.218202][  T110] rk-pcie 3c0800000.pcie: phy init failed
[    3.219462][  T110] rk-pcie 3c0800000.pcie: removing from PM domain pipe
[    3.220746][  T110] rk-pcie 3c0800000.pcie: genpd_remove_device()
[    3.222500][  T110] rk-pcie 3c0800000.pcie: detaching from power domain 'pipe'
[    3.223491][  T110] rk-pcie 3c0800000.pcie: Dropping the link to phy-fe8c0000.phy.0
[    3.224702][  T110] rk-pcie 3c0800000.pcie: Dropping the link to regulator.1
[    3.371750][    T1] rk_gmac-dwmac fe010000.ethernet: Looking up phy-supply from device tree
[    3.372542][    T1] rk_gmac-dwmac fe010000.ethernet: Looking up phy-supply property in node /ethernet@fe010000 failed
[    3.373559][    T1] rk_gmac-dwmac fe010000.ethernet: supply phy not found, using dummy regulator
[    3.533493][    T1] mdio_bus stmmac-0: registered phy phy at address 0

What am I doing wrong? Please I need your help or a manual on how to configure devices for Rockchip CPUs

Pasha-From-Russia avatar Feb 15 '24 15:02 Pasha-From-Russia

did you solve the issue, I have the same issue

hrushirajg23 avatar Feb 11 '25 05:02 hrushirajg23

[ 3.214083][ T110] rockchip_p3phy_rk3568_init: lock failed 0x6890000, check input refclk and power supply, -110 [ 3.215328][ T110] phy phy-fe8c0000.phy.0: phy init failed --> -110 [ 3.217004][ T110] rk-pcie 3c0800000.pcie: fail to init phy, err -110 [ 3.218202][ T110] rk-pcie 3c0800000.pcie: phy init failed I encountered this error when there was an issue with PCIe clocking; it’s worth checking that.

FameAiTi avatar May 29 '25 11:05 FameAiTi