打印

请教at91sam9260 nandflash问题

[复制链接]
6130|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
llz3h|  楼主 | 2012-11-14 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
硬件平台:at91sam9260
软件平台:linux-2.6.30,jffs2文件系统

我at91sam9260板子原先用的nandflash为128M K9F1G08U0C,通过EBI总线连接到片选3。现在要把nandflash大小换成1G 的K9K8G08U0M 芯片,请问我要修改哪些代码呢?EBI每个片选区域都是256M,那现在的空间为1G,这个会不会有问题呢?jffs2文件系统要修改吗?这个问题比较急!多谢!!!

相关帖子

沙发
li_thomas| | 2012-11-14 15:54 | 只看该作者
nand flash不占用CPU的地址空间,就想x86上寻址空间只有4G,硬盘1T都可,这是两个概念。
要做什么修改?边走边看,说不定啥都不用修改。

使用特权

评论回复
板凳
llz3h|  楼主 | 2012-11-14 16:14 | 只看该作者
2# li_thomas 谢谢回复!
EBI部分每个片选区域为256M,那么我如果寻址超过这256M,linux系统会不会去其他外设寻址呢?我试了下,不修改驱动,能进入linux shell界面,但不断打印了大量的jffs2错误信息,麻烦你能帮我看下吗?谢谢!!!
主要为这几种信息:
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x149623e8: 0x4387 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x149623ec: 0x4387 instead
Further such events for this erase block will not be printed
jffs2_scan_inode_node(): CRC failed on node at 0x149627c4: Read 0x79c6fb8d, calculated 0xf366c483
jffs2_scan_dirent_node(): Node CRC failed on node at 0x1496299c: Read


Empty flash at 0x0019fffc ends at 0x001a0000
Empty flash at 0x001dfffc ends at 0x001e0000
Empty flash at 0x0021fffc ends at 0x00220000
Empty flash at 0x0025ffd8 ends at 0x00260000
Empty flash at 0x0029fffc ends at 0x002a0000
Empty flash at 0x002dfffc ends at 0x002e0000
Empty flash at 0x0031fffc ends at 0x00320000
Empty flash at 0x0039fffc ends at 0x003a0000
Empty flash at 0x0045ff98 ends at 0x00460000


uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <3>uncorrectable error : <4>mtd->read(0x800 bytes from 0xceff800) returned ECC error

0xdebe325a, calculated 0x56a8d8a8

使用特权

评论回复
地板
jlass| | 2012-11-15 09:01 | 只看该作者
能进入linux shell界面,但不断打印了大量的jffs2错误信息
说明你的设备可以使用nandflash但是分区不对
先擦除一下,再修改一下分区试试

使用特权

评论回复
5
llz3h|  楼主 | 2012-11-15 09:14 | 只看该作者
谢谢回复!
之前进入到linux shell创建了文件能创建,而且我jffs2文件系统和uImage都放的nandflash,所以nandflash应该是可以读写的。我分了三个区,这是启动部分信息:
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)
AT91 NAND: 8-bit, Software ECC
Scanning device for bad blocks
Creating 3 MTD partitions on "atmel_nand":
0x000000000000-0x000000400000 : "Bootloader"
0x000000400000-0x000040000000 : "Kernel"
0x000000800000-0x000040000000 : "jffs2"


这个有问题吗?我用的这个1G的nandflash的擦写块大小和页大小都一致的,如果要改,该怎么改呢?多谢!

使用特权

评论回复
6
jlass| | 2012-11-15 09:17 | 只看该作者
0x000000400000-0x000040000000 : "Kernel"
0x000000800000-0x000040000000 : "jffs2"

kernel分错了,应该是
0x000000400000-0x000000400000: "Kernel"
0x000000800000-0x000040000000 : "jffs2"

使用特权

评论回复
7
jlass| | 2012-11-15 09:25 | 只看该作者
你去看一下内核中关于分区的那段代码
一般的写法是
uboot分一块
kernel分一块
剩下的分一块

另外你可以看一下uboot的环境变量(bootcmd),可能也有影响(但不一定)
其他的就不好说了,你自己见招拆招吧

使用特权

评论回复
8
llz3h|  楼主 | 2013-1-16 16:35 | 只看该作者
这个问题还有待解决,不过先结贴,谢谢楼上的解答!解决问题后再上传解决的方法!

使用特权

评论回复
9
jliang3| | 2014-1-17 18:21 | 只看该作者
请问楼主解决问题了吗?

使用特权

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

本版积分规则

3

主题

25

帖子

1

粉丝