TI中文支持网
TI专业的中文技术问题搜集分享网站

am335x 的 nor flash 可以读取数据 但是无法写入

nor flash使用gpmc xip mux1模式, 驱动使用的是cfi,可以成功地识别并初始化flash,所以应该读取是没问题,

既然可以读取那说明硬件设计上没有问题,那么就可能是gpmc时序的问题,时序我用的是Technical Reference Manual

中的26.1.7.2 GPMC XIP Timings” ,我把驱动中的调试打印打开,擦写的执行过程中没有出现任何错误,但确实没有写到flash中,

所以我就搞不清楚到底是哪的问题了,有哪位高手能指点一下,非常感谢!


Eason Wang:

Move to Sitara forum 

Jian Zhou:

回复 Eason Wang:

从SDK06开始,就支持Nor Flash的U-boot启动和烧写了,你参考过下面的文档么:

http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/30869.aspx

huozhen:

回复 Jian Zhou:

我用的是pinmux mode0,SN74HC574NSR的锁存器,S29GL128N的nor flash(64M、16bit),

设计方面和http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/30869.aspx是一致的。

只是软件方面如果按SDK06 u-boot中的GPMC_CONFIG,flash甚至都识别不到,后来我调试发现是gpmc的读取

周期不够,所以我增加了其周期就好了,但是写入还是不行。

我也老老实实地按TRM的26.1.7.2.1的 GPMC XIP Timings改了GPMC_CONFIG,

但结果仍是可以成功读取,写入过程没有报任何错误就是无法成功写入。

之后我尝试了很多种GPMC_CONFIG,结果仍一样,有的时序执行过程可能会报

flash_is_busy: 1flash_is_busy: 1flash_is_busy: 1

Flash buffer write timeout at address 8000000 data 86c686c6Timeout writing to Flash的错误,即使没报任何错误也是无法成功写入的,

所以我就没任何头绪了,希望您能帮忙分析一下,问题可能出在什么地方,谢谢!

的错误。

通过调整gpmc的时序,flash_is_busy: 1可能会更早出现或更晚出现,不过最终还是不行。

那么是否gpmc时序的问题,导致的这一系列情况。

huozhen:

回复 huozhen:

之前uboot无法成功擦写nor flash的问题,最后发现是芯片本身坏了,

但是,也发现了若nor flash中有数据存在,则已uart引导启动时就无法识别到nor flash。

这个问题已经在多块板子上做了多次试验,结果都是如此,只要把flash中的数据擦除掉就马上可以识别到了。

不知有人是否遇到过这个问题。

huozhen:

回复 huozhen:

我现在在内核中调试nor flash,使用的是physmap、cfi_cmdset_0002的驱动,可以成功识别芯片,可以成功读取数据,但是擦除和写入都有问题,

后来我自己编写了驱动,读取擦写有时却能成功。

不知为何我在am335x上使用nor flash会遇到如此多的非常规问题,不知哪位高手能指点一下,非常感谢。

leo chen:

回复 huozhen:

你是说在uboot中把相关的扇区保护了吗?

然后就不能在linux中进行擦写?

huozhen:

回复 leo chen:

是的,我进行了很多测试,可以确定是这个原因。

赞(0)
未经允许不得转载:TI中文支持网 » am335x 的 nor flash 可以读取数据 但是无法写入
分享到: 更多 (0)