伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RK3588平臺SSD PCIE調試踩坑記:不插SSD就死機?兩步搞定引腳與驅動配置

jf_44130326 ? 來源:Linux1024 ? 2026-02-02 17:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近看好多人因為pcie這個問題困擾,遂再更一版關于pcie調試的文章。

嵌入式開發中,PCIE接口SSD因高速讀寫特性,常作為RK瑞芯微)平臺的核心存儲方案。但調試時難免遇到詭異問題——比如插入SSD時一切正常,不插SSD系統就直接起不來,甚至改了配置后還偶發啟動失敗。

今天結合實際調試文檔,拆解這兩個典型坑的排查過程與解決方案,幫你避開PCIe SSD調試的隱形陷阱

一、初始坑:不插SSD,系統直接罷工

wKgZPGkanJeAdJX4AAEd8aB7PPo931.png


1.現象:插與不插,兩種命運

?正常場景:插入SSD后,系統啟動流暢,SSD能被正確識別并正常讀寫;

?異常場景:拔掉SSD,系統卡在啟動階段,無報錯日志,直接死機

2.排查:從時鐘定位到引腳配置

一開始懷疑電源PCIe鏈路問題,逐一排查后發現關鍵線索:

?測量PCIe相關電壓(如vpcie3v3):無論是否插SSD,電壓均穩定在3.3V,排除電源故障;

?示波器PCIe時鐘信號不插SSD時,時鐘引腳無輸出,插入后時鐘恢復正常——問題出在時鐘使能的控制邏輯。

進一步核對DTS(設備樹)配置,發現核心控制引腳PCIE30X4_CLKREQn_M1(對應GPIO4 RK_PB4)的配置存在問題:

//初始錯誤配置

pcie20x1_0_clkreqn_m1: pcie20x1-0-clkreqn-m1 {

rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; //浮空狀態

};

&pcfg_pull_none表示引腳處于浮空狀態:插入SSD時,SSD會主動拉低該引腳觸發時鐘輸出;不插SSD時,引腳電平懸空,無法觸發時鐘,導致系統啟動卡住。

3.解決方案:浮空下拉,讓引腳有個準信

只需修改引腳的拉取狀態,將浮空改為下拉,確保即使不插SSD,引腳也能維持穩定電平以觸發時鐘:

//修改后正確配置

pcie20x1_0_clkreqn_m1: pcie20x1-0-clkreqn-m1 {

rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; //下拉狀態

};

重新編譯燒錄后測試:不插SSD時,時鐘信號正常輸出,系統順利啟動——第一個坑解決!

二、二次坑:改了下拉,仍偶發死機

1.新現象:偶爾啟動失敗,無規律可循

解決初始問題后,測試中發現新情況:系統約有10%概率啟動失敗,重啟幾次又能恢復,無固定觸發條件,排查難度更高。

2.根因:驅動加載干擾引腳電平

再次核對DTS,發現&pcie3x4PCIe控制器節點)中,將之前修改的引腳配置關聯到了驅動:

//存在問題的PCIe控制器配置

&pcie3x4 {

reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;

vpcie3v3-supply = <&vcc3v3_pcie30>;

pinctrl-names = "default";

pinctrl-0 = <&pcie20x1_0_clkreqn_m1>; //引腳關聯驅動

status = "okay";

};

問題在于:驅動加載時,會動態調整關聯引腳的電平,導致PCIE30X4_CLKREQn_M1引腳有時高、有時低,電平不確定性觸發PCIe鏈路初始化失敗——這也是啟動失敗無規律的原因。

查閱RK官方原理圖與配置說明后確認:該引腳無需關聯PCIe驅動,需獨立控制以保證電平穩定。

3.終局解決方案:刪關聯+獨立配置,徹底穩電平

分兩步修改,徹底隔絕驅動對引腳的干擾:

步驟1:刪除PCIe驅動與引腳的關聯

修改&pcie3x4節點,注釋或刪除pinctrl-0配置,斷開驅動與引腳的綁定:

//修改后的PCIe控制器配置

&pcie3x4 {

reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;

vpcie3v3-supply = <&vcc3v3_pcie30>;

pinctrl-names = "default";

//注釋關聯配置:避免驅動干擾引腳電平

// pinctrl-0 = <&pcie20x1_0_clkreqn_m1>;

status = "okay";

};

步驟2:單獨配置引腳為固定電平調節器

新增pcie3x4_clkreqn_m1節點,將引腳配置為regulator-fixed(固定調節器)類型,強制拉低并確保啟動階段穩定:

//獨立引腳配置(關鍵)

