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

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

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

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

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

眺望電子 ? 2025-08-29 08:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言:在 RK3588 平臺(tái)開發(fā)過(guò)程中,你是否遇到過(guò)這樣的窘境:明明 PCIe 總線上掛好了網(wǎng)卡模塊,lspci 能識(shí)別到芯片,可驅(qū)動(dòng)就是加載失敗,排查半天找不到關(guān)鍵問(wèn)題?別慌!本文將帶你一步步解決這個(gè)棘手問(wèn)題。


一、案例背景

使用眺望電子 RK3588核心板的PCIE20_0/1/2接口掛載裕太微yt6801芯片擴(kuò)展網(wǎng)卡為例,看看問(wèn)題到底有多棘手。

通過(guò)lspci命令查看設(shè)備狀態(tài)時(shí),能清晰看到 yt6801 芯片的存在,三個(gè)網(wǎng)卡設(shè)備均顯示為 “Ethernet controller: Device 1f0a:6801 (rev 01)”,從表面看似乎一切正常。

a5669dac-846f-11f0-9080-92fbcf53809c.png

可當(dāng)執(zhí)行insmod yt6801.ko加載驅(qū)動(dòng)時(shí),報(bào)錯(cuò)信息卻接連彈出驅(qū)動(dòng)加載直接失敗,網(wǎng)卡根本無(wú)法使用。

a57f4f50-846f-11f0-9080-92fbcf53809c.png

明明硬件連接沒問(wèn)題,設(shè)備也能被識(shí)別,為什么驅(qū)動(dòng)就是 “不聽話”?這背后肯定藏著我們沒注意到的關(guān)鍵細(xì)節(jié)。


二、根源分析

問(wèn)題不能看表面,深入日志查原因

查看系統(tǒng)日志時(shí)發(fā)現(xiàn),出問(wèn)題的 PCIe 設(shè)備與正常設(shè)備的 class 類型截然不同。正常工作的兩個(gè) PCIe 設(shè)備(000200.0 和 000100.0),class 類型均為 0x060400;而加載驅(qū)動(dòng)失敗的 PCIe 設(shè)備(000400.0),class 類型卻顯示為 0x000000。

a592f762-846f-11f0-9080-92fbcf53809c.png

SDK/kernel/include/linux/pci_ids.h文件中定義了不同class類別。其中0x000000為PCI_CLASS_NOT_DEFINED,即為未定義;而0x060400為PCI_CLASS_BRIDGE_PCI,即為PCIe橋。只有正確識(shí)別設(shè)備類型,內(nèi)核才能進(jìn)行后續(xù)的資源分配和驅(qū)動(dòng)加載。

由于該 PCIe 設(shè)備的 class 類型非法(未定義),系統(tǒng)無(wú)法正確識(shí)別其功能屬性,導(dǎo)致 Memory BAR 資源分配異常(lspci 中 BAR 資源會(huì)顯示 unassigned 狀態(tài)),最終造成網(wǎng)卡驅(qū)動(dòng)加載失敗。

找到根源后,解決問(wèn)題就有了明確方向。


三、解決方案

想要解決這個(gè)問(wèn)題,最根本的方式是聯(lián)系模塊供應(yīng)商,讓其對(duì)模塊的 class 類型進(jìn)行正確配置。但如果遇到無(wú)法修改硬件配置,或需要臨時(shí)應(yīng)急的情況,可以參考下文嘗試對(duì)模塊的class類型進(jìn)行軟件修復(fù),具體只需如下3步:

3.1定位修改文件

打開RK3588的SDK,找到內(nèi)核中的kernel/drivers/pci/quirks.c文件。該文件主要用于處理 PCI 設(shè)備的特殊配置和兼容性問(wèn)題,是我們進(jìn)行軟件修復(fù)的關(guān)鍵位置。

3.2添加修復(fù)代碼

在quirks.c文件中,新增以下兩段代碼:

