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

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

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

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

深入解析RK3588 U-Boot板級文件:evb_rk3588.c核心邏輯拆解

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

掃碼添加小助手

加入工程師交流群

嵌入式開發(fā)領(lǐng)域,瑞芯微RK3588憑借超強的算力、豐富的接口和廣泛的場景適配性,成為高端邊緣計算、消費電子項目的熱門選擇。而U-Boot作為嵌入式系統(tǒng)第一道門,負責(zé)硬件初始化、引導(dǎo)內(nèi)核啟動,其板級適配代碼直接決定了芯片硬件能力的落地。

今天我們聚焦RK3588評估板(EVB)的核心板級文件——u-boot/board/rockchip/evb_rk3588/evb_rk3588.c拆解這份代碼的底層邏輯,搞懂RK3588USB功能是如何在U-Boot中被初始化和管理的。

wKgZPGmOXcqANRrfAAAv0f_A8Ck906.png

一、文件定位:RK3588 USB功能的板級適配基石

evb_rk3588.cRockchipRK3588評估板定制的U-Boot板級適配文件,核心職責(zé)是RK3588USB DWC3控制器提供板級初始化和管理邏輯,是評估板USB功能能正常工作的核心保障。

具體來說,這份文件的核心價值體現(xiàn)在3點:

1.適配瑞芯微RK3588USB OTG控制器(基于DWC3架構(gòu)),實現(xiàn)硬件復(fù)位、參數(shù)配置等底層操作;

2.支撐USB Gadget(設(shè)備模式)功能,是瑞芯微Rockusb協(xié)議(刷機/調(diào)試專用)的底層依賴;

3.處理USB 3.0/2.0模式的兼容邏輯,包括PHY初始化失敗時的降級策略(USB3.0→USB2.0),保證基礎(chǔ)功能不丟失。

簡單講:沒有這份文件,RK3588評估板的USB刷機、USB調(diào)試等核心功能,在U-Boot階段就無法正常工作。

二、逐行拆解:核心宏定義與函數(shù)功能

這份文件的代碼圍繞“USB控制器適配展開,我們從宏定義、全局配置、核心函數(shù)三個維度,逐一解析其功能。

1.硬件相關(guān)宏定義:操作時鐘與復(fù)位的地址鑰匙

#defineCRU_BASE0xfd7c0000#defineCRU_SOFTRST_CON420x0aa8

RK3588的硬件操作依賴時鐘復(fù)位單元(CRU,這兩個宏是操作USB OTG控制器復(fù)位的關(guān)鍵:

?CRU_BASECRU模塊的基地址,所有時鐘、復(fù)位寄存器都基于此地址訪問;

?CRU_SOFTRST_CON42USB OTG控制器的軟復(fù)位寄存器偏移量,寫入特定值可觸發(fā)/釋放復(fù)位。

這是嵌入式開發(fā)的典型設(shè)計:通過物理地址直接操作硬件寄存器,實現(xiàn)對底層硬件的控制。

2.全局配置結(jié)構(gòu)體:DWC3控制器的參數(shù)清單

staticstructdwc3_device dwc3_device_data = {.maximum_speed = USB_SPEED_SUPER,.base=0xfc000000,.dr_mode = USB_DR_MODE_PERIPHERAL,.index =0,.dis_u2_susphy_quirk =1,.dis_u1u2_quirk =1,.usb2_phyif_utmi_width =16,};

這是給DWC3 USB控制器的初始化參數(shù),每一項都針對RK3588的硬件特性定制:

?maximum_speed:默認開啟USB 3.0超高速(SUPER);

?dr_mode:強制工作在設(shè)備模式(而非主機模式),因為U-Boot階段USB主要用于刷機/調(diào)試;

?dis_u2_susphy_quirk/dis_u1u2_quirk:關(guān)閉USB2.0 PHY休眠、U1/U2節(jié)能模式,避免初始化失敗或穩(wěn)定性問題;

?usb2_phyif_utmi_width:配置USB2.0 PHY接口寬度為16位,匹配RK3588的硬件設(shè)計。

3.核心函數(shù)解析:USB功能的核心操作邏輯

1usb_gadget_handle_interruptsUSB中斷的響應(yīng)入口

intusb_gadget_handle_interrupts(intindex){dwc3_uboot_handle_interrupt(0);return0;}

功能:處理USB Gadget模式下的中斷請求。

U-Boot運行時,USB設(shè)備模式會產(chǎn)生各類中斷(比如數(shù)據(jù)傳輸完成、設(shè)備枚舉),該函數(shù)是中斷處理的入口”——內(nèi)部調(diào)用U-Boot通用DWC3驅(qū)動的中斷處理函數(shù),確保中斷被及時響應(yīng),保證USB數(shù)據(jù)傳輸不中斷。

2rkusb_usb3_capableUSB3.0能力的判斷開關(guān)

boolrkusb_usb3_capable(void){returntrue;}

功能:告知上層邏輯(如Rockusb協(xié)議),當(dāng)前板子支持USB 3.0。

Rockusb是瑞芯微定制的USB協(xié)議(用于刷機、燒錄固件),該函數(shù)直接返回true,表示RK3588評估板硬件支持USB 3.0,上層可啟用高速傳輸模式,提升刷機/調(diào)試效率。

3usb_reset_otg_controllerUSB控制器的復(fù)位操作

staticvoidusb_reset_otg_controller(void){writel(0x00100010,CRU_BASE+CRU_SOFTRST_CON42);mdelay(1);writel(0x00100000,CRU_BASE+CRU_SOFTRST_CON42);mdelay(1);}

功能:對USB OTG控制器執(zhí)行軟復(fù)位,清除硬件異常狀態(tài)。

硬件初始化前,復(fù)位是必備步驟:

1.向復(fù)位寄存器寫入0x00100010,觸發(fā)OTG控制器復(fù)位;

2.延時1ms,確保復(fù)位動作完成;

3.寫入0x00100000釋放復(fù)位;

4.再延時1ms,保證控制器穩(wěn)定運行。

這一步能解決控制器殘留的異常狀態(tài),為后續(xù)初始化鋪路,是嵌入式硬件初始化的常規(guī)操作。

4board_usb_initUSB初始化的核心入口

intboard_usb_init(intindex,enumusb_init_typeinit){u32 ret =0;usb_reset_otg_controller();// 先復(fù)位控制器#ifdefined(CONFIG_SUPPORT_USBPLUG)// 啟用USB插拔檢測時,默認降級為USB2.0dwc3_device_data.maximum_speed = USB_SPEED_HIGH;if(rkusb_switch_usb3_enabled()) {// 若開啟USB3.0,嘗試初始化USB3.0 PHYdwc3_device_data.maximum_speed = USB_SPEED_SUPER;ret = rockchip_u3phy_uboot_init();if(ret) {// PHY初始化失敗,強制USB2.0rkusb_force_to_usb2(true);dwc3_device_data.maximum_speed = USB_SPEED_HIGH;}}#else// 未啟用插拔檢測,直接初始化USB3.0 PHYret = rockchip_u3phy_uboot_init();if(ret) {// 失敗則降級為USB2.0rkusb_force_to_usb2(true);dwc3_device_data.maximum_speed = USB_SPEED_HIGH;}#endif// 調(diào)用通用驅(qū)動完成DWC3控制器初始化returndwc3_uboot_init(&dwc3_device_data);}

功能U-Boot板級USB初始化的核心函數(shù),是USB控制器能工作的總開關(guān)

執(zhí)行流程拆解:

1.先復(fù)位控制器,清理初始狀態(tài);

2.若開啟CONFIG_SUPPORT_USBPLUGUSB插拔檢測):

?先默認設(shè)置為USB2.0高速模式,再檢查是否啟用USB3.0;

?嘗試初始化USB3.0 PHY,失敗則強制降級為USB2.0

3.若未開啟插拔檢測:直接初始化USB3.0 PHY,失敗則降級;

4.最后調(diào)用U-Boot通用DWC3驅(qū)動的初始化函數(shù),完成控制器配置。

這個函數(shù)的設(shè)計體現(xiàn)了嵌入式開發(fā)的容錯思想:優(yōu)先嘗試高性能模式(USB3.0),失敗則降級到基礎(chǔ)模式(USB2.0),保證核心功能不丟失。

5board_usb_cleanup(條件編譯):USB資源的清理入口

#ifdefined(CONFIG_SUPPORT_USBPLUG)intboard_usb_cleanup(intindex,enumusb_init_typeinit){dwc3_uboot_exit(index);return0;}#endif

功能:僅在啟用USB插拔檢測時生效,負責(zé)清理USB控制器資源。

當(dāng)USB設(shè)備插拔時,需要釋放舊的控制器資源,該函數(shù)調(diào)用通用驅(qū)動的退出函數(shù),保證多次插拔時USB功能的穩(wěn)定性。

三、USB功能異常排查流程圖:快速定位問題

U-Boot階段USB功能異常(刷機失敗、調(diào)試無響應(yīng))的排查流程圖,直接對照即可快速縮小故障范圍,適配evb_rk3588.c的核心邏輯:

wKgZPGmOXcqABG3pAAHtnQtm430238.png

四、總結(jié):嵌入式板級適配的核心思路

evb_rk3588.c雖代碼量不大,但濃縮了嵌入式板級適配的核心思想:

1.分層設(shè)計:硬件無關(guān)的邏輯交給U-Boot通用驅(qū)動(如DWC3驅(qū)動),硬件相關(guān)的細節(jié)(復(fù)位、PHY配置)交給板級文件;

2.容錯設(shè)計:關(guān)鍵功能(如USB3.0)做降級兼容,保證基礎(chǔ)功能可用;

3.硬件直操:通過物理地址操作寄存器,實現(xiàn)對底層硬件的精準控制。

對于RK3588開發(fā)者來說,理解這份代碼不僅能解決USB初始化失敗、刷機異常等問題,更能掌握板級適配的核心邏輯——把通用驅(qū)動和具體硬件結(jié)合,讓芯片的能力真正落地。

最后,留一個互動問題:你在做RK3588開發(fā)時,遇到過USB初始化失敗的問題嗎?評論區(qū)聊聊你的排坑經(jīng)驗~

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

    關(guān)注

    5198

    文章

    20434

    瀏覽量

    333893
  • 評估板
    +關(guān)注

    關(guān)注

    1

    文章

    931

    瀏覽量

    31169
  • RK3588
    +關(guān)注

    關(guān)注

    8

    文章

    555

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    瑞芯微RK3588開發(fā)RK3588 EVBRK3588S EVB解讀

    瑞芯微RK3588開發(fā)RK3588 EVBRK3588S EVB解讀 瑞芯微旗艦芯
    的頭像 發(fā)表于 09-22 15:54 ?2.3w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b>開發(fā)<b class='flag-5'>板</b><b class='flag-5'>RK3588</b> <b class='flag-5'>EVB</b>和<b class='flag-5'>RK3588</b>S <b class='flag-5'>EVB</b>解讀

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

    GPU負載高時自動通知RK860-2調(diào)高CPU電壓 RK3588 Power Tree完整版圖太大,截圖看不完,需要的可以下載附件完成版。 RK3588 EVB開發(fā)
    發(fā)表于 03-01 11:38

    RK3588 EVB 開發(fā)介紹

    行業(yè)AIoT終端設(shè)備。RK3588 EVB功能配置表 2. RK3588S EVB:更輕薄 消費RK3
    發(fā)表于 03-16 16:39

    RK3588 EVB 用戶使用指南

    本文檔主要介紹 RK3588 EVB 基本功能和硬件特性、多功能硬件配置、軟件調(diào)試操作使用方法,旨在幫助調(diào)試人員更快、更準確地使用 RK3588 EVB,熟悉
    發(fā)表于 03-16 16:57

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

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

    RK3588RK3588S之間的區(qū)別是什么

    RK3588類似,但是接口較少,主要面向消費類的產(chǎn)品。 RK3588S的視頻輸入輸出接口,type-c接口,SATA接口,RJ45網(wǎng)口
    發(fā)表于 03-10 19:22 ?3w次閱讀

    【LGA封裝RK3588核心板】基于RK3588,小而強大的ArmSom-W3 CORE BOARD

    Armsom-RK3588 LGA Core board 是一款基于Rockchip RK3588芯片平臺,采用LGA(506pin)封裝設(shè)計的一款極小尺寸的RK3588核心板。
    的頭像 發(fā)表于 07-03 16:08 ?3242次閱讀
    【LGA封裝<b class='flag-5'>RK3588</b><b class='flag-5'>核心板</b>】基于<b class='flag-5'>RK3588</b>,小而強大的ArmSom-W3 CORE BOARD

    rk3588rk3588s的區(qū)別

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

    RK35883588s的區(qū)別

    RK35883588s的區(qū)別 Rockchip RK3588RK3588s是兩種功能強大且廣受歡迎的片上系統(tǒng)(SoC)解決方案,用于一系列設(shè)備,包括智能電視、高性能平板電腦、筆記本
    的頭像 發(fā)表于 08-15 17:03 ?2.9w次閱讀

    極小極輕LGA封裝 |RK3588核心板SOM-3588-LGA現(xiàn)貨發(fā)售!

    SOM-3588-LGA 是一款基于Rockchip RK3588芯片平臺,采用LGA(506pin)封裝設(shè)計的一款極小尺寸的商規(guī)核心板?,F(xiàn)在核心
    的頭像 發(fā)表于 10-23 11:50 ?4790次閱讀
    極小極輕LGA封裝 |<b class='flag-5'>RK3588</b><b class='flag-5'>核心板</b>SOM-<b class='flag-5'>3588</b>-LGA現(xiàn)貨發(fā)售!

    迅為電子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!黑神話悟空,啟動?-迅為電子RK3588開發(fā)

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發(fā)
    的頭像 發(fā)表于 08-30 14:13 ?2307次閱讀
    <b class='flag-5'>RK3588</b>!黑神話悟空,啟動?-迅為電子<b class='flag-5'>RK3588</b>開發(fā)<b class='flag-5'>板</b>

    PET_RK3588_CORE核心板

    一、PET_RK3588_CORE 核心板圖片 二、PET_RK3588_CORE 核心板詳細參數(shù) 注意:RK3588 引腳大部分是功能復(fù)用
    的頭像 發(fā)表于 01-15 14:12 ?1575次閱讀
    PET_<b class='flag-5'>RK3588</b>_CORE<b class='flag-5'>核心板</b>

    RK3588原理圖

    RK3588開發(fā)原理圖文件
    發(fā)表于 02-24 15:57 ?61次下載

    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ù)手冊解讀