91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RK3588平臺SSD PCIE調(diào)試踩坑記:不插SSD就死機(jī)?兩步搞定引腳與驅(qū)動配置

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

掃碼添加小助手

加入工程師交流群

最近看好多人因?yàn)閜cie這個(gè)問題困擾,遂再更一版關(guān)于pcie調(diào)試的文章。

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

今天結(jié)合實(shí)際調(diào)試文檔,拆解這兩個(gè)典型坑的排查過程與解決方案,幫你避開PCIe SSD調(diào)試的隱形陷阱。

一、初始坑:不插SSD,系統(tǒng)直接罷工

wKgZPGkanJeAdJX4AAEd8aB7PPo931.png


1.現(xiàn)象:插與不插,兩種命運(yùn)

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

?異常場景:拔掉SSD,系統(tǒng)卡在啟動階段,無報(bào)錯(cuò)日志,直接死機(jī)。

2.排查:從時(shí)鐘定位到引腳配置

一開始懷疑電源PCIe鏈路問題,逐一排查后發(fā)現(xiàn)關(guān)鍵線索:

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

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

進(jìn)一步核對DTS(設(shè)備樹)配置,發(fā)現(xiàn)核心控制引腳PCIE30X4_CLKREQn_M1(對應(yīng)GPIO4 RK_PB4)的配置存在問題:

//初始錯(cuò)誤配置

pcie20x1_0_clkreqn_m1: pcie20x1-0-clkreqn-m1 {

rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; //浮空狀態(tài)

};

&pcfg_pull_none表示引腳處于浮空狀態(tài):插入SSD時(shí),SSD會主動拉低該引腳觸發(fā)時(shí)鐘輸出;不插SSD時(shí),引腳電平懸空,無法觸發(fā)時(shí)鐘,導(dǎo)致系統(tǒng)啟動卡住。

3.解決方案:浮空下拉,讓引腳有個(gè)準(zhǔn)信

只需修改引腳的拉取狀態(tài),將浮空改為下拉,確保即使不插SSD,引腳也能維持穩(wěn)定電平以觸發(fā)時(shí)鐘:

//修改后正確配置

pcie20x1_0_clkreqn_m1: pcie20x1-0-clkreqn-m1 {

rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; //下拉狀態(tài)

};

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

二、二次坑:改了下拉,仍偶發(fā)死機(jī)

1.新現(xiàn)象:偶爾啟動失敗,無規(guī)律可循

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

2.根因:驅(qū)動加載干擾引腳電平

再次核對DTS,發(fā)現(xiàn)&pcie3x4PCIe控制器節(jié)點(diǎn))中,將之前修改的引腳配置關(guān)聯(lián)到了驅(qū)動:

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

&pcie3x4 {

reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;

vpcie3v3-supply = <&vcc3v3_pcie30>;

pinctrl-names = "default";

pinctrl-0 = <&pcie20x1_0_clkreqn_m1>; //引腳關(guān)聯(lián)驅(qū)動

status = "okay";

};

問題在于:驅(qū)動加載時(shí),會動態(tài)調(diào)整關(guān)聯(lián)引腳的電平,導(dǎo)致PCIE30X4_CLKREQn_M1引腳有時(shí)高、有時(shí)低,電平不確定性觸發(fā)PCIe鏈路初始化失敗——這也是啟動失敗無規(guī)律的原因。

查閱RK官方原理圖與配置說明后確認(rèn):該引腳無需關(guān)聯(lián)PCIe驅(qū)動,需獨(dú)立控制以保證電平穩(wěn)定。

3.終局解決方案:刪關(guān)聯(lián)+獨(dú)立配置,徹底穩(wěn)電平

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

步驟1:刪除PCIe驅(qū)動與引腳的關(guān)聯(lián)

修改&pcie3x4節(jié)點(diǎn),注釋或刪除pinctrl-0配置,斷開驅(qū)動與引腳的綁定:

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

&pcie3x4 {

reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;

vpcie3v3-supply = <&vcc3v3_pcie30>;

pinctrl-names = "default";

//注釋關(guān)聯(lián)配置:避免驅(qū)動干擾引腳電平

// pinctrl-0 = <&pcie20x1_0_clkreqn_m1>;

status = "okay";

};

步驟2:單獨(dú)配置引腳為固定電平調(diào)節(jié)器

新增pcie3x4_clkreqn_m1節(jié)點(diǎn),將引腳配置為regulator-fixed(固定調(diào)節(jié)器)類型,強(qiáng)制拉低并確保啟動階段穩(wěn)定:

//獨(dú)立引腳配置(關(guān)鍵)

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; //系統(tǒng)啟動階段即開啟

};

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

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

