SPI协议分析仪的使用介绍及flash无法启动两种案例分析

SPI协议分析仪的使用介绍及案例分析
一、协议分析仪介绍
Kingst LA5016 USB 协议分析仪,支持众多标准协议解析,包括:UART/RS232/485,I2C,SPI,CAN,SMBUS等等。支持100MHZ的最大采用率,常用的SPI速率50M、16M均能测试
在这里插入图片描述
Kingst LA5016 USB 协议分析仪支持16通道,在硬件连接时可以随意接,然后在软件中配置每PIN的定义,以图中SPI协议为例,配置CH0 CS、CH1 CLK、CH2 MOSI、CH3 MISO。
图中标注了采样率、采样深度、开始、暂停等按键,在软件右边解析器中可以加入SPI、I2C、UART、MDIO等等,图中是抓取MOC卡开机时,CPU从flash中读取FW的过程,在右下角显示解析出的十六进
![
](https://img-blog.csdnimg.cn/20201217221305995.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDY2NDc2OA==,size_16,color_FFFFFF,t_70)

二、案例分析
针对国产CPU的BIOS出现的问题,带外刷新BIOS,重启OS无法再次进入系统,BIOS无法启动
三、分析过程
1、在产品关机状态下,带外刷新BIOS FW,刷新完成后,通过BMC串口发开机指令,BIOS不启动;
2、在上述情况下,对BIOS flash的 reset PIN,手动拉低后,再次发开机指令,BIOS 启动;
3、在设备开机状态下,带外刷新BIOS FW后,系统下reboot后,BIOS不启动;手动对reset PIN拉低后,再次按reset button后,BIOS可以启动;
初步结论:在BMC刷新flash后,需要对flash进行复位后,BIOS才能正常加载。
4、产品上flash型号:MX25L25645GM2I-08G,CPU通过BMC的SPI Pass through连接至flash;Flash除SPI信号连接至BMC外,另外的RESET和WP信号10K上拉;与公司一款intel CPU产品架构相同;
5、对MX25L25645GM2I-08G和MX25L25635FMI-10G(intel CPU上用的flash芯片)的指令进行比对,无差别,基本功能都是一致的,芯片ID都是一值的,45是35的升级换代产品。
初步结论: 硬件上与intel产品选料及设计无区别。
6、在BMC刷新BIOS之后,reset CPU后,CPU与flash交互的波形,如左图;在产品断电重启之后,CPU与flash交互的波形,如右图。
在这里插入图片描述
在这里插入图片描述
7、CPU启动后会通过发送0x03指令从flash内部读取数据,在第一次无返回数据后,会再次发送,连续发送5次,若无数据,不再发送。正常启动时,会在第二次flash的SO返回数据,如右图,异常现象如左图,一直无数据返回。
初步结论:在CPU启动时,从flash内部读取数据指令相同,区别是flash有没有返回,排除CPU端的影响。
8、抓取Intel的CPU、国产CPU产品启动时读取flash的指令与MOC2.0 Intel CPU启动时读取flash的指令进行对比;
(1)intel CPU在读取时会先读取flash的 JEDEC Flash Parameter信息,其中包括flash支持ADDRESS mode,然后用0X03指令读数据,ADDRESS MODE 为3字节;
(2)国产产品不会读取flash的 JEDEC Flash Parameter ,直接用0X03指令读数据,ADDRESS MODE为3字节。
9、intel CPU产品的烧写过程
在这里插入图片描述
国产产品的BIOS Fflash烧写过程:
在这里插入图片描述

初步结论:flash address mode默认是3字节,intel 产品在烧写及启动时,均是3字节;国产产品在烧写时切成4字节,直接开机时,国产CPU端默认要求是3字节,从而出现无法启动的情况。

四、结论及解决措施
问题根因: BMC烧录过程中,将ADDRESS mode设置为4 byte;CPU端只支持3 byte。
解决措施:在BMC烧录后将addrese mode还原成3 byte,通过soft reset或者发exit 4 byte mode指令。

五、另一flash无法启动的案例

FPGA芯片 可以匹配的flash清单中包括Macronix 的MX66U1G4芯片;
对芯片通过烧录器离线烧录FPGA FW .bin文件后,焊接在板子上,开机后FPGA FW没有正常加载,通过vivado 软件JTAG 烧录.mcs后,才能正常工作。
但在使用MICRON芯片MT25QU01时,无上述问题。
1、MICRON芯片MT25QU01GBBB8 离线烧录后贴片,开机FPGA正常加载无问题,已批量验证;
2、Macronix 的MX66U1G4芯片作为替代料进行验证,两种方式更新FW后,FPGA FW均无法正常加载, 一种是使用烧录工具离线烧录,另一种是在线通过BMC更新;
3、选用3张MX66U1G4芯片FPGA无法加载的卡子,用Vivado软件通过JTAG更新FPGA FW后,重启后,FPGA FW可以正常加载;
4、对此量测正常板卡与异常板卡,开机启动时的SPI波形差异点,总结如下:
(1)正常板卡,起始时CLK频率为2.5MHz,600us后频率改为5MHz;但异常板卡,CLK频率始终为2.5MHz;
在这里插入图片描述
在这里插入图片描述

(2)正常板卡,FLASH_SPI_D1FLASH_SPI_D3开机时有数据;异常板卡,FLASH_SPI_D1FLASH_SPI_D3开机时没有数据;
正常板卡
异常板卡

3)正常板卡与异常板卡,FLASH_SPI_CLK、FLASH_SPI_D0启动时140us的数据是相同的;

分析结论:在FPGA启动时,通过Single SPI从flash读取信息,然后通过Quad SPI从flash中读取信息,异常板卡的flash不支持Quad SPI模式,从而导致无法读出数据;
系统上电后要使用4byte Quad I/O read,需要在板厂烧录时,在烧录软件中将flash QE bit提前置位;
Flash的配置位支持软件设置,在BMC更新flash FW时,也可以设置,设置后即使断电也不会消失。

总结:上述讲述两种flash无法启动案例,一种是address mode不匹配,另一种为QE未使能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一次次知识积累

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值