前言:
在嵌入式開發(fā)中,PCIe 接口的靈活配置直接影響設備擴展能力與性能發(fā)揮。RK3588作為旗艦芯片,其 PCIe 拆分機制更是讓硬件設計與軟件調試擁有了更多可能性。今天這篇技術筆記,就帶大家快速吃透 RK3588 PCIE 拆分的核心邏輯、配置步驟與實戰(zhàn)技巧,輕松上手!
一、RK3588 PCIE拆分映射關系圖
PCIE的拆分機制的核心主要在于對于 PCIE PHY 的靈活拆分,并根據(jù)實際拆分情況進行PCIE控制器的匹配,從而實現(xiàn)不同 Lane 組合的擴展方案。
RK3588 PCIe 5 個 Controller 和 5 個 PHY 映射關系圖:

RK3588 的 PCIe 資源堪稱豪華,這也是拆分能力的基礎:
5 個 PCIe 控制器:1 個 4Lane DM 模式(支持 RC/EP)、1 個 2Lane RC 模式、3 個 1Lane RC 模式
兩類 PHY 資源:PCIe 3.0 PHY(2 個 Port 共 4 個 Lane,支持拆分)+ 3 個 PCIe 2.0 Combo PHY(可與 SATA/USB 共用)
簡單說,拆分的本質就是 “把 4 個PCIE 3.0 Lane 按需求拆成不同組合”,比如 4Lane×1、2Lane×2、2Lane+1Lane+1Lane,或是 1Lane×4,再通過設備樹(DTS)配置讓控制器與拆分后的 Lane 精準對接。
以PCIE 3.0拆分為示例,常見拆分組合直接套用:
4Lane×1:占用 3.0 PHY Port0+Port1 全通道,對接 4Lane 控制器
2Lane×2:Port0、Port1 各占 2Lane,分別對接 4Lane、2Lane 控制器
2Lane+1Lane+1Lane:Port0 占 2Lane,Port1 拆為兩個 1Lane,對接 3 個控制器
1Lane×4:Port0、Port1 各拆為兩個 1Lane,對接 4 個控制器
注意事項:拆分后若某組 PCIe 未使用,需將其禁用(disabled),但電源必須持續(xù)供電,否則會導致 PCIe 異常!
二、實戰(zhàn)配置:DTS 配置詳解
拆分的核心操作都在設備樹(DTS)中完成,無需修改驅動,關鍵配置分兩類:控制器配置和 PHY 配置。
2.1章控制器常用配置
compatible:指定工作模式(RC/EP),RK3588 需配置為 “rockchip,rk3588-pcie”(RC 模式)或 “rockchip,rk3588-pcie-ep”(EP 模式)
reset-gpios:必配項!設置 PERST# 復位信號,多 Lane 拆分時每個節(jié)點需配置不同引腳
num-lanes:Lane 數(shù)量,按實際拆分情況配置(如 1、2、4)
phys:指定 PHY 引用,Combo PHY 需同時聲明工作模式(如<&combphy1_ps PHY_TYPE_PCIE>)
2.2PHY 配置核心
PCIe 3.0 PHY 的模式配置是關鍵,直接決定拆分方式:
&pcie30phy { rockchip,pcie30-phymode =
不同拆分對應的模式參數(shù):
4Lane×1:PHY_MODE_PCIE_AGGREGATION(4)
2Lane×2:PHY_MODE_PCIE_NANBNB(0)
2Lane+1Lane+1Lane:PHY_MODE_PCIE_NANBBI(1)
1Lane×4:PHY_MODE_PCIE_NABIBI(3)
2.3典型場景配置示例
場景 1:3.0 4Lane RC + 2 個 2.0 1Lane

// 電源配置vcc3v3_pcie30: vcc3v3-pcie30 { compatible ="regulator-fixed"; regulator-name ="vcc3v3_pcie30"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; enable-active-high; gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>; startup-delay-us = <5000>; vin-supply = <&vcc12v_dcin>;};//Combo PHY使能&combphy1_ps { status ="okay"; };&combphy2_psu { status ="okay"; };//1Lane控制器配置&pcie2x1l0 { reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; rockchip,skip-scan-in-resume; status ="okay";};&pcie2x1l1 { reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; pinctrl-names ="default"; pinctrl-0= <&rtl8111_isolate>; status ="okay";};//3.0PHY配置(4Lane模式)&pcie30phy { rockchip,pcie30-phymode = ; status ="okay";};//4Lane控制器配置&pcie3x4 { reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc3v3_pcie30>; status ="okay";};
場景 2:3.0 拆分為 2 個 2Lane + 3 個 2.0 1Lane

核心修改:PHY 模式改為PHY_MODE_PCIE_NANBNB,4Lane 控制器配置num-lanes = <2>,啟用 2Lane 控制器(&pcie3x2)。
場景 3:3.0 拆分為 4 個 1Lane + 1 個 2.0 1Lane

核心修改:PHY 模式改為PHY_MODE_PCIE_NABIBI,4Lane、2Lane 控制器均配置num-lanes = <1>,禁用對應 Combo PHY。
三、硬件設計關鍵要點
軟件配置再完美,硬件不匹配也會功虧一簣,這3點必須注意:
1. 物理鏈路:確保拆分后的 Lane 與控制器的 TX/RX 信號對應,比如 1Lane×4 時,4 個通道需分別連接 PHY 的不同 Lane;RK3588 可支持多種 PCIe 模式的組合,最多可以 5 種模式同時使用。

2. 時鐘配置:3.0 的 REFCLKP/N 僅支持輸入,4 個 1Lane 拆分時需為每個通道單獨提供時鐘;2.0 的 REFCLKP/N 支持輸入 / 輸出,默認由 RK3588 提供;

3. 復位信號:每個拆分節(jié)點的 CLKREQ、WAKEN、PERST# 引腳必須獨立配置并對應,否則無法穩(wěn)定建立鏈路;

四、總結
由此我們可以看到,在RK3588中其PCIe拆分的核心精髓,在于對PCIe 3.0 PHY物理通道的靈活劃分,并與對應的控制器進行精準匹配。
成功拆分配置關鍵在于:
1、硬件設計:需要保證物理鏈路、時鐘、復位信號與拆分之后的通道配置一一對應。拆分本質上其實就是對于PCIE 3.0 PHY進行Lane通道的拆分,并將其與對應的控制器進行匹配和連接。
2、軟件設置:需要通過設備樹的配置來精確描述硬件鏈接,核心在于配置好PCIE PHY的相關模式,以及管理好各個控制器節(jié)點的復位信號以及使能狀態(tài)。
通過理解PCIE的資源分配圖,了解控制器以及PHYy之間的映射關系,注意DTS設備樹的配置方式,便能夠在開發(fā)過程中快速實現(xiàn)RK3588 PCIE 高速接口方案。
廣州眺望電子科技有限公司專注于嵌入式處理器模組的研發(fā)與應用,提供從硬件設計到驅動開發(fā),系統(tǒng)解決方案的全流程技術支持。歡迎關注我們的公眾號,獲取更多嵌入式項目開發(fā)實戰(zhàn)經驗。
-
嵌入式
+關注
關注
5203文章
20554瀏覽量
335821 -
PCIe
+關注
關注
16文章
1465瀏覽量
88755 -
RK3588
+關注
關注
8文章
571瀏覽量
7482
發(fā)布評論請先 登錄
RK3588 PCB推薦疊層及阻抗設計
RK3588 EVB開發(fā)板原理圖講解【八】 RK3588 power Tree
RK3576 vs RK3588:為何越來越多的開發(fā)者轉向RK3576?
RK3588 EVB 開發(fā)板介紹
RK3588J和RK3588是什么關系?
armsom:為何選擇rk3588開發(fā)與Jetson Nano引腳兼容的嵌入式產品
Banana Pi為何選擇rk3588開發(fā)與Jetson Nano引腳兼容的嵌入式產品
瑞芯微Toybrick TB-RK3588X開發(fā)板發(fā)售!助力開發(fā)者高效創(chuàng)新!
rk3588和rk3588s的區(qū)別
三分鐘快速上手RK3588開發(fā)板
一文搞懂?RK3588 PCIe:從硬件資源到拆分配置?+?避坑指南(含腦圖)
迅為電子RK3568+RK3588開發(fā)板資料煥新升級!多維度優(yōu)化助力開發(fā)者效率提升
開發(fā)者必備,10 分鐘搞定 RK3588 PCIE 拆分!
評論