让ambarella s2l 支持32M SPI Flash(W25Q256)

前言:
     最近在做ambarella s2l系列项目时,由于flash容量不够,需要将16M的spi nor flash(W25Q128)增大到32M  spi nor flash (W25Q256)。由于amba默认sdk没有对W25Q256有很好的支持,因此调试过程中碰到了一些问题,现将调试过程中碰到的问题及解决方法记录如下:

1.flash容量没有增大,分区失败问题:

make menuconfig 中配置:


ambarella_spinor.c中增加w25q256


2.reboot失败问题
修改以上两个地方之后,flash容量已经增大到32M,分区也成功了,但是在soft reset的时候出现系统卡死,复位失败,如下

一直停留在此位置。。。

之后在网上参考了这个博客:
具体的reboot流程请参考上面这博客。

    大概是说系统默认支持24bit(3byte)的spi地址模式,而要支持32M以上的spi flash,则必须切换到32bit(4byte)地址模式.在soft reset的时候,spi停留在了32bit模式,没有切换回默认的24bit模式,导致reset后,S2L在默认的24bit模式,无法和32bit模式的spi通讯,系统死机.
需要通过设备驱动中一个shutdown的方法来解决问题。

查阅ambarella_spinor.c的代码,发现驱动中已经有了shutdown的方法。

那为什么还是失败呢?
继续跟踪。。。

发现这个位置,在winbond的flash时直接就return了,直接参考下一个的代码,修改如下:



最终问题解决。

成功重启。.

总结:
     通过注册设备的shutdown方法,让我们有机会在系统重启的时刻,做一些deinit的操作.通过此种方法来复位spi flash。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值