目标:使用spi的四线模式,可以加快cpu读取bios rom里面的数据,从而更快的开机

一、基础参考资料CPU手册,ROM手册,硬件连接

用到的参考资料:主要是软件编程手册中qspi寄存器部分和对应的spi rom手册(如GD25LQ128D)

注意是QSPI寄存器,不是SPi寄存器,因为现在硬件是连在QSPI线上的。

SPI主要是CE#,SCK,SI以及SO四根信号线

QSPI会把除了VCC,GND之外的线,全部变成数据线。也就是SI,SO,HOLD#,WP# 4根数据传输线

然后我们目前用的只是读取数据的时候使用4根线。对应的命令在GD25LQ128D手册

目前使用的是0x6B命令,

BIOS读取数据前要把这个命令填在D2000 qspi RD_CFG(0x4)寄存器中。

(0x6B<<24) | (0x2<<20) | (0x4<<16) |(0x7<<4) | (0x1<<3) | 0x4

其中:6B对应spi手册上的Quad Output Fast Read命令,

0x2<< 20,代表使用010---->1-1-4模式,就是读取数据使用4根线,其余使用1根线传输

0x4代表sck为pclk的16分频,也就是37.5MHZ

0x7<< 4代表 数据要在命令之后8个cycle才读取(这个可以对应spi 手册 0x6b命令的要求)

a dummy byte对应 8个cycle

二、要修打开这个值,还必须要打开QE寄存器;

上图是spi对应的手册,要把这一位置1.有些spi rom出厂就是置1并且不可修改。

要修改QE,要先进入进入spi write enable

三、要通过qspi寄存器0x****10 0x****1c来操作上面这几个寄存器

对应的流程在手册中有说明,我们使用的是寄存器端口访问,也就是先往0x****10写指令,然后往0x****1c写1发送

这个write寄存器和上面那个read寄存器比较相似

so,我们先做个实验,将时序中所需要的CS#,SCLK,SI,SO找硬件连出来到示波器

然后在uefi shell中

mm 0x****10 0x6400000 -w 4(意思是往0x2****10写0x6400000,对应0x6这个命令write enable指令)

此时没有信号

然后mm 0x****1c 1 -w 4

示波器触发模式下信号如图:

从上到下分别是clk,cs,si对应时序:

可以看到后面四位是粉色那条线,对应110,也就是0x6

说明操作正确。

四、通过硕飞烧录器来读取修改寄存器来验证操作流程是否正确

可以看到QE处于Status register2上,查手册对应的修改命令为0x1或者0x31

查看status2的命令为0x35

五、完整验证流程

1.通过硕飞烧录器将QE置0

2.在shell下通过命令将QE置1

3.通过硕飞烧录器查看QE是否需要被置1

2步骤具体流程:

2.1通过0x35命令查看QE是否置0

mm 0x****10 0x35402000 -w 4

mm 0x****1c -w 4

可以看到0x2对应的就是QE,现在是置1的

2.2先将QE置1后,通过0x6进入write enable

mm 0x****10 0x6400000 -w 4

mm 0x****1c 1 -w 4

2.3,通过命令0x1置位QE

mm 0x****10 0x1402008 -w 4

mm 0x****1c 0x200 -w 4

这个0x1命令是同时修改status1 &&status2 .有些芯片支持只修改status2的命令

2.4通过硕飞烧录器看是否烧录正确

六、代码

修改的代码路径

这段代码的意思是往x0写0x****10,往w1写0x35402000,然后把w1写到x0对应的地址上

也就是往0x****10 写0x35402000

这个b.ne意思是如果w9不等w0(0x1828a1 这个是一个区别号),就跳转3f,3f意思是后面那个3:,如果是3b,是指前面那个3

具体操作流程参考五、完整验证流程