修改后經(jīng)過百次啟動測試:無論是否插SSD,系統(tǒng)均100%正常啟動,偶發(fā)故障徹底解決!

三、調(diào)試核心要點(diǎn):3個(gè)避坑準(zhǔn)則

1.引腳拉取狀態(tài):拒絕浮空,優(yōu)先下拉

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

2.驅(qū)動關(guān)聯(lián):控制引腳別綁驅(qū)動

PCIe核心數(shù)據(jù)引腳(如時(shí)鐘控制、復(fù)位),無需在&pcie3x4等控制器節(jié)點(diǎn)中通過pinctrl-0關(guān)聯(lián)驅(qū)動,否則驅(qū)動加載會干擾電平穩(wěn)定性。

3.獨(dú)立配置:用regulator-fixed穩(wěn)電平

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

結(jié)尾

PCIe調(diào)試常因引腳電平”“驅(qū)動關(guān)聯(lián)這類細(xì)節(jié)卡殼,看似詭異的故障,往往藏在DTS的幾行配置里。你在RK平臺調(diào)試PCIe設(shè)備時(shí),還遇到過哪些?歡迎在評論區(qū)分享,一起避坑提效!



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5198

    文章

    20436

    瀏覽量

    333946
  • SSD
    SSD
    +關(guān)注

    關(guān)注

    21

    文章

    3108

    瀏覽量

    122221
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    2111

    瀏覽量

    55680
  • RK3588
    +關(guān)注

    關(guān)注

    8

    文章

    555

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    RK3588編解碼盒子之RTL8211FS-CG光口調(diào)試

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

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSI之屏參配置

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

    求一種基于RK3588實(shí)現(xiàn)SPI-NOR大容量存儲方案

    1、基于RK3588S自研平板方案實(shí)現(xiàn)硬件存儲CPU: RK3588SDDR: LPDDR5 8GBNOR: SPI接口 32MB容量SSDPCIE接口 256GB容量軟件版本要求
    發(fā)表于 05-23 14:20

    ROC-RK3588S-PC開發(fā)板支持SATA協(xié)議的SSD使用

    簡介ROC-RK3588S-PC 開發(fā)板上有 1 個(gè) M.2 接口??梢攒浖?b class='flag-5'>配置成 M.2 SATA3.0 接口,支持 SATA 協(xié)議的 SSD 使用,也可以軟件配置成 M.2
    發(fā)表于 07-12 17:44

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

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

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSI

    RK3588-MIPI屏幕調(diào)試筆記:RK3588-MIPI-DSI
    的頭像 發(fā)表于 06-10 10:31 ?7699次閱讀
    <b class='flag-5'>RK3588</b>-MIPI屏幕<b class='flag-5'>調(diào)試</b>筆記:<b class='flag-5'>RK3588</b>-MIPI-DSI

    RK3588RK3399的區(qū)別

    存儲器,并且支持PCIe4.0和USB 3.2 Gen1接口,可實(shí)現(xiàn)高速傳輸和多設(shè)備連接。在AI方面,RK3588支持多種神經(jīng)網(wǎng)絡(luò),如ResNet、SSD、YOLO、FCN等,并可以通過開放的SDK進(jìn)行
    的頭像 發(fā)表于 08-15 17:04 ?9758次閱讀

    Banana Pi BPI-W3 RK3588平臺驅(qū)動調(diào)試篇 [ PCIE篇一 ] - PCIE的開發(fā)指南

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

    Banana Pi BPI-W3 RK3588平臺驅(qū)動調(diào)試篇 [ PCIE篇二 ] - PCIE的開發(fā)指南

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

    RK3588 PCIe設(shè)備識別失???一招避“非法Class”陷阱

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

    開發(fā)者必備,10 分鐘搞定 RK3588 PCIE 拆分!

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

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

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

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

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

    實(shí)戰(zhàn)復(fù)盤:RK3588 SPI+PCIe3x4方案啟動修復(fù),從節(jié)點(diǎn)配置驅(qū)動適配全解析

    ? ? ? 在 RK3588 嵌入式項(xiàng)目中, “ 接口配置匹配 ” 是高頻點(diǎn) —— 近期 基于 linux6.1 內(nèi)核
    的頭像 發(fā)表于 01-08 10:24 ?341次閱讀
    實(shí)戰(zhàn)復(fù)盤:<b class='flag-5'>RK3588</b> SPI+<b class='flag-5'>PCIe</b>3x4方案啟動修復(fù),從節(jié)點(diǎn)<b class='flag-5'>配置</b>到<b class='flag-5'>驅(qū)動</b>適配全解析

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

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