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

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

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

U-boot的QSPI驅(qū)動(dòng)移植方法及驗(yàn)證方法

CHANBAEK ? 來(lái)源:嵌入式系統(tǒng)研發(fā) ? 作者:李松泉 ? 2023-04-14 10:21 ? 次閱讀

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就被使能編譯了。

poYBAGQ4uJyAR2S0AAFCsQC4t40453.png

圖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。

poYBAGQ4uKiANlONAAE8Dp-axvk578.png

圖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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    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
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    U-boot的基本介紹

    從本文開(kāi)始,將陸續(xù)推送“手把手教你移植U-boot”系列文章,目標(biāo)是由淺入深地講解U-boot的工作流程、原理、配置方法移植
    發(fā)表于 07-14 16:52 ?2649次閱讀
    <b class='flag-5'>U-boot</b>的基本介紹

    嵌入式系統(tǒng)中U-Boot 基本特點(diǎn)及其移植方法

    在介紹U-Boot 基本特點(diǎn)的基礎(chǔ)上,結(jié)合U-Boot 移植經(jīng)歷,以MPC8xx 和嵌入式Linux 為背景,分析、探討U-Boot移植
    發(fā)表于 04-15 09:25 ?17次下載

    嵌入式系統(tǒng)中U-Boot 基本特點(diǎn)及其移植方法

    在介紹U-Boot 基本特點(diǎn)的基礎(chǔ)上,結(jié)合U-Boot 移植經(jīng)歷,以MPC8xx 和嵌入式Linux 為背景,分析、探討U-Boot移植
    發(fā)表于 05-16 14:52 ?12次下載

    嵌入式U-BOOT的啟動(dòng)流程及移植

    S3C44B0開(kāi)發(fā)板上的移植方法和步驟。 u-boot是一個(gè)功能強(qiáng)大的bootloader開(kāi)發(fā)軟件,適用的CPU平臺(tái)及
    發(fā)表于 02-25 16:00 ?59次下載

    Mini2440之U-boot使用及移植詳細(xì)手冊(cè)

    Mini2440之U-boot使用及移植詳細(xì)手冊(cè)
    發(fā)表于 10-30 08:31 ?44次下載
    Mini2440之<b class='flag-5'>U-boot</b>使用及<b class='flag-5'>移植</b>詳細(xì)手冊(cè)

    S3C6410的u-boot分析與移植

    S3C6410的u-boot分析與移植
    發(fā)表于 10-31 14:44 ?28次下載
    S3C6410的<b class='flag-5'>u-boot</b>分析與<b class='flag-5'>移植</b>

    基于nanoPC-T3的U-Boot移植過(guò)程梳理

    ? 導(dǎo)讀:前文對(duì)U-Boot架構(gòu)設(shè)計(jì)做了分析,本文來(lái)梳理一下U-Boot在具體板子上的移植工作,主要記錄整體思路、要點(diǎn),以觸類(lèi)旁通而記之。
    的頭像 發(fā)表于 12-14 23:14 ?796次閱讀

    剖析基于nanoPC-T3的U-Boot移植過(guò)程

    ? 導(dǎo)讀:前文對(duì)U-Boot架構(gòu)設(shè)計(jì)做了分析,本文來(lái)梳理一下U-Boot在具體板子上的移植工作,主要記錄整體思路、要點(diǎn),以觸類(lèi)旁通而記之。
    發(fā)表于 01-26 17:20 ?3次下載
    剖析基于nanoPC-T3的<b class='flag-5'>U-Boot</b><b class='flag-5'>移植</b>過(guò)程

    Linux U-Boot開(kāi)發(fā)指南

    介紹 U-Boot 的編譯打包、基本配置、常用命令的使用、基本調(diào)試方法等, 為 U-BOOT移植及應(yīng)用開(kāi)發(fā)提供了基礎(chǔ)。
    的頭像 發(fā)表于 03-06 10:28 ?1221次閱讀
    Linux <b class='flag-5'>U-Boot</b>開(kāi)發(fā)指南

    Linux的QSPI驅(qū)動(dòng)移植方法驗(yàn)證方法

    本文主要講述了Linux的QSPI驅(qū)動(dòng)移植方法驗(yàn)證方法。
    的頭像 發(fā)表于 04-14 10:20 ?2841次閱讀
    Linux的<b class='flag-5'>QSPI</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>及<b class='flag-5'>驗(yàn)證</b><b class='flag-5'>方法</b>

    U-boot的MMC DM框架驅(qū)動(dòng)移植方法

    本文主要講述了U-boot的MMC DM框架驅(qū)動(dòng)移植方法。DM是Driver Model的簡(jiǎn)稱(chēng),是U-boot的基本
    的頭像 發(fā)表于 04-14 10:22 ?2713次閱讀
    <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>

    U-boot的DPU驅(qū)動(dòng)移植方法

    本文以ARM Mali系列顯示處理器驅(qū)動(dòng)為例,講述了U-boot的DPU驅(qū)動(dòng)移植方法。
    的頭像 發(fā)表于 04-14 10:25 ?1258次閱讀
    <b class='flag-5'>U-boot</b>的DPU<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    U-boot的SPLASH_SCREEN(啟動(dòng)畫(huà)面)驅(qū)動(dòng)移植方法

    ?在上一篇《U-boot驅(qū)動(dòng)-DPU驅(qū)動(dòng)移植》中,以ARM Mali系列顯示處理器驅(qū)動(dòng)為例,講述了U-b
    的頭像 發(fā)表于 04-14 10:28 ?1310次閱讀
    <b class='flag-5'>U-boot</b>的SPLASH_SCREEN(啟動(dòng)畫(huà)面)<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    U-boot的DPU驅(qū)動(dòng)移植方法

    U-boot的VIDEO驅(qū)動(dòng)子系統(tǒng)集成了ARM Mali系列顯示處理器的驅(qū)動(dòng),支持Mali-DP500、Mali-DP550和Mali-DP650顯示處理器,驅(qū)動(dòng)源碼位于目錄./dri
    的頭像 發(fā)表于 06-09 14:35 ?1002次閱讀
    <b class='flag-5'>U-boot</b>的DPU<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    U-boot驅(qū)動(dòng)SPLASH_SCREEN驅(qū)動(dòng)移植方法

    U-boot集成了SPLASH_SCREEN驅(qū)動(dòng)源碼,當(dāng)使能和配置SPLASH_SCREEN驅(qū)動(dòng)后,可以將啟動(dòng)畫(huà)面使用的圖片文件轉(zhuǎn)換為位圖數(shù)據(jù)數(shù)組
    的頭像 發(fā)表于 06-09 14:39 ?1156次閱讀
    <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>