1.概述
本文以ARM Mali系列顯示處理器驅(qū)動(dòng)為例,講述了U-boot的DPU驅(qū)動(dòng)移植方法。
示例U-boot版本:2022.10。硬件平臺(tái):ARM SOC。
2.原理
U-boot的VIDEO驅(qū)動(dòng)子系統(tǒng)集成了ARM Mali系列顯示處理器的驅(qū)動(dòng),支持Mali-DP500、Mali-DP550和Mali-DP650顯示處理器,驅(qū)動(dòng)源碼位于目錄./drivers/video。
以簡單的RGB顯示屏作為輸出設(shè)備,移植ARM Mali系列顯示處理器驅(qū)動(dòng)。通過使能CONFIG_VIDEO_ARM_MALIDP配置將U_BOOT_DRIVER(mali_dp)驅(qū)動(dòng)添加到u-boot,并在設(shè)備樹添加顯示處理器節(jié)點(diǎn),由驅(qū)動(dòng)程序解析節(jié)點(diǎn)屬性,將framebuffer節(jié)點(diǎn)指向的特定格式的內(nèi)存空間數(shù)據(jù),以display-timings節(jié)點(diǎn)規(guī)定的時(shí)序參數(shù)要求輸出到RGB顯示屏。
3.移植方法
3.1編譯配置
使能CONFIG_VIDEO_ARM_MALIDP,以添加U_BOOT_DRIVER(mali_dp)驅(qū)動(dòng)。
3.2設(shè)備樹添加顯示處理器節(jié)點(diǎn)
顯示處理器節(jié)點(diǎn)的主要屬性包括:
(1)compatible屬性。設(shè)置設(shè)備兼容性字符串。
(2)reg屬性。設(shè)置顯示處理器的寄存器基地址及存儲(chǔ)空間范圍。
(3)時(shí)鐘屬性。按驅(qū)動(dòng)源碼需求設(shè)置時(shí)鐘名稱,按SOC實(shí)際配置情況設(shè)置頻率值。
(4)framebuffer屬性。按RGB顯示屏的顯示格式設(shè)置。
(5)display-timings屬性。按RGB顯示屏的時(shí)序參數(shù)設(shè)置。
設(shè)備樹設(shè)計(jì)方法可以參考如下文檔:
./doc/device-tree-bindings/video/simple-framebuffer.txt
./doc/device-tree-bindings/video/display-timing.txt
4.驗(yàn)證方法
4.1驅(qū)動(dòng)加載結(jié)果查詢
執(zhí)行dm tree命令,查詢到了mali_dp驅(qū)動(dòng)已經(jīng)被Probed,表明驅(qū)動(dòng)加載成功。
4.2切換串口控制臺(tái)顯示位置
執(zhí)行如下命令,串口控制臺(tái)切換到了RGB顯示屏,即表明顯示處理器驅(qū)動(dòng)功能正常。
cli>env set stdout "vidconsole"
-
處理器
+關(guān)注
關(guān)注
68文章
19432瀏覽量
231258 -
ARM
+關(guān)注
關(guān)注
134文章
9176瀏覽量
369324 -
移植
+關(guān)注
關(guān)注
1文章
383瀏覽量
28197 -
DPU
+關(guān)注
關(guān)注
0文章
368瀏覽量
24266 -
u-boot
+關(guān)注
關(guān)注
0文章
121瀏覽量
38324
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
U-boot的基本介紹
![<b class='flag-5'>U-boot</b>的基本介紹](https://file1.elecfans.com/web2/M00/8C/C4/wKgaomSxDC-AIi1QAACKegMzhAU876.png)
嵌入式系統(tǒng)中U-Boot 基本特點(diǎn)及其移植方法
嵌入式系統(tǒng)中U-Boot 基本特點(diǎn)及其移植方法
嵌入式U-BOOT的啟動(dòng)流程及移植
如何進(jìn)行U-BOOT的移植
![如何進(jìn)行<b class='flag-5'>U-BOOT</b>的<b class='flag-5'>移植</b>](https://file.elecfans.com/web1/M00/96/53/o4YBAF0DaxCAVgi2AAR2mo0Xipo773.png)
基于nanoPC-T3的U-Boot移植過程梳理
剖析基于nanoPC-T3的U-Boot移植過程
![剖析基于nanoPC-T3的<b class='flag-5'>U-Boot</b><b class='flag-5'>移植</b>過程](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
Linux U-Boot開發(fā)指南
![Linux <b class='flag-5'>U-Boot</b>開發(fā)指南](https://file.elecfans.com//web2/M00/95/B6/poYBAGQFT7mAWRkKAAFz-Z4R0zY051.png)
U-boot的QSPI驅(qū)動(dòng)移植方法及驗(yàn)證方法
![<b class='flag-5'>U-boot</b>的QSPI<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>及驗(yàn)證<b class='flag-5'>方法</b>](https://file.elecfans.com/web2/M00/9F/06/poYBAGQ4uJyAR2S0AAFCsQC4t40453.png)
U-boot的MMC DM框架驅(qū)動(dòng)的移植方法
![<b class='flag-5'>U-boot</b>的MMC DM框架<b class='flag-5'>驅(qū)動(dòng)</b>的<b class='flag-5'>移植</b><b class='flag-5'>方法</b>](https://file.elecfans.com/web2/M00/9F/06/poYBAGQ4uOiAf8U2AAERWtIXtG4811.png)
U-boot的SPLASH_SCREEN(啟動(dòng)畫面)驅(qū)動(dòng)移植方法
![<b class='flag-5'>U-boot</b>的SPLASH_SCREEN(啟動(dòng)畫面)<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>](https://file.elecfans.com/web2/M00/9F/87/pYYBAGQ4uauAMTOLAAFqram3zoA825.png)
U-boot的DPU驅(qū)動(dòng)移植方法
![<b class='flag-5'>U-boot</b>的<b class='flag-5'>DPU</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>](https://file1.elecfans.com/web2/M00/89/68/wKgZomSCyByAWv4YAAKnpIxOJZM063.jpg)
U-boot驅(qū)動(dòng)SPLASH_SCREEN驅(qū)動(dòng)移植方法
![<b class='flag-5'>U-boot</b><b class='flag-5'>驅(qū)動(dòng)</b>SPLASH_SCREEN<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>](https://file1.elecfans.com/web2/M00/89/67/wKgaomSCyQuAFUyoAAK4jneyalY711.jpg)
評(píng)論