1.概述
本文主要講述了U-boot的QSPI驅(qū)動移植方法及驗證方法。在產(chǎn)品調(diào)試階段,U-boot的driver子系統(tǒng)包含了豐富的外設(shè)驅(qū)動,方便外設(shè)功能驗證與調(diào)試。
示例U-boot版本:2022.10。硬件平臺:ARM SOC。
2.原理
U-boot的SPI驅(qū)動子系統(tǒng)集成了主流廠家的SPI和QSPI控制器驅(qū)動,驅(qū)動源碼位于目錄u-boot-2022.10/drivers/spi。
本文以移植Cadence QSPI控制器驅(qū)動為例,其對應(yīng)的驅(qū)動程序位于./drivers/spi目錄下,無需手動添加,只需使能相應(yīng)的編譯配置開關(guān)即可;同時需要添加Cadence QSPI控制器及其Flash的設(shè)備樹,對必要的參數(shù)進(jìn)行配置。
U-boot的命令子系統(tǒng)包含了眾多測試命令子集,其中sf命令集用來對SPI接口的Flash存儲器進(jìn)行功能測試,完成檢測、擦除、讀、寫等常用操作。
3.移植方法
(1)編譯配置
使能CONFIG_CADENCE_QSPI,以添加Cadence QSPI驅(qū)動;同時設(shè)置QPSI參考時鐘頻率值,以100MHz為例。這樣./drivers/spi目錄下的cadence_qspi.c和cadence_qspi_apb.c就被使能編譯了。
圖1 Cadence QSPI驅(qū)動配置
(2)設(shè)備樹添加QSPI控制器和Flash節(jié)點
在設(shè)備樹添加Cadence QSPI控制器節(jié)點及其Flash節(jié)點。添加方法可參考如下文件:
./doc/device-tree-bindings/spi/spi-cadence.txt
4.驗證方法
(1)編譯sf測試工具
為編譯sf測試工具,應(yīng)配置U-boot,使能CONFIG_CMD_SF。
圖2 sf測試工具配置
(2)使用sf命令測試
以GD25Q127C Flash為例,測試方法及結(jié)果如下。
(a)Flash檢測
cmd>sf probe
SF: Detected gd25q127c with page size 256 Bytes, erase size 4 KiB, total 16 MiB
(b)Flash擦除
cmd>sf erase 0 8000
SF: 32768 bytes @ 0x0 Erased: OK
(c)Flash寫入
cmd>sf write 50000000 0 8000
device 0 offset 0x0, size 0x8000
SF: 32768 bytes @ 0x0 Written: OK
(d)Flash讀取
cmd>sf read 60000000 0 8000
device 0 offset 0x0, size 0x8000
spi_flash_std_read: offset:0x0,len:0x8000 ,_read func: 00000000bffc2b24
SF: 32768 bytes @ 0x0 Read: OK
-
ARM
+關(guān)注
關(guān)注
134文章
9084瀏覽量
367380 -
控制器
+關(guān)注
關(guān)注
112文章
16332瀏覽量
177803 -
移植
+關(guān)注
關(guān)注
1文章
379瀏覽量
28124 -
u-boot
+關(guān)注
關(guān)注
0文章
121瀏覽量
38220 -
QSPI
+關(guān)注
關(guān)注
0文章
41瀏覽量
12197
發(fā)布評論請先 登錄
相關(guān)推薦
評論