打印
[S3C2440]

S3C2440处理器nandflash启动中的“SteppingStone”疑问

[复制链接]
1929|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
标题:S3C2440处理器nandflash启动中的“SteppingStone”疑问
嵌入式的学习面广切碎,刚开始啥都不懂,学着学着感觉很多都会了,但是有时间回过头来再细分析一些事情的时候,发现还是没有搞明白一些很底层的东西。今天我就来说说自己的疑问点,也希望知道的朋友帮帮忙!

问题描述:
1. 只讨论s3c2440的nandflash启动。
2.根据datasheet介绍,当2440选择从nandflash启动时,系统会自动的将nandflash的前4K代码拷贝到2440内部的“SteppingStone”即内部的SRAM(4K),此时内部的SRAM映射到地址0X0000 0000.
问题:这个自动的过程是怎样实现的?


对于上述问题自己目前的理解:
1. 首先自己对这个拷贝过程以及程序运行非常明白。
2.虽然在系统上电后,根据硬件NCON0、GPG13~15可以确定nandflash的一些页大小、数据位宽等参数,但是nandflash控制器是怎样自动的把前4K的数据就拷贝到了内部的SRAM中。(既然是拷贝肯定存在数据的传输,这个过程是怎样进行的?)
难道nandflash控制器只根据NCON0、GPG13~15的配置就可以从外接的nandflash芯片里面读取数据到2440内部的SRAM吗?如果这样,我们在后面的nandflash驱动代码中的对nandflash的读、写操作是否可以借鉴自动拷贝的功能进行实现,会不会简单些?
3.nandflash的本身特点读取数据时会出现位翻转,但是在系统上电后nandflash启动时ECC是没有启动的,那么如果在前4K代码拷贝中的关键数据出现问题,造成系统启动失败(虽然概率较小)怎样解决?
请知道的朋友解答!

105901uynhnuzf7ryrxk9f.jpg (411.2 KB )

105901uynhnuzf7ryrxk9f.jpg

相关帖子

沙发
wujiarui| | 2016-11-14 12:06 | 只看该作者
拷贝过程应该是在芯片内部有一段固化的程序来执行的,这段程序会读取相关配置管脚获取NAND Flash 信息。

使用特权

评论回复
板凳
wujiarui| | 2016-11-14 12:08 | 只看该作者
NAND Flash芯片,厂家会保证Block0不是坏块,用户不用考虑这个地址范围的坏块问题。

使用特权

评论回复
地板
小时代的我们|  楼主 | 2016-11-15 08:13 | 只看该作者
下面是另外的网友给的解释,便于大家交流:首先,nandflash sd卡等设备是不具备片上执行能力的,片上执行能力是指直接使用一个指针就可以访问到地址,比如 Nor 片内 ram sdram  ddr 等,它们可以。但是很多厂商说,我们的设备支持 nandflash 启动,支持 sd 卡启动,是因为在 bootloader 之前还有一个 bootrom 过程,芯片厂商固化了一段引导代码在片内rom里,比如说它可以读取 nandflash ,sd 卡。比如2440 可以读取nandflash 前4K到片内ram,至于为什么它能读nandflash ,这个我也不知道,但是可以猜测一下,这里设置了位宽和页大小等,相比nandflash控制器,少了时序设置和eec等一些设置,我觉得有可能三星在引导代码里初始化了 nandflash控制器,只不过它的初始化使用的时序是效率非常低的,通吃所有nand的初始化~至于你说的ECC的问题,或许只有三星的人才知道它是如何保证的,或许压根没有保障!

使用特权

评论回复
5
mokart| | 2017-5-10 17:42 | 只看该作者
2440手册上说 并不检查ECC   During the auto boot, the ECC is not checked. So, the first 4-KB of NAND flash should have no bit error 所以说厂商应该保证这段区域不能有ECC错误。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

24

帖子

1

粉丝