hi3531A平台spi nor擦除SPANSION S25FL128系类flash失败

执行对S25FL128前1M 空间的前128k flash擦除时,报如下错误

spi_general_wait_ready(85): Error: SPI nor wait ready timeout, status[0x3]

hifmc100_reg_erase_one_block(333): Error: Erase wait ready fail! reg:0x1


S25FL128器件中 有4k sector 扇区分布,共 128k byte 置于top 或bottom位置。这128k 擦除典型擦除速度为30k byte每秒,以64k为一个扇区操作擦除时,会因为内核等待擦除超时而造成失败。

海思内核的超时时间定义为2秒,这对于这种特殊的spi nor flash 来说这时间定的太短了。

linux-3.10.y\drivers\mtd\hifmc_common.h中

#define FMC_MAX_READY_WAIT_JIFFIES (2 * HZ)

修改方法:

1.直接将此值修改为(40*HZ)与Hi3536平台一致

2.对S25FL128前128k, 在if (ioctl(g_devFd, MEMERASE, &erase) < 0)后,不管成功与否均加上个把秒的sleep延迟。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值