pcie3x4_clkreqn_m1: pcie3x4-clkreqn-m1{

compatible = "regulator-fixed"; //固定電平類型

gpio = <&gpio4 RK_PB4 GPIO_ACTIVE_LOW>; //低電平有效

pinctrl-names = "default";

pinctrl-0 = <&pcie20x1_0_clkreqn_m1>; //引用下拉配置

regulator-name = "pcie3x4_clkreqn_m1";

enable-active-low; //使能信號低電平有效

start-delays-us = <5000>; //啟動延遲5000微秒(避免沖擊)

off-on-delay-us = <5000>; //切換延遲5000微秒

regulator-always-on; //引腳始終保持使能

regulator-boot-on; //系統啟動階段即開啟

};

?start-delays-usoff-on-delay-us:避免引腳電平突變導致的鏈路誤判;

?regulator-always-onregulator-boot-on:確保從系統上電到啟動完成,引腳始終維持穩定低電平。

修改后經過百次啟動測試:無論是否插SSD,系統均100%正常啟動,偶發故障徹底解決!

三、調試核心要點:3避坑準則

1.引腳拉取狀態:拒絕浮空,優先下拉

PCIeCLKREQn類控制引腳(如本文的GPIO4 RK_PB4),需避免&pcfg_pull_none(浮空),不插設備時會因電平不確定斷時鐘,下拉(&pcfg_pull_down)是更安全的選擇。

2.驅動關聯:控制引腳別綁驅動

PCIe核心數據引腳(如時鐘控制、復位),無需在&pcie3x4等控制器節點中通過pinctrl-0關聯驅動,否則驅動加載會干擾電平穩定性。

3.獨立配置:用regulator-fixed穩電平

關鍵控制引腳建議按固定調節器配置,加上延遲參數(如5000us)和始終開啟屬性,從硬件層面杜絕電平波動。

結尾

PCIe調試常因引腳電平”“驅動關聯這類細節卡殼,看似詭異的故障,往往藏在DTS的幾行配置里。你在RK平臺調試PCIe設備時,還遇到過哪些?歡迎在評論區分享,一起避坑提效!



聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5204

    文章

    20562

    瀏覽量

    336005
  • SSD
    SSD
    +關注

    關注

    21

    文章

    3137

    瀏覽量

    122412
  • 引腳
    +關注

    關注

    16

    文章

    2115

    瀏覽量

    55933
  • RK3588
    +關注

    關注

    8

    文章

    575

    瀏覽量

    7490
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    RK3588編解碼盒子之RTL8211FS-CG光口調試

    本文是基于RK3588平臺,SDK版本:RK3588_ANDROID12.0 RTL8211FS-CG光口調試總結。
    的頭像 發表于 06-10 09:00 ?4820次閱讀
    <b class='flag-5'>RK3588</b>編解碼盒子之RTL8211FS-CG光口<b class='flag-5'>調試</b>

    RK3588-MIPI屏幕調試筆記:RK3588-MIPI-DSI之屏參配置

    RK3588-MIPI屏幕調試筆記:RK3588-MIPI-DSI之屏參配置
    的頭像 發表于 06-10 10:36 ?4730次閱讀
    <b class='flag-5'>RK3588</b>-MIPI屏幕<b class='flag-5'>調試</b>筆記:<b class='flag-5'>RK3588</b>-MIPI-DSI之屏參<b class='flag-5'>配置</b>

    BSP調試#03:Ethernet(RK3588

    本合集的是我當初調試 RK3588 平臺時的 原始筆記 ——只保留了那些的問題接口,沒出過問題的內容全刪掉了。文章框架如下: 其中,“
    的頭像 發表于 04-03 15:53 ?2407次閱讀
    BSP<b class='flag-5'>調試</b>#03:Ethernet(<b class='flag-5'>RK3588</b>)

    ROC-RK3588S-PC開發板支持SATA協議的SSD使用

    簡介ROC-RK3588S-PC 開發板上有 1 個 M.2 接口。可以軟件配置成 M.2 SATA3.0 接口,支持 SATA 協議的 SSD 使用,也可以軟件配置成 M.2
    發表于 07-12 17:44

    RK3588S(Android 12) M.2接口的配置與使用手冊指南

    1、ROC-RK3588S-PC (Android 12) M.2接口的配置與使用ROC-RK3588S-PC 開發板上有 1 個 M.2 接口:可以軟件配置成 M.2 SATA3.0
    發表于 08-18 17:32

    RK3588-MIPI屏幕調試筆記:RK3588-MIPI-DSI

    RK3588-MIPI屏幕調試筆記:RK3588-MIPI-DSI
    的頭像 發表于 06-10 10:31 ?7965次閱讀
    <b class='flag-5'>RK3588</b>-MIPI屏幕<b class='flag-5'>調試</b>筆記:<b class='flag-5'>RK3588</b>-MIPI-DSI

    RK3588RK3399的區別

    存儲器,并且支持PCIe4.0和USB 3.2 Gen1接口,可實現高速傳輸和多設備連接。在AI方面,RK3588支持多種神經網絡,如ResNet、SSD、YOLO、FCN等,并可以通過開放的SDK進行
    的頭像 發表于 08-15 17:04 ?9927次閱讀

    Banana Pi BPI-W3 RK3588平臺驅動調試篇 [ PCIE篇一 ] - PCIE的開發指南

    RK3588共有5個PCIe的控制器,硬件IP是?樣的,配置?樣,其中?個4Lane DM模式可以?持作為EP使?,另外?個2Lane和3個1Lane控制器均只能作為RC使?。
    的頭像 發表于 11-02 09:22 ?4425次閱讀
    Banana Pi BPI-W3 <b class='flag-5'>RK3588</b><b class='flag-5'>平臺</b><b class='flag-5'>驅動</b><b class='flag-5'>調試</b>篇 [ <b class='flag-5'>PCIE</b>篇一 ] - <b class='flag-5'>PCIE</b>的開發指南

    Banana Pi BPI-W3 RK3588平臺驅動調試篇 [ PCIE篇二 ] - PCIE的開發指南

    Banana Pi BPI-W3 RK3588平臺驅動調試篇 [ PCIE篇 ] - PCIE
    的頭像 發表于 11-02 09:24 ?2102次閱讀
    Banana Pi BPI-W3 <b class='flag-5'>RK3588</b><b class='flag-5'>平臺</b><b class='flag-5'>驅動</b><b class='flag-5'>調試</b>篇 [ <b class='flag-5'>PCIE</b>篇二 ] - <b class='flag-5'>PCIE</b>的開發指南

    RK3588 PCIe設備識別失敗?一招避“非法Class”陷阱

    前言:在RK3588平臺開發過程中,你是否遇到過這樣的窘境:明明PCIe總線上掛好了網卡模塊,lspci能識別到芯片,可驅動就是加載失敗,排查半天找不到關鍵問題?別慌!本文將帶你一
    的頭像 發表于 08-29 08:32 ?1944次閱讀
    <b class='flag-5'>RK3588</b> <b class='flag-5'>PCIe</b>設備識別失敗?一招避<b class='flag-5'>坑</b>“非法Class”陷阱

    開發者必備,10 分鐘搞定 RK3588 PCIE 拆分!

    前言:在嵌入式開發中,PCIe接口的靈活配置直接影響設備擴展能力與性能發揮。RK3588作為旗艦芯片,其PCIe拆分機制更是讓硬件設計與軟件調試
    的頭像 發表于 11-13 08:31 ?1568次閱讀
    開發者必備,10 分鐘<b class='flag-5'>搞定</b> <b class='flag-5'>RK3588</b> <b class='flag-5'>PCIE</b> 拆分!

    RK3588平臺雙存儲(SPI+PCIE)OTA升級方案教學文檔

    在嵌入式設備中,單一存儲介質可能存在容量限制或可靠性風險。RK3588 平臺的雙存儲 OTA 升級方案支持SPI(如 SPI NAND/NOR)與 PCIE 存儲(如 PCIE
    的頭像 發表于 02-01 16:46 ?1726次閱讀
    <b class='flag-5'>RK3588</b><b class='flag-5'>平臺</b>雙存儲(SPI+<b class='flag-5'>PCIE</b>)OTA升級方案教學文檔

    一文搞懂?RK3588 PCIe:從硬件資源到拆分配置?+?避指南(含腦圖)

    資源解析、 3? 大拆分方案實戰、關鍵配置步驟及避要點,附帶可視化腦圖,助力開發者快速落地? PCIe? 相關項目。 ? ? ? 一、 RK3588
    的頭像 發表于 11-20 18:18 ?4418次閱讀
    一文搞懂?<b class='flag-5'>RK3588</b> <b class='flag-5'>PCIe</b>:從硬件資源到拆分<b class='flag-5'>配置</b>?+?避<b class='flag-5'>坑</b>指南(含腦圖)

    實戰復盤:RK3588 SPI+PCIe3x4方案啟動修復,從節點配置驅動適配全解析

    ? ? ? 在 RK3588 嵌入式項目中, “ 接口配置匹配 ” 是高頻點 —— 近期 基于 linux6.1 內核
    的頭像 發表于 01-08 10:24 ?566次閱讀
    實戰復盤:<b class='flag-5'>RK3588</b> SPI+<b class='flag-5'>PCIe</b>3x4方案啟動修復,從節點<b class='flag-5'>配置</b>到<b class='flag-5'>驅動</b>適配全解析

    保姆級教程!RK3588 Linux6.1?固件簽名完整實現方案(不含rootfs)

    內核)上實操固件簽名時,了不少官方文檔的,經過反復調試終于打通全流程。今天就把這份實戰經驗整理成保姆級教程,從配置到問題排查,一步步
    的頭像 發表于 01-14 17:21 ?2125次閱讀
    保姆級教程!<b class='flag-5'>RK3588</b> Linux6.1?固件簽名完整實現方案(不含rootfs)