1.概述
本文主要講述了U-boot的QSPI驅(qū)動(dòng)移植方法及驗(yàn)證方法。在產(chǎn)品調(diào)試階段,U-boot的driver子系統(tǒng)包含了豐富的外設(shè)驅(qū)動(dòng),方便外設(shè)功能驗(yàn)證與調(diào)試。
示例U-boot版本:2022.10。硬件平臺(tái):ARM SOC。
2.原理
U-boot的SPI驅(qū)動(dòng)子系統(tǒng)集成了主流廠(chǎng)家的SPI和QSPI控制器驅(qū)動(dòng),驅(qū)動(dòng)源碼位于目錄u-boot-2022.10/drivers/spi。
本文以移植Cadence QSPI控制器驅(qū)動(dòng)為例,其對(duì)應(yīng)的驅(qū)動(dòng)程序位于./drivers/spi目錄下,無(wú)需手動(dòng)添加,只需使能相應(yīng)的編譯配置開(kāi)關(guān)即可;同時(shí)需要添加Cadence QSPI控制器及其Flash的設(shè)備樹(shù),對(duì)必要的參數(shù)進(jìn)行配置。
U-boot的命令子系統(tǒng)包含了眾多測(cè)試命令子集,其中sf命令集用來(lái)對(duì)SPI接口的Flash存儲(chǔ)器進(jìn)行功能測(cè)試,完成檢測(cè)、擦除、讀、寫(xiě)等常用操作。
3.移植方法
(1)編譯配置
使能CONFIG_CADENCE_QSPI,以添加Cadence QSPI驅(qū)動(dòng);同時(shí)設(shè)置QPSI參考時(shí)鐘頻率值,以100MHz為例。這樣./drivers/spi目錄下的cadence_qspi.c和cadence_qspi_apb.c就被使能編譯了。
圖1 Cadence QSPI驅(qū)動(dòng)配置
(2)設(shè)備樹(shù)添加QSPI控制器和Flash節(jié)點(diǎn)
在設(shè)備樹(shù)添加Cadence QSPI控制器節(jié)點(diǎn)及其Flash節(jié)點(diǎn)。添加方法可參考如下文件:
./doc/device-tree-bindings/spi/spi-cadence.txt
4.驗(yàn)證方法
(1)編譯sf測(cè)試工具
為編譯sf測(cè)試工具,應(yīng)配置U-boot,使能CONFIG_CMD_SF。
圖2 sf測(cè)試工具配置
(2)使用sf命令測(cè)試
以GD25Q127C Flash為例,測(cè)試方法及結(jié)果如下。
(a)Flash檢測(cè)
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寫(xiě)入
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文章
9006瀏覽量
366031 -
控制器
+關(guān)注
關(guān)注
112文章
16028瀏覽量
176639 -
移植
+關(guān)注
關(guān)注
1文章
375瀏覽量
28072 -
u-boot
+關(guān)注
關(guān)注
0文章
120瀏覽量
38162 -
QSPI
+關(guān)注
關(guān)注
0文章
41瀏覽量
12141
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論