国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

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

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

jf_44130326 ? 來源:Linux1024 ? 作者:Linux1024 ? 2026-01-08 10:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

RK3588嵌入式項目中,接口配置不匹配是高頻踩坑點——近期基于linux6.1內(nèi)核調(diào)試SPI閃存+PCIe3x4外設(shè)方案時,就遇到了“eMMC方案正常,切換后系統(tǒng)卡死的問題。核心癥結(jié)不僅是驅(qū)動適配,更在于PCIe3x4節(jié)點的硬件參數(shù)未對齊。本文將聚焦pcie3x4接口的關(guān)鍵配置,結(jié)合驅(qū)動優(yōu)化與系統(tǒng)掛載同步,完整拆解解決方案,幫你避開同類陷阱。

一、問題背景:PCIe3x4接口成啟動瓶頸

wKgZPGlfFX6AC5eWAAXG15miHhM769.png

RK3588支持多組PCIe接口(如pcie3x2pcie3x4),不同接口的lane數(shù)、復(fù)位引腳、供電要求差異極大。我們的項目需求是:

?存儲介質(zhì):SPI閃存(存儲uboot);

?擴展接口:PCIe3x4(需工作在2 lane模式,存儲kernelrootfs)。

但實際調(diào)試時,系統(tǒng)啟動直接卡死,串口日志報兩類關(guān)鍵錯誤:

1.PCIe相關(guān):rk-pcie fe150000.pcie: fail to init phy, err -110PHY初始化失敗)、PCIe Link Fail, LTSSM is 0x0(鏈路未建立);

2.系統(tǒng)掛載:Waiting for root device PARTUUID=614e0000-0000...(根分區(qū)UUID不匹配)。

對比eMMC方案,問題根源清晰:PCIe3x4節(jié)點配置未識別硬件,且存儲的根分區(qū)配置未同步

二、排查與修復(fù):三步搞定PCIe3x4+SPI啟動

1.第一步:修正PCIe3x4節(jié)點配置——硬件參數(shù)必須對齊

RK3588PCIe接口需通過設(shè)備樹(DTS)指定硬件參數(shù),默認配置往往與實際版型不匹配。我們最終確定的pcie3x4節(jié)點正確配置如下,每一項參數(shù)都需對應(yīng)硬件設(shè)計:

&pcie3x4 {num-lanes = <2>; //關(guān)鍵:根據(jù)硬件設(shè)計設(shè)為2lane(非默認4lane)//reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;//適配“RK57”版型,當前不用reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;//關(guān)鍵:“RN01”版型的復(fù)位引腳vpcie3v3-supply = <&vcc3v3_pcie30>;//供電:PCIe3.0標準3.3V供電pinctrl-names ="default";//啟用默認引腳控制status ="okay";//啟用接口(默認可能為“disabled”)};

關(guān)鍵參數(shù)解讀(避坑重點):

?num-lanes = <2>PCIe3x4接口支持1/2/4 lane,但硬件若只布了2 lane線路,設(shè)為4 lane會導(dǎo)致鏈路協(xié)商失敗;

?reset-gpios:復(fù)位引腳必須與硬件原理圖一致錯配會導(dǎo)致PCIe設(shè)備無法復(fù)位初始化;

?vpcie3v3-supply:必須關(guān)聯(lián)正確的3.3V電源域(vcc3v3_pcie30),供電缺失會直接報PHY初始化錯誤(err -110)。

2.第二步:優(yōu)化PCIe驅(qū)動——解決PHY初始化與DMA適配

僅配置節(jié)點還不夠,需修復(fù)驅(qū)動中適配性問題,確保pcie3x4接口穩(wěn)定工作:

1)修復(fù)PCIe PHY初始化邏輯(phy-rockchip-snps-pcie3.c

原驅(qū)動中SRAM初始化判斷與超時定義存在問題,導(dǎo)致PHY啟動超時:

// 原代碼:判斷條件過嚴,超時定義不通用-#defineRK3588_SRAM_INIT_DONE(reg)((reg & 0xff) == 0x49)-#defineRK3588_SRAM_INIT_TIMEOUT20000// 修改后:寬松且準確的判斷,通用超時宏+#defineRK3588_SRAM_INIT_DONE(reg)((reg & 0xf) == 0xf)+#defineRK_PCIE_SRAM_INIT_TIMEOUT20000// 新增PHY校準函數(shù)(適配pcie3x4的信號校準)+staticintrockchip_p3phy_rk3588_calibrate(structrockchip_p3phy_priv *priv)+{+intret =0;+u32 reg;+// 等待PHY0初始化完成(pcie3x4核心PHY)+ret = regmap_read_poll_timeout(priv->phy_grf,+    RK3588_PCIE3PHY_GRF_PHY0_STATUS1,+    reg, RK3588_SRAM_INIT_DONE(reg),+   100, RK_PCIE_SRAM_INIT_TIMEOUT);+// 若為聚合模式,需同時校準PHY1+if(priv->pcie30_phymode == PHY_MODE_PCIE_AGGREGATION) {+ret |= regmap_read_poll_timeout(priv->phy_grf,+RK3588_PCIE3PHY_GRF_PHY1_STATUS1,+reg, RK3588_SRAM_INIT_DONE(reg),+100, RK_PCIE_SRAM_INIT_TIMEOUT);+}+if(ret)+pr_err("pcie3x4 PHY calibrate failed, check refclk/powern");+returnret;+}// 關(guān)聯(lián)校準函數(shù)到RK3588操作集staticconststructrockchip_p3phy_ops rk3588_ops = {.phy_init = rockchip_p3phy_rk3588_init,+.phy_calibrate = rockchip_p3phy_rk3588_calibrate,// 啟用校準};

2)適配PCIe DMA初始化(pcie-dw-rockchip.c

原驅(qū)動未處理DMA對象的場景,導(dǎo)致驅(qū)動異常退出,需補充判斷:

staticintrk_pcie_init_dma_trx(structrk_pcie *rk_pcie){if(IS_ERR(rk_pcie->dma_obj)) {dev_err(rk_pcie->pci->dev,"failed to prepare dmatestn");return-EINVAL;+// 新增:無DMA對象時正常返回(避免驅(qū)動崩潰)+}elseif(!rk_pcie->dma_obj) {/* !CONFIG_ROCKCHIP_PCIE_DMA_OBJ */+return0;}// 啟用客戶端讀寫中斷(保留原邏輯)...}

修改后重新編譯內(nèi)核,串口日志顯示pcie3x4接口正常啟動

rk-pcie fe150000.pcie: PCIe Link up, LTSSM is 0x30011——鏈路協(xié)商成功。

3.第三步:同步pcie根分區(qū)UUID——解決找不到根設(shè)備

pcie的根分區(qū)UUIDeMMC完全不同,需從編譯日志獲取真實UUID,并同步到兩處配置:

wKgZPGlfFX6AHEB8AAAhHHujxiQ943.png

1)從編譯日志取UUID(關(guān)鍵!避免手動猜測)

wKgZPGlfFX6AQME5AAAnCJpew2Y116.png

生成根文件系統(tǒng)(rootfs)時,編譯日志會明確輸出UUID

FilesystemUUID: c2ebb35f-b6ea-47ac-94e7-eeb1c99df3cb // 這是ssd根分區(qū)的真實UUID

2)同步修改parameter.txtbootargs

?修改device/rockchip/.chips/rk3588/parameter.txt:更新rootfsUUID

-uuid:rootfs=4b74bac5-ff38-46be-ae91-7452df777ae8 // 原eMMC的UUID+uuid:rootfs=c2ebb35f-b6ea-47ac-94e7-eeb1c99df3cb // ssd的UUID(來自編譯日志)uuid:boot=7A3F0000-0000-446A-8000-702F00006273

?修改kernel-6.1/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi:同步bootargs的根分區(qū)配置,并添加ssdUUID

chosen: chosen {-  bootargs ="earlycon=uart8250,mmio32,0xfeb50000 ... root=PARTUUID=614e0000-0000 ... mtdparts=sfc_nor:0x00040000@0x00180000(vnvm),0x00800000@0x00800000(uboot)";+  bootargs ="earlycon=uart8250,mmio32,0xfeb50000 ... root=PARTUUID=c2ebb35f-b6ea ... mtdparts=sfc_nor:0x00040000@0x00180000(vnvm),0x00800000@0x00800000(uboot),-@0x00A00000(test_data:grow)";};

注:root=PARTUUID只需填前16位(c2ebb35f-b6ea),系統(tǒng)即可識別;test_data:growSPI的擴展分區(qū),主要用于測試,按需添加。

三、最終驗證:PCIe3x4+SPI方案正常工作

完成上述修改后,燒錄鏡像測試,結(jié)果符合預(yù)期:

1.PCIe3x4外設(shè)lspci命令能識別到PCIe設(shè)備(如NVMe硬盤),讀寫速度正常;

2.系統(tǒng)啟動:無等待根設(shè)備報錯;

3.穩(wěn)定性PCIe鏈路無斷開,ssd存儲讀寫無異常。

四、關(guān)鍵修改總結(jié)

本次修復(fù)的核心是硬件參數(shù)對齊+配置同步,關(guān)鍵修改點整理如下:

模塊

修改文件路徑

核心修改內(nèi)容

PCIe3x4節(jié)點配置

kernel-6.1/arch/arm64/boot/dts/rockchip/xxx.dtsi(如rk3588-evb7-v11.dtsi

設(shè)置num-lanes=2reset-gpios=gpio1 RK_PB2status="okay"

PCIe PHY驅(qū)動

kernel-6.1/drivers/phy/rockchip/phy-rockchip-snps-pcie3.c

修復(fù)SRAM初始化判斷,新增rockchip_p3phy_rk3588_calibrate校準函數(shù)

PCIe DMA驅(qū)動

kernel-6.1/drivers/pci/controller/dwc/pcie-dw-rockchip.c

補充DMA對象的判斷邏輯,避免驅(qū)動崩潰

根分區(qū)UUID同步

device/rockchip/.chips/rk3588/parameter.txt

更新uuid:rootfspcie根分區(qū)UUID(來自編譯日志)

系統(tǒng)啟動參數(shù)

kernel-6.1/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi

同步bootargsroot=PARTUUID

內(nèi)核配置優(yōu)化

kernel-6.1/arch/arm64/configs/rk3588_linux.config

新增CONFIG_RCU_FAST_NO_HZ=y,提升系統(tǒng)實時性

五、嵌入式開發(fā)啟示:細節(jié)決定適配成敗

1.PCIe接口配置硬軟必須對齊lane數(shù)、復(fù)位引腳、供電域需1:1對應(yīng)硬件原理圖,尤其是不同版型的引腳差異,錯配必出問題;

2.UUID從編譯日志取,不猜不試pcie/eMMC的根分區(qū)UUID不同,手動填寫易出錯,直接從rootfs編譯日志復(fù)制最準確;

3.驅(qū)動調(diào)試抓日志,看關(guān)鍵值PHY初始化失敗(err -110)先查供電/復(fù)位,鏈路失敗(LTSSM=0x0)先查lane數(shù)與引腳配置,日志是最佳線索。

如果你的RK3588項目也在PCIe+SPI方案上卡殼,不妨對照本文檢查節(jié)點配置與UUID同步——多數(shù)時候,問題都藏在這些細節(jié)里。歡迎在評論區(qū)分享你的調(diào)試經(jīng)驗~


審核編輯 黃宇

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

    關(guān)注

    17

    文章

    1885

    瀏覽量

    101210
  • PCIe
    +關(guān)注

    關(guān)注

    16

    文章

    1460

    瀏覽量

    88391
  • RK3588
    +關(guān)注

    關(guān)注

    8

    文章

    556

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    RK3588操控終端

    RK3588操控終端全國產(chǎn)化無人裝備手持操控終端,搭載工業(yè)級瑞芯微RK3588J芯片,適配麒麟等自主操作系統(tǒng),硬件核心到軟件應(yīng)用實現(xiàn) 100% 國產(chǎn)化,徹底擺脫外部技術(shù)依賴。設(shè)備標配
    發(fā)表于 02-28 09:42

    你的專屬“數(shù)字員工”已到崗!迅為RK3588系列適配OpenClaw

    你的專屬“數(shù)字員工”已到崗!迅為RK3588系列適配OpenClaw
    的頭像 發(fā)表于 02-27 15:33 ?312次閱讀
    你的專屬“數(shù)字員工”已到崗!迅為<b class='flag-5'>RK3588</b>系列<b class='flag-5'>適配</b>OpenClaw

    RK3588 CPU?隔離:AB/非?AB?系統(tǒng)雙方案適配實戰(zhàn)

    方案 ,兩套方案代碼均完整可直接套用,核心差異僅在于 代碼集成路徑與函數(shù)調(diào)用時機 ,且均支持通過vendor_storage動態(tài)配置隔離核心,無需反復(fù)編譯固件,重啟即可生效。下文將從隔離原理、適用場景、雙
    的頭像 發(fā)表于 02-09 07:12 ?222次閱讀
    <b class='flag-5'>RK3588</b> CPU?隔離:AB/非?AB?系統(tǒng)雙<b class='flag-5'>方案</b><b class='flag-5'>適配</b><b class='flag-5'>實戰(zhàn)</b>

    RK3588 PCIe?壓測:崩潰排障的流程解析

    ? ? ? ? ? ? 在 RK3588 平臺上進行 PCIe 設(shè)備(如 NVMe SSD )壓測時,不少開發(fā)者遇到過這樣的 “ 噩夢 ” :高負載下系統(tǒng)突然失去響應(yīng),日志里滿是異常信息,甚至直接
    的頭像 發(fā)表于 02-06 07:11 ?367次閱讀
    <b class='flag-5'>RK3588</b> <b class='flag-5'>PCIe</b>?壓測:<b class='flag-5'>從</b>崩潰<b class='flag-5'>到</b>排障的<b class='flag-5'>全</b>流程<b class='flag-5'>解析</b>

    一文打通Rockchip DP調(diào)試:原理到實戰(zhàn),覆蓋RK3399/RK3576/RK3588平臺

    嵌入式開發(fā)中,DisplayPort(DP)接口的調(diào)試常讓工程師頭疼 —— 不同芯片特性差異大、Type-C 與標準口配置不同、高分辨率輸出異常、MST 多屏適配難… 尤其是 Rockchip RK3399、
    的頭像 發(fā)表于 02-04 16:14 ?329次閱讀
    一文打通Rockchip DP調(diào)試:<b class='flag-5'>從</b>原理到<b class='flag-5'>實戰(zhàn)</b>,覆蓋<b class='flag-5'>RK</b>3399/<b class='flag-5'>RK</b>3576/<b class='flag-5'>RK3588</b><b class='flag-5'>全</b>平臺

    調(diào)試RK3588必看!這個臨時設(shè)備樹文件,藏著你要的所有配置答案

    ”——rk3588-evb7-v11-linux.dtb.dts.tmp。不少人以為它是編譯過程的“臨時垃圾”,看完這篇你就知道:它其實是解決硬件適配、內(nèi)核啟動問題的“調(diào)試鑰匙”。
    的頭像 發(fā)表于 02-03 15:55 ?1068次閱讀
    調(diào)試<b class='flag-5'>RK3588</b>必看!這個臨時設(shè)備樹文件,藏著你要的所有<b class='flag-5'>配置</b>答案

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

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

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

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

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

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

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

    RK3588PCIE拆分的核心邏輯、配置步驟與實戰(zhàn)技巧,輕松上手!一、RK3588PCIE拆分映射關(guān)系圖PCIE的拆分機制的核心主要在于對于
    的頭像 發(fā)表于 11-13 08:31 ?1402次閱讀
    開發(fā)者必備,10 分鐘搞定 <b class='flag-5'>RK3588</b> <b class='flag-5'>PCIE</b> 拆分!

    RK這2款旗艦芯片RK3588 PK RK3576,誰是最優(yōu)選

    架構(gòu)來看,RK3588 的 Cortex - A75 和 Cortex - A55 核心在緩存配置上更為先進,尤其是 L3 緩存的共享機制可能使其在多核心協(xié)作和數(shù)據(jù)讀取方面具有優(yōu)勢。RK
    發(fā)表于 07-10 18:24

    RK3576 vs RK3588:為何越來越多的開發(fā)者轉(zhuǎn)向RK3576?

    、商顯設(shè)備)。 RK3588 的 8K@60fps 更適合超高清視頻處理(如高端電視盒子、AI 視覺設(shè)備)。 RK3576 存儲選擇更靈活,可搭配低成本方案(如 SPI NAND),而
    發(fā)表于 05-30 08:46

    RK3588參數(shù)與主要特性 RK3588數(shù)據(jù)手冊解讀

    RK3588參數(shù)與主要特性 RK3588數(shù)據(jù)手冊解讀
    的頭像 發(fā)表于 05-19 18:34 ?1.3w次閱讀
    <b class='flag-5'>RK3588</b>參數(shù)與主要特性  <b class='flag-5'>RK3588</b>數(shù)據(jù)手冊解讀

    RK3588核心板在邊緣AI計算中的顛覆性優(yōu)勢與場景落地

    RK3588方案:單板集成8路1080P視頻結(jié)構(gòu)化分析,通過NPU運行LPR算法,功耗<10W,識別準確率92%提升至98%。 成本優(yōu)化:硬件成本降低40%,無需散熱風扇,壽命延長3
    發(fā)表于 04-15 10:48

    《工業(yè)4.0新基建:RK3588核心板如何賦能智能制造鏈路》

    ,集成Linux/Android雙系統(tǒng),開放PCIe 3.0、SATA 3.0等接口,用戶可快速擴展5G模組或定制AI加速卡,縮短產(chǎn) 明遠智睿RK3588核心板的核心優(yōu)勢 精細化設(shè)計:采用B2B的封裝
    發(fā)表于 04-08 16:08