3. PCIe 使用

3.1. 简介

ROC-RK3588-RT 开发板上有 3 个 PCIe2.0 x 3 接口 和 1 个 PCIe3.0 x 4 接口,其中 2 个 PCIe2.0 x 2 (M.2 SATA / PCIe Wifi/BT 模块),PCIe3.0 x 4 引出接口给扩展板使用,

板载默认支持M.2 SATAPCIe WiFi/BT模块

如图:

_images/usage_pcie_interface.png

3.2. 软件配置

关于 RK3588 PCIe 的硬件可用资源及软件上 pcie 控制器节点、 PHY 节点对应关系如图: _images/usage_pcie_phy.png

ROC-RK3588-RT 开发板上的 PCIe3.0 x 4 接口使用了 RK3588 的 PCIe Gen3 x 4 lanePCIe Gen3 x 2 lane 这组资源。

3.2.1. DTS 配置

一般根据原理图在 DTS 中配置供电引脚、复位引脚,选择正确的 pcie 控制器节点和 PHY 节点使能就可以。

示例:

以下是一段 4 x 2.5G 网口扩展板 的DTS配置 kernel-5.10/arch/arm64/boot/dts/rockchip/roc-rk3588-rt-ext.dtsi

/* pcie3.0 x 4 Lane */
&pcie30phy {
    rockchip,pcie30-phymode = <PHY_MODE_PCIE_NABIBI>;
    status = "okay";
};

&pcie3x2 {
        num-lanes = <1>;
        reset-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
        vpcie3v3-supply = <&vcc3v3_pcie30>;
    rockchip,skip-scan-in-resume;
    rockchip,perst-inactive-ms = <500>;
    status = "okay";
};
&pcie3x4 {
        num-lanes = <1>;
        reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
        vpcie3v3-supply = <&vcc3v3_pcie30>;
    rockchip,skip-scan-in-resume;
    rockchip,perst-inactive-ms = <700>;
    status = "okay";
};

&vcc3v3_pcie30{
        gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
        regulator-always-on;
        startup-delay-us = <5000>;
        status = "okay";
};

pcie30phy:PHY 节点

pcie3x2:pcie3x2 控制器节点

pcie3x4:pcie3x4 控制器节点

reset-gpios:复位引脚属性

vcc3v3_pcie30:供电引脚节点