UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Contributor
Contributor
200 次查看
注册日期: ‎03-19-2019

ZCU102 FLASH扇区擦除问题

转到解答

linux内核版本2019.1,

ZCU102上的FLASH型号是MT25Q512A 有两片每片64MB,一共128MB大小,连接模式是dual parallel 并联的模式。

对flash的操作如下

操作:

1)先擦除1MB的数据,然后把这1MB全部写0(起始地址是对其的)

2)然后擦除开始的4KB数据,再往里写4KB的1。

结果:

实际结果:1(4KB)->0xff(4KB)->0(1MB-8KB)

预期的:1(4KB)->0(1MB-4KB)

可以看出擦除4KB实际却擦除8KB,在内核中加入打印,ZCU102上的flash每个扇区擦除的大小是4KB,理论上擦除4KB会应该只会擦4KB才对,但实际结果却不是。这个是为什么?

 

0 项奖励
1 个已接受解答

已接受的解答
Contributor
Contributor
135 次查看
注册日期: ‎03-19-2019

回复: ZCU102 FLASH扇区擦除问题

转到解答

@terryn Hi terry,在uboot下使用sf erase擦除的话至少要擦除128K的大小,无法进行这样的测试。

这个问题我已经搞清楚的,这是因为是zcu102的两块flash是并行连接的,对两块flash的使用是同时在用的,比如要写1M的数据,并不是都写在一块flash上,两块flash交替写的,所以对于这种连接模式,当使用扇区擦除的时候必须要两边flash都要擦除。通过设备树中flash节点上is_dual=<1>以及结合驱动代码spi_nor.c文件里的擦除函数可以知道,在对于这种并行连接的flash的擦除是这样处理的。

在原帖中查看解决方案

2 条回复2
Highlighted
Xilinx Employee
Xilinx Employee
159 次查看
注册日期: ‎06-19-2019

回复: ZCU102 FLASH扇区擦除问题

转到解答

在u-boot下操作是同样的结果吗?

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
Contributor
Contributor
136 次查看
注册日期: ‎03-19-2019

回复: ZCU102 FLASH扇区擦除问题

转到解答

@terryn Hi terry,在uboot下使用sf erase擦除的话至少要擦除128K的大小,无法进行这样的测试。

这个问题我已经搞清楚的,这是因为是zcu102的两块flash是并行连接的,对两块flash的使用是同时在用的,比如要写1M的数据,并不是都写在一块flash上,两块flash交替写的,所以对于这种连接模式,当使用扇区擦除的时候必须要两边flash都要擦除。通过设备树中flash节点上is_dual=<1>以及结合驱动代码spi_nor.c文件里的擦除函数可以知道,在对于这种并行连接的flash的擦除是这样处理的。

在原帖中查看解决方案