0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

U-boot的QSPI驱动移植方法及验证方法

CHANBAEK 来源:嵌入式系统研发 作者:李松泉 2023-04-14 10:21 次阅读

1.概述

本文主要讲述了U-boot的QSPI驱动移植方法及验证方法。在产品调试阶段,U-boot的driver子系统包含了丰富的外设驱动,方便外设功能验证与调试。

示例U-boot版本:2022.10。硬件平台:ARM SOC。

2.原理

U-boot的SPI驱动子系统集成了主流厂家的SPI和QSPI控制器驱动,驱动源码位于目录u-boot-2022.10/drivers/spi。

本文以移植Cadence QSPI控制器驱动为例,其对应的驱动程序位于./drivers/spi目录下,无需手动添加,只需使能相应的编译配置开关即可;同时需要添加Cadence QSPI控制器及其Flash的设备树,对必要的参数进行配置。

U-boot的命令子系统包含了众多测试命令子集,其中sf命令集用来对SPI接口的Flash存储器进行功能测试,完成检测、擦除、读、写等常用操作。

3.移植方法

(1)编译配置

使能CONFIG_CADENCE_QSPI,以添加Cadence QSPI驱动;同时设置QPSI参考时钟频率值,以100MHz为例。这样./drivers/spi目录下的cadence_qspi.c和cadence_qspi_apb.c就被使能编译了。

poYBAGQ4uJyAR2S0AAFCsQC4t40453.png

图1 Cadence QSPI驱动配置

(2)设备树添加QSPI控制器和Flash节点

在设备树添加Cadence QSPI控制器节点及其Flash节点。添加方法可参考如下文件:

./doc/device-tree-bindings/spi/spi-cadence.txt

4.验证方法

(1)编译sf测试工具

为编译sf测试工具,应配置U-boot,使能CONFIG_CMD_SF。

poYBAGQ4uKiANlONAAE8Dp-axvk578.png

图2 sf测试工具配置

(2)使用sf命令测试

以GD25Q127C Flash为例,测试方法及结果如下。

(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
    ARM
    +关注

    关注

    134

    文章

    8653

    浏览量

    361827
  • 控制器
    +关注

    关注

    112

    文章

    15235

    浏览量

    171209
  • 移植
    +关注

    关注

    1

    文章

    367

    浏览量

    27854
  • u-boot
    +关注

    关注

    0

    文章

    116

    浏览量

    38044
  • QSPI
    +关注

    关注

    0

    文章

    38

    浏览量

    11964
收藏 人收藏

    评论

    相关推荐

    U-boot的基本介绍

    从本文开始,将陆续推送“手把手教你移植U-boot”系列文章,目标是由浅入深地讲解U-boot的工作流程、原理、配置方法移植
    发表于 07-14 16:52 1492次阅读
    <b class='flag-5'>U-boot</b>的基本介绍

    U-Boot移植操作

    U-Boot移植U-Boot移植主要分为两个层面,一个是对CPU的移植,一个是针对Board的移植
    发表于 07-15 07:48

    怎样去移植u-boot呢?移植u-boot的过程是怎样的呢

    BootLoader是什么?怎样去移植u-boot呢?移植u-boot的过程是怎样的呢?
    发表于 12-29 06:13

    如何为QSPI U-Boot添加缺少的imx标头信息?

    最近我们为 i.MX 6SX SABRE-SD 的 QSPI 启动介质构建了 U-Boot。当我们尝试为 HAB 身份验证签署图像时,我们遇到了缺少标头信息的问题。 我们之前已经成功验证
    发表于 03-28 09:04

    嵌入式系统中U-Boot 基本特点及其移植方法

    在介绍U-Boot 基本特点的基础上,结合U-Boot 移植经历,以MPC8xx 和嵌入式Linux 为背景,分析、探讨U-Boot移植
    发表于 04-15 09:25 17次下载

    嵌入式系统中U-Boot 基本特点及其移植方法

    在介绍U-Boot 基本特点的基础上,结合U-Boot 移植经历,以MPC8xx 和嵌入式Linux 为背景,分析、探讨U-Boot移植
    发表于 05-16 14:52 12次下载

    嵌入式U-BOOT的启动流程及移植

    在S3C44B0开发板上的移植方法和步骤。 u-boot是一个功能强大的bootloader开发软件,适用的CPU平台及
    发表于 02-25 16:00 59次下载

    基于U-Boot在S3C2410上的移植

    基于U-Boot在S3C2410上的移植
    发表于 10-30 10:02 12次下载
    基于<b class='flag-5'>U-Boot</b>在S3C2410上的<b class='flag-5'>移植</b>

    Linux U-Boot开发指南

    介绍 U-Boot 的编译打包、基本配置、常用命令的使用、基本调试方法等, 为 U-BOOT移植及应用开发提供了基础。
    的头像 发表于 03-06 10:28 941次阅读
    Linux <b class='flag-5'>U-Boot</b>开发指南

    Linux的QSPI驱动移植方法验证方法

    本文主要讲述了Linux的QSPI驱动移植方法验证方法
    的头像 发表于 04-14 10:20 2080次阅读
    Linux的<b class='flag-5'>QSPI</b><b class='flag-5'>驱动</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>及<b class='flag-5'>验证</b><b class='flag-5'>方法</b>

    U-boot的MMC DM框架驱动移植方法

    本文主要讲述了U-boot的MMC DM框架驱动移植方法。DM是Driver Model的简称,是U-boot的基本
    的头像 发表于 04-14 10:22 1791次阅读
    <b class='flag-5'>U-boot</b>的MMC DM框架<b class='flag-5'>驱动</b>的<b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    U-boot的DPU驱动移植方法

    本文以ARM Mali系列显示处理器驱动为例,讲述了U-boot的DPU驱动移植方法
    的头像 发表于 04-14 10:25 978次阅读
    <b class='flag-5'>U-boot</b>的DPU<b class='flag-5'>驱动</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    U-boot的SPLASH_SCREEN(启动画面)驱动移植方法

     在上一篇《U-boot驱动-DPU驱动移植》中,以ARM Mali系列显示处理器驱动为例,讲述了U-b
    的头像 发表于 04-14 10:28 955次阅读
    <b class='flag-5'>U-boot</b>的SPLASH_SCREEN(启动画面)<b class='flag-5'>驱动</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    U-boot的DPU驱动移植方法

    U-boot的VIDEO驱动子系统集成了ARM Mali系列显示处理器的驱动,支持Mali-DP500、Mali-DP550和Mali-DP650显示处理器,驱动源码位于目录./dri
    的头像 发表于 06-09 14:35 790次阅读
    <b class='flag-5'>U-boot</b>的DPU<b class='flag-5'>驱动</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>

    U-boot驱动SPLASH_SCREEN驱动移植方法

    U-boot集成了SPLASH_SCREEN驱动源码,当使能和配置SPLASH_SCREEN驱动后,可以将启动画面使用的图片文件转换为位图数据数组
    的头像 发表于 06-09 14:39 910次阅读
    <b class='flag-5'>U-boot</b><b class='flag-5'>驱动</b>SPLASH_SCREEN<b class='flag-5'>驱动</b><b class='flag-5'>移植</b><b class='flag-5'>方法</b>