qspi(spi四线模式)相关推荐

  1. SPI FLASH 二线/四线模式

    SPI通讯常用到的被分为四种通讯方式1)单线模式,2)标准模式,3)双线模式,4)四线模式,各自的应用场景不同. SPI单线通讯模式 SPI单线模式是将原来的两根数据线改成一根,通讯方式变成了半双工的 ...

  2. 【QSPI】 什么是QSPI SPI和QSPI异同

    什么是SPI SPI 协议是摩托罗拉公司开发的协议,SPI 的英文全称为 serial Perripheral Interface,翻译过来 就是"串行外围设备接口",属于一种高速 ...

  3. (68)SPI工作模式有哪些?分为几种极性模式。

    1.1 SPI工作模式有哪些?分为几种极性模式. 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)SPI工作模式有哪些?分为几种极性模式.: 5)结束语. 1.1.2 本 ...

  4. stm32 spi从模式配置解答

    你是不是和我一样过,被这个spi 从模式 整过,我真是逼了狗.做个分享,希望对你有帮助. 目标:stm32(战舰) 和 stm32(迷你)的spi对传(战舰做从,迷你做主) 结果:对传成功 代码不写, ...

  5. 联芯 1860平台 icn6211 mipi to RGB 转换芯片 调试 和 st7789 LCD调试spi 9bit 模式

    关键字:联芯科技,LC1860,LC186x,Chipone Technology,icn6211,mipi bridge,mipi to RGB,mipi转换芯片,RGB666,st7789,st7 ...

  6. MSP432的SPI通信模式

    目录 2.3 MSP432的SPI通信模式 2.3.1 SPI的主机模式 2.3.2 SPI的从机模式 2.3.3 串行时钟控制 2.3.3 SPI中断 2.3.4 SPI模式--eUSCI寄存器 2 ...

  7. 基于TI SYSBIOS GIO 接口封装的SPI DMA模式

    基于TI SYSBIOS GIO 接口封装的SPI DMA模式 硬件:TMS320C6748 (创龙开发板) bsp: bios_6_37_03_30 注意: DMA模式需要先使能EMDA3 TC/C ...

  8. SPI通信模式是什么?

    1. 术语 CKPOL 极性, CKPOL (Clock Polarity) = CPOL = POL = Polarity = (时钟)极性 CKPHA 相位 CKPHA (Clock Phase) ...

  9. QSPI 几种模式理解

    NOR FLASH 和NAND FLASH 区别: Nor Flash :写入和擦除的速度低:结构复杂,成本高:存储容量较小:一般用于存储Bootloader以及操作系统或者程序代码,可以在芯片内部直 ...

最新文章

  1. Bzoj1123 Blockade
  2. 支付宝支付 订单参数异常,请重新下单后再发起付款
  3. stl-vector
  4. python函数映射教学,Python 序列与映射的解包操作
  5. Android骨架屏实现方案
  6. 怎么给vue定义全局方法
  7. AI框架中图层IR的分析
  8. 怎么修改兼容模式html,HTML5中怎么调兼容性?
  9. pythonATM,购物车项目实战1,项目说明
  10. 新手引导 自定义遮罩 点击穿透
  11. testlink xml转excel
  12. 网银爬虫系统(爬取网银流水,爬取网银余额)难点分析
  13. 蓝牙定位在各行业领域中的应用及蓝牙定位原理浅析-新导智能
  14. python逐行读取xls文件
  15. SCCM 2012 R2部署,安装SCCM(四)
  16. 使用wangeditor遇到的坑,插入视频只显示音频
  17. C++ 中的线程库和 lamber 表达式
  18. OpenGL圆柱面绘制贴图
  19. VB.net中字符串转16进制,string转byte,串口发送文本直接转16进制数据
  20. springboot宠物医院管理系统

热门文章

  1. 什么是Web1.0、2.0、3.0?
  2. 2018秋招历程之28所
  3. 计算机网络 - chunk协议
  4. 最小二乘法曲线拟合 C语言实现
  5. exe停止运行C语言,处理win7应用程序已停止“异常代码c0000005”的方法
  6. c oracle帮助文档下载,Oracle 19c 官方文档——Concepts
  7. Python进阶(五)浅谈python匿名函数
  8. User’s Guide
  9. STM32之 W25Q128闪存(SPI协议)驱动代码(程序稳定,清晰明了)
  10. u-boot-2012.04.01移植到TQ2440