a5a63836-846f-11f0-9080-92fbcf53809c.png

1.定義 class 類型修復(fù)函數(shù)

staticvoidquirk_class_id_fixup(struct pci_dev *dev){ dev->class=0x060400;// 將class類型設(shè)置為標(biāo)準(zhǔn)PCIe橋類型}

2.注冊(cè)修復(fù)邏輯

DECLARE_PCI_FIXUP_CLASS_EARLY(0x1d87,0x3588, PCI_CLASS_NOT_DEFINED,8, quirk_class_id_fixup);

這里需要注意:0x1d87是 RK3588 的 Vendor ID(廠商 ID),0x3588是對(duì)應(yīng)的 Device ID(設(shè)備 ID),PCI_CLASS_NOT_DEFINED指定針對(duì)未定義 class 類型的設(shè)備進(jìn)行修復(fù),0x060400則是我們要修復(fù)到的正確 class 類型。

3.3加修復(fù)代碼

代碼添加完成后,重新編譯內(nèi)核鏡像,將編譯好的鏡像燒錄到 RK3588 核心板中,通過(guò)命令驗(yàn)證修復(fù)效果:

1、執(zhí)行l(wèi)spci命令,已正確顯示為 “PCI bridge: Fuzhou Rockchip Electronics Co., Ltd Device 3588 (rev 01)”,class 類型修復(fù)成功。

2、執(zhí)行insmod yt6801.ko加載驅(qū)動(dòng),此時(shí)不再出現(xiàn)報(bào)錯(cuò)信息,驅(qū)動(dòng)加載成功。

3、執(zhí)行ifconfig命令,能看到新增的網(wǎng)卡接口(如 enP4p65s0),且接口狀態(tài)正常,支持 UP、BROADCAST、MULTICAST 等模式,說(shuō)明網(wǎng)卡已能正常工作。

a5b7ca92-846f-11f0-9080-92fbcf53809c.png

至此,RK3588 PCIe 非法class類型導(dǎo)致的網(wǎng)卡驅(qū)動(dòng)無(wú)法加載問(wèn)題,已完全解決。

四、小結(jié)

本文提供的解決方案基于特定硬件平臺(tái)驗(yàn)證,實(shí)際應(yīng)用中需根據(jù)具體設(shè)備調(diào)整VID/PID及class類型參數(shù)。如果你在 RK3588 平臺(tái)或者我司核心板開發(fā)中還遇到過(guò)其他 PCIe 相關(guān)難題,請(qǐng)關(guān)注眺望電子公眾號(hào)或在評(píng)論區(qū)留言分享,我們一起交流探討!

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

    關(guān)注

    16

    文章

    1459

    瀏覽量

    88385
  • Class
    +關(guān)注

    關(guān)注

    0

    文章

    54

    瀏覽量

    20465
  • RK3588
    +關(guān)注

    關(guān)注

    8

    文章

    555

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀

    瑞芯微RK3588開發(fā)板RK3588 EVB和RK3588S EVB解讀 瑞芯微旗艦芯RK3588系列開發(fā)板受到廣大開發(fā)者伙伴的關(guān)注和問(wèn)詢。針對(duì)相關(guān)的開發(fā)板功能、操作指南等問(wèn)題,我們
    的頭像 發(fā)表于 09-22 15:54 ?2.3w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b>開發(fā)板<b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解讀

    RK3588 EVB開發(fā)板原理圖講解【八】 RK3588 power Tree

    本帖最后由 瑞芯微方案開發(fā)老王 于 2025-3-1 11:41 編輯 、RK3588電源架構(gòu)核心特點(diǎn) ?多電源域設(shè)計(jì)? 芯片通常劃分為多個(gè)獨(dú)立電源域(Power Domain),例如
    發(fā)表于 03-01 11:38

    RK3588 EVB 開發(fā)板介紹

    RK3588 EVB 主要面向ARM PC、NVR、服務(wù)器、IPC、大屏顯示設(shè)備等AIoT行業(yè)類應(yīng)用產(chǎn)品;RK3588S EVB 面向高端平板、AR/VR、個(gè)人移動(dòng)互聯(lián)網(wǎng)設(shè)備等消費(fèi)類電
    發(fā)表于 03-16 16:39

    RK3588 video engine

    請(qǐng)問(wèn)RK3588的video engine可以作為個(gè)PCIE的endpoint給別的設(shè)備使用嘛
    發(fā)表于 01-07 21:04

    RK3588J和RK3588是什么關(guān)系?

    RK3588J是不是個(gè)開發(fā)板的名字,里面的SOC是RK3588?還是RK3588J屬于RK3588的子系列?
    發(fā)表于 03-13 14:22

    RK3588PCIE設(shè)置為EP模式設(shè)備樹和defconfig需要怎么修改呀?

    RK3588PCIE設(shè)置為EP模式設(shè)備樹和defconfig需要怎么修改呀?
    發(fā)表于 04-21 11:16

    rk3588rk3588s的區(qū)別

    rk3588rk3588s的區(qū)別 Rockchip是家專業(yè)的半導(dǎo)體公司,成立于2001年,總部位于中國(guó)深圳,主要從事集成電路的設(shè)計(jì)、開發(fā)和銷售。他們的熱門產(chǎn)品RK3588
    的頭像 發(fā)表于 08-15 16:44 ?2.1w次閱讀

    RK35883588s的區(qū)別

    RK35883588s的區(qū)別 Rockchip RK3588RK3588s是兩種功能強(qiáng)大且廣受歡迎的片上系統(tǒng)(SoC)解決方案,用于
    的頭像 發(fā)表于 08-15 17:03 ?2.9w次閱讀

    RK3588RK3399的區(qū)別

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

    RK3588系列有多少型號(hào)?

    RK3588系列有多少型號(hào)? RK3588是瑞芯微推出的款長(zhǎng)線產(chǎn)品,屬于高性能處理器領(lǐng)域的頂尖產(chǎn)品。它從2020年開始進(jìn)入市場(chǎng),現(xiàn)已成為市場(chǎng)上最熱門的處理器之。該產(chǎn)品因其高效能、強(qiáng)
    的頭像 發(fā)表于 08-15 17:04 ?6756次閱讀

    迅為電子RK3588S與RK3588硬件性能區(qū)別及板卡選型

    迅為電子RK3588S與RK3588硬件性能區(qū)別及板卡選型
    的頭像 發(fā)表于 06-25 15:30 ?6281次閱讀
    迅為電子<b class='flag-5'>RK3588</b>S與<b class='flag-5'>RK3588</b>硬件性能區(qū)別及板卡選型

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

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

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

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

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

    資源解析、 3? 大拆分方案實(shí)戰(zhàn)、關(guān)鍵配置步驟及要點(diǎn),附帶可視化腦圖,助力開發(fā)者快速落地? PCIe? 相關(guān)項(xiàng)目。 ? ? ? RK358
    的頭像 發(fā)表于 11-20 18:18 ?3807次閱讀
    <b class='flag-5'>一</b>文搞懂?<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方案啟動(dòng)修復(fù),從節(jié)點(diǎn)配置到驅(qū)動(dòng)適配全解析

    ,幫你避開同類陷阱。 ? ? 、問(wèn)題背景: PCIe3x4 接口成 “ 啟動(dòng)瓶頸 ” RK3588 支持多組 PCIe 接口(如
    的頭像 發(fā)表于 01-08 10:24 ?340次閱讀
    實(shí)戰(zhàn)復(fù)盤:<b class='flag-5'>RK3588</b> SPI+<b class='flag-5'>PCIe</b>3x4方案啟動(dòng)修復(fù),從節(jié)點(diǎn)配置到驅(qū)動(dòng)適配全解析