PCIe
Overview
Product Versions
Chip Name | Kernel Version |
---|
RK1808 | 4.4, 4.19 |
RK3528 | 4.19, 5.10, 6.1 |
RK3562 | 5.10, 6.1 |
RK3566/RK3568 | 4.19, 5.10, 6.1 |
RK3576 | 6.1 |
RK3588 | 5.4, 5.10, 6.1 |
Note: RK3399 uses a different PCIe controller IP and is not covered in this document. Please refer to "Rockchip_RK3399_Developer_Guide_PCIe_CN".
Target Audience
This document (guide) is mainly intended for the following engineers:
- Technical Support Engineers
- Software Development Engineers
1. Chip Resource Introduction
1.1 RK1808
Resource | Mode | Supported Lanes | DMA Support | MMU Support | ASPM Support | Remarks |
---|
PCIe Gen2 | RC | x2 lane | No | No | L0s/L1 | Internal clock |
1.2 RK3528
Resource | Mode | Lane Split Support | DMA Support | MMU Support | ASPM Support | Remarks |
---|
PCIe Gen2 x1 | RC | No | No | No | ALL | Internal clock |
1.3 RK3562
Resource | Mode | Lane Split Support | DMA Support | MMU Support | ASPM Support | Remarks |
---|
PCIe Gen2 x1 | RC | No | No | No | ALL | Internal clock |
1.4 RK3566
Resource | Mode | Lane Split Support | DMA Support | MMU Support | ASPM Support | Remarks |
---|
PCIe Gen2 x1 | RC | No | No | No | L0s/L1 | Internal clock |
1.5 RK3568
1.5.1 Controller
Resource | Mode | Lane Split | DMA Support | MMU Support | ASPM Support | Remarks |
---|
PCIe Gen2 | RC | 1 lane only | No | No | L0s/L1 | Internal clock |
PCIe Gen3 | RC/EP | 1 lane RC + 1 lane RC | 2 read Channels + 2 write Channels | No | ALL | Supports pcie30phy |
PCIe Gen3 | RC | 1 lane | No | No | ALL | Supports pcie30phy |
1.5.2 PHY
Resource | dts Node | Reference Clock | Split | Combo |
---|
pcie30phy | phy@fe8c0000 | External | 2Lane: Default | PCIe dedicated |
combphy2_psq | phy@fe840000 | Internal/External | 1Lane + 1Lane: rockchip,bifurcation | combo |
Note: pcie30phy 2Lane is by default configured as PCIe Gen3 x 2 lane. After splitting, the "PCIe Gen3 x 2 lane" and "PCIe Gen3 x 1 lane" controllers each use 1 lane.
1.6 RK3576
Resource | Mode | Lane Split Support | DMA Support | MMU Support | ASPM Support | Remarks |
---|
PCIe Gen2 x1 | RC | No | No | Yes | ALL | Internal clock |
1.7 RK3588
Note:
RK3588 has a total of 5 PCIe controllers, with identical hardware IP but different configurations. One 4Lane DM mode can support EP usage, while the other 2Lane and three 1Lane controllers can only be used as RC.
RK3588 has two types of PCIe PHY: one is pcie3.0PHY with 2 Ports and 4 Lanes; the other is pcie2.0 PHY, each being 2.0 1Lane, used in combo with SATA and USB.
The 4Lane of pcie3.0 PHY can be split as needed. After splitting, the corresponding controllers must be properly configured. All configurations are done in DTS, no driver modification required.
Usage restrictions:
- After splitting pcie30phy, the pcie30x4 controller, when working in 2Lane mode, can only be paired with port0 of pcie30phy; in 1Lane mode, it can only be paired with port0lane0 of pcie30phy;
- After splitting pcie30phy, the pcie30x2 controller, when working in 2Lane mode, can only be paired with port1 of pcie30phy; in 1Lane mode, it can only be paired with port1lane0 of pcie30phy;
- When pcie30phy is split into four 1Lanes, port0lane1 of pcie3phy can only be paired with the pcie2x1l0 controller, and port1lane1 of pcie3phy can only be paired with the pcie2x1l1 controller;
- The pcie30x4 controller working in EP mode can use 4Lane mode, or use 2Lane mode with port0 of pcie30phy. The 2Lane of port1 of pcie30phy can be used as RC with other controllers. By default, when using common clock as the reference clock, it is not possible to have lane0 of port0 of pcie30phy working in EP mode and lane1 working in RC mode with other controllers, because the two lanes of port0 share one input reference clock, and simultaneous use of clock by RC and EP may cause conflicts.
- If only one port of RK3588 pcie30phy is used, the other port also needs to be powered, and other signals such as refclk can be grounded.

1.7.1 Controller
Resource | Mode | dts Node | Available PHY | Internal DMA | ASPM Support | MMU Support |
---|
PCIe Gen3 x4 | RC/EP | pcie3x4: pcie@fe150000 | pcie30phy | 2 read Channels + 2 write Channels | ALL | Yes |
PCIe Gen3 x2 | RC | pcie3x2: pcie@fe160000 | pcie30phy | No | ALL | Yes |
PCIe Gen3 x1 | RC | pcie2x1l0: pcie@fe170000 | pcie30phy, combphy1_ps | No | ALL | Yes |
PCIe Gen3 x1 | RC | pcie2x1l1: pcie@fe180000 | pcie30phy, combphy2_psu | No | ALL | Yes |
PCIe Gen3 x1 | RC | pcie2x1l2: pcie@fe190000 | combphy0_ps | No | ALL | Yes |
1.7.2 PHY
Resource | dts Node | Reference Clock | Split | Combo |
---|
pcie30phy | phy@fee80000 | External | 4Lane: PHY_MODE_PCIE_AGGREGATION 2Lane+2Lane: PHY_MODE_PCIE_NANBNB 2Lane+1Lane+1Lane: PHY_MODE_PCIE_NANBBI 1Lane4: PHY_MODE_PCIE_NABIBI | PCIe dedicated |
combphy0_ps | phy@fee00000 | Internal/External | - | Combo with SATA |
combphy1_ps | phy@fee10000 | Internal/External | - | Combo with SATA |
combphy2_psu | phy@fee20000 | Internal/External | - | Combo with SATA/USB3 |
1.8 RK3588S
Note: The PCIe of RK3588S is relatively simple, with two 1Lane controllers and two 1Lane comboPHYs for PCIe 2.0, in a one-to-one correspondence.
1.8.1 Controller
Resource | Mode | dts Node | Available PHY | Internal DMA | ASPM Support | MMU Support |
---|
PCIe Gen3 x1 | RC | pcie2x1l1: pcie@fe180000 | combphy2_psu | No | ALL | Yes |
PCIe Gen3 x1 | RC | pcie2x1l2: pcie@fe190000 | combphy0_ps | No | ALL | Yes |
1.8.2 PHY
Resource | dts Node | Reference Clock | Split | Combo |
---|
combphy0_ps | phy@fee00000 | Internal/External | - | Combo with SATA |
combphy2_psu | phy@fee20000 | Internal/External | - | Combo with SATA/USB3 |
2. DTS Configuration
2.1 Key Points for Configuration