NAND flash升级linux后反复启动

[复制链接]
4164|6
 楼主| yinmeren 发表于 2013-4-22 20:37 | 显示全部楼层 |阅读模式
操作如下,问题依旧:
1,升级norflash的uboot
2,格式化nandflash
3,按照说明升级uboot,**,kernel,filesystem,升级filesystem打印如下:
Now, Downloading [ADDRESS:30000000h,TOTAL:53813770]
RECEIVED FILE SIZE:53813770 (648KB/S, 81S)

NAND erase: device 0 offset 0x640000, size 0xf9c0000
Skipping bad block at  0x03000000
Skipping bad block at  0x03020000
Skipping bad block at  0x03320000
Skipping bad block at  0x037a0000
Skipping bad block at  0x043c0000
Skipping bad block at  0x0a100000
Skipping bad block at  0x0b220000
Skipping bad block at  0x0b960000
Skipping bad block at  0x0cb40000
Erasing at 0xffe0000 -- 100% complete.
OK

NAND write: device 0 offset 0x640000, size 0x3352200

Bad block at 0x3000000 in erase block from 0x3000000 will be skipped
Bad block at 0x3020000 in erase block from 0x3020000 will be skipped
Bad block at 0x3320000 in erase block from 0x3320000 will be skipped
Bad block at 0x37a0000 in erase block from 0x37a0000 will be skipped
Writing data at 0x38a3800 -- 100% complete.
53813760 bytes written: OK

4,nandflash 启动反复打印如下信息:
---------------------------------------------+
| S3C2440A USB Downloader ver R0.03 2004 Jan  |
+---------------------------------------------+
USB: IN_ENDPOINT:1 OUT_ENDPOINT:3
FORMAT: <ADDR(DATA):4>+<SIZE(n+10):4>+<DATA:n>+<CS:2>
NOTE: Power off/on or press the reset button for 1 sec
      in order to get a valid USB device address.

Press Space key to Download Mode !
Booting Linux ...
Copy linux kernel from 0x00240000 to 0x30008000, size = 0x00300000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
data abort
pc : [<30008a48>]    lr : [<300080f0>]
sp : 302b1400  ip : 00000024  fp : 302b03e0
r10: 40000000  r9 : 30000000  r8 : 30008000
r7 : 0000270f  r6 : 302b03b8  r5 : 73c590d6  r4 : 30008000
r3 : 0000270f  r2 : 302c1410  r1 : 302b1410  r0 : 302c1410
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Resetting CPU ...

*** Warning - bad CRC or NAND, using default environment

UPLLVal [M:38h,P:2h,S:2h]
MPLLVal [M:5ch,P:1h,S:1h]
CLKDIVN:5h
请问这个是什么问题啊?
 楼主| yinmeren 发表于 2013-4-22 20:38 | 显示全部楼层
下面是格式化时候的打印:
NAND scrub: device 0 whole chip
Warning: scrub option will erase all factory set bad blocks!
         There is no reliable way to recover them.
         Use this command only for testing purposes if you
         are sure of what you are doing!

Really scrub this NAND flash? <y/N> : y
Erasing at 0x280000 --   1% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0x2e00000 --  18% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5

NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0x30a0000 --  19% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0x35c0000 --  21% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0x4280000 --  26% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0x9ea0000 --  62% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0xb0a0000 --  69% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0xb840000 --  72% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0xca20000 --  79% complete.
NAND 256MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0xffe0000 -- 100% complete.
OK
jlass 发表于 2013-4-23 09:48 | 显示全部楼层
从你的描述来看应该是内核就没起来。
可能性比较多,内存的高位地址有问题,或者拷贝的速度太快,或者nand的写不好等等都有可能。
我建议你可以把内核的debug功能打开,可以适当的排除一些问题。
zbhbyc 发表于 2013-4-23 10:04 | 显示全部楼层
nand里有坏块,建议换个nand试试
jlass 发表于 2013-4-23 10:09 | 显示全部楼层
zbhbyc 发表于 2013-4-23 10:04
nand里有坏块,建议换个nand试试

有坏块是很正常的事情,并不影响使用
francis_hao 发表于 2014-8-16 21:53 | 显示全部楼层
楼主问题解决了吗?我的现在也出现这种情况,烧录内核的时候检测到坏块并跳过了,我猜想是拷贝内核到ram的时候没有跳过坏块导致数据错误,但不知道怎么解决。
shell.albert 发表于 2014-8-16 22:22 | 显示全部楼层
如果Flash是好的话,那肯定就不是这的事。
以前碰到过使用emmc4.4的flash跟使用emmc4.5的使用就有区别,必须要修改drivers/mmc/core/mmc.c驱动程序跳过版本检测才能正常工作。你这个也有可能是旧驱动跟新芯片不兼容所致。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部