eyhxh

eyhxh

0个粉丝

3

问答

0

专栏

2

资料

eyhxh  发布于  2017-11-24 09:59:34
采纳率 0%
3个问答
5777

HI3531 使用32M flash MX25L(256/257)XX 的bug解决记录

 
之前的现象:
1、uboot可以启动,输入命令都没有问题。
2、但是setenv的 环境参数,在sa都不能保存(没有提示任何错误)
3、使用sf earse 命令和sf read 命令发现没有工作。

解决方案:
uboot 里面  /3531uboot/u-boot-2010.06/drivers/mtd/spi/hisfc350/hisfc350_spi_ids.c
如图位置

出了标准读写函数的其他函数都屏蔽。

之后:
可以保存参数sa命令了,sf 命令是正常的


说明:
1、我不太懂其中的原理,按理说MX25L(256/257)XX uboot应该是完全支持的,但是为什么有部分读写函数不支持,或许是硬件问题?
2、现在flash的部分也还在测试中。。。有没有另外的bug也难说……毕竟系统没有完全跑起来233333
我来回答
回答12个
时间排序
认可量排序

ngswfx

1个粉丝

55

问答

1

专栏

40

资料

ngswfx 2017-11-24 11:02:59
认可0
本帖最后由 ngswfx 于 2017-11-24 11:04 编辑

我调试用的板子,也是这种情况,由于调试需要随时修改代码,然后传到板子上更新,有时候又会脱机工作,所以nfs用起来,mount不成功,程序老是占用,umount不了lib等目录,所以弄了个32Mflash,基本都正常,也能sa env,操作系统也正常,但是在系统里面千万不能软重启,否则启动不了,如果断电重启就可以,估计就和这个8PIN_4IO有关系,当然可能还牵扯到uboot源码以及kernel源码都需要一并修改的问题,尤其是重启的代码处理问题上,平时产品不舍得用这个32M,所以没啥影响,都是8腿小flash

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-11-24 11:38:55
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=81173&ptid=38288]ngswfx 发表于 2017-11-24 11:02[/url]
我调试用的板子,也是这种情况,由于调试需要随时修改代码,然后传到板子上更新,有时候又会脱机工作,所以 ...[/quote]


软重启的时(主要是非正常软重启,比如狗起作用), 如果flash没有reset, 那么对于32M的flash就会有问题, 原因是32Mflash的工作模式有两种(即3byte/4byte, 这个是指访问flash的命令中的地址长度), 而海思芯片一开始读取flash上的uboot是一般默认使用3byte模式, 如果这时候flash处于4byte模式,那就无法读出uboot,导致无法引导

32Mflash一般两种情况下不会有问题
1. 在上电时不会出问题,  这时候flash会reset, 会进入3byte模式
2. 使用reboot命令重启,  linux会调用mtd的驱动把flash设回到3byte模式或是reset, 前提是驱动有相关代码

但是无法解决非正常软重启的问题, 如果要解决只能在硬件设计时用上flash的reset管脚, 这里要注意的是flash有8pin和16pin, 如果16pin的那简单, 有单独的reset管脚, 而8pin的话reset管脚是和SIO3数据管脚复用的, 意味着如果使用reset.那么就不能使用SIO3, 即CPU读写flash时只能1bit/2bit,不能用4bit的方式





qn1514966050

0个粉丝

2

问答

0

专栏

0

资料

qn1514966050 2018-04-10 21:07:03
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=81178&ptid=38288]zhuangweiye 发表于 2017-11-24 11:38[/url]
软重启的时(主要是非正常软重启,比如狗起作用), 如果flash没有reset, 那么对于32M的flash就会有问题,  ...[/quote]

你好,我想问下,这个3bit,4bit模式在软件上是如何设置的

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2018-04-11 07:28:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=86358&ptid=38288]qn1514966050 发表于 2018-4-10 21:07[/url]
你好,我想问下,这个3bit,4bit模式在软件上是如何设置的[/quote]

3bit, 4bit 是什么概念?

是3bytes 4bytes ?这个是由cpu通过spi发命令给flash来实现的, 在uboot和linux kernel中都有源码

qn1514966050

0个粉丝

2

问答

0

专栏

0

资料

qn1514966050 2018-04-11 14:23:15
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=86360&ptid=38288]zhuangweiye 发表于 2018-4-11 07:28[/url]
3bit, 4bit 是什么概念?

是3bytes 4bytes ?这个是由cpu通过spi发命令给flash来实现的, 在uboot和li ...[/quote]

嗯嗯,多谢啦

ebainar

0个粉丝

7

问答

0

专栏

0

资料

ebainar 2018-04-12 10:31:09
认可0
值得表扬:victory:victory::victory::victory:

bay_mini

0个粉丝

2

问答

0

专栏

0

资料

bay_mini 2019-12-24 09:23:17
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=81178&ptid=38288]zhuangweiye 发表于 2017-11-24 11:38[/url]
软重启的时(主要是非正常软重启,比如狗起作用), 如果flash没有reset, 那么对于32M的flash就会有问题,  ...[/quote]

那是不是海思在uboot下就访问不了16M之后的地址了?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2019-12-24 09:39:04
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=151695&ptid=38288]bay_mini 发表于 2019-12-24 09:23[/url]
那是不是海思在uboot下就访问不了16M之后的地址了?[/quote]

怎么可能呢? uboot支持32M的flash

bay_mini

0个粉丝

2

问答

0

专栏

0

资料

bay_mini 2019-12-24 14:31:04
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=151697&ptid=38288]zhuangweiye 发表于 2019-12-24 09:39[/url]
怎么可能呢? uboot支持32M的flash[/quote]

3byte模式寻址空间最大不是16M吗?如果不是,3byte模式下是怎么访问到32M的?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2019-12-24 15:17:18
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=151725&ptid=38288]bay_mini 发表于 2019-12-24 14:31[/url]
3byte模式寻址空间最大不是16M吗?如果不是,3byte模式下是怎么访问到32M的?[/quote]

uboot里面会根据flash的型号知道该flash的大小,如果是32M的就会先发命令让flash进入4byte模式(这些都是在3byte模式下的操作),然后用4byte模式来访问flash,当然能访问32M了

其实uboot和内核的操作基本是一样的,看代码就清楚了

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2017-11-24 10:48:02
认可0
marking...........

hero

0个粉丝

1

问答

0

专栏

0

资料

hero 2018-04-11 12:22:53
认可0
学习了......
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区