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

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

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

wKgZPGmOXcqANRrfAAAv0f_A8Ck906.png

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

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

具體來說,這份文件的核心價值體現在3點:

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

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

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

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

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

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

1.硬件相關宏定義:操作時鐘與復位的地址鑰匙

#defineCRU_BASE0xfd7c0000#defineCRU_SOFTRST_CON420x0aa8

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

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

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

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

2.全局配置結構體:DWC3控制器的參數清單

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控制器的初始化參數,每一項都針對RK3588的硬件特性定制:

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

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

?dis_u2_susphy_quirk/dis_u1u2_quirk:關閉USB2.0 PHY休眠、U1/U2節能模式,避免初始化失敗或穩定性問題;

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

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

1usb_gadget_handle_interruptsUSB中斷的響應入口

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

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

U-Boot運行時,USB設備模式會產生各類中斷(比如數據傳輸完成、設備枚舉),該函數是中斷處理的入口”——內部調用U-Boot通用DWC3驅動的中斷處理函數,確保中斷被及時響應,保證USB數據傳輸不中斷。

2rkusb_usb3_capableUSB3.0能力的判斷開關

boolrkusb_usb3_capable(void){returntrue;}

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

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

3usb_reset_otg_controllerUSB控制器的復位操作

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控制器執行軟復位,清除硬件異常狀態。

硬件初始化前,復位是必備步驟:

1.向復位寄存器寫入0x00100010,觸發OTG控制器復位;

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

3.寫入0x00100000釋放復位;

4.再延時1ms,保證控制器穩定運行。

這一步能解決控制器殘留的異常狀態,為后續初始化鋪路,是嵌入式硬件初始化的常規操作

4board_usb_initUSB初始化的核心入口

intboard_usb_init(intindex,enumusb_init_typeinit){u32 ret =0;usb_reset_otg_controller();// 先復位控制器#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// 調用通用驅動完成DWC3控制器初始化returndwc3_uboot_init(&dwc3_device_data);}

功能U-Boot板級USB初始化的核心函數,是USB控制器能工作的總開關

執行流程拆解:

1.先復位控制器,清理初始狀態;

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

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

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

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

4.最后調用U-Boot通用DWC3驅動的初始化函數,完成控制器配置。

這個函數的設計體現了嵌入式開發的容錯思想:優先嘗試高性能模式(USB3.0),失敗則降級到基礎模式(USB2.0),保證核心功能不丟失。

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

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

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

USB設備插拔時,需要釋放舊的控制器資源,該函數調用通用驅動的退出函數,保證多次插拔時USB功能的穩定性。

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

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

wKgZPGmOXcqABG3pAAHtnQtm430238.png

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

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

1.分層設計:硬件無關的邏輯交給U-Boot通用驅動(如DWC3驅動),硬件相關的細節(復位、PHY配置)交給板級文件;

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

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

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

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

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

    關注

    5198

    文章

    20442

    瀏覽量

    333978
  • 評估板
    +關注

    關注

    1

    文章

    931

    瀏覽量

    31177
  • RK3588
    +關注

    關注

    8

    文章

    556

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    瑞芯微RK3588開發RK3588 EVBRK3588S EVB解讀

    瑞芯微RK3588開發RK3588 EVBRK3588S EVB解讀 瑞芯微旗艦芯
    的頭像 發表于 09-22 15:54 ?2.3w次閱讀
    瑞芯微<b class='flag-5'>RK3588</b>開發<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開發原理圖講解【八】 RK3588 power Tree

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

    RK3588 EVB 開發介紹

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

    RK3588 EVB 用戶使用指南

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

    RK3588J和RK3588是什么關系?

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

    RK3588RK3588S之間的區別是什么

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

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

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

    rk3588rk3588s的區別

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

    RK35883588s的區別

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

    極小極輕LGA封裝 |RK3588核心板SOM-3588-LGA現貨發售!

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

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

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

    RK3588!黑神話悟空,啟動?-迅為電子RK3588開發

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

    PET_RK3588_CORE核心板

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

    RK3588原理圖

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

    RK3588參數與主要特性 RK3588數據手冊解讀

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