嵌入式开发者社区

标题: SOS,从NAND启动,uboot加载linux 内核报 bad data crc错 [打印本页]

作者: custar    时间: 2015-7-21 12:53
标题: SOS,从NAND启动,uboot加载linux 内核报 bad data crc错
使用创龙核心板加自制的底板,总线上挂接16C554串口芯片,突然出现从nand启动后u-boot加载linux内核时报 bad datacrc错误,掉电重启后可以正常' \: v7 M9 i  |( O( R, H

$ n- ^" z. r' T/ N1 t. H' Z" J进系统但是SSH应用程序报ubifs读node错误,这种现象会不会是u-boot的bug, 日志文件如下:  W5 j4 w) c2 {8 K! R- e+ X! \* G
! o1 a5 p& M, h. F* s
1 ~: M( a- z. i' s' Z* x. ?: B2 A% ^
U-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)7 M  T+ s9 l9 g1 w

' L  K/ F1 r2 q# h( KI2C:   ready9 K" m6 K0 S# w: H; N; F% f- F' J
DRAM:  128 MiB
9 _$ j/ d9 A6 i4 V) p3 E( F, qWARNING: Caches not enabled0 n; S+ o$ i& g2 Q- X" ~
NAND:  512 MiB
4 ~( |  e0 O0 I2 sMMC:   davinci: 0
" s) m: b; J4 C! @, m/ n5 Z+ S: yBad block table not found for chip 0/ |% f; L+ l: T8 N1 C) `
Bad block table not found for chip 0
5 f0 r. ?. Z+ v6 aBad block table written to 0x00001ffe0000, version 0x01$ Z7 a9 s, }( d
Bad block table written to 0x00001ffc0000, version 0x01; s; \6 P. m( q0 j" v" B# b
In:    serial8 v8 ~, `" `! g5 u
Out:   serial; b/ L6 T3 Q* o5 X
Err:   serial# H* w% S0 {& W5 @
Default using MAC address from environment2 B: E  ~% o1 P; }& u
Net:   DaVinci-EMAC6 V. z8 E1 [, A- M3 M( U
Hit any key to stop autoboot:  0
  H; n3 S3 s7 C% s% b8 v  r# G# `! ]& ]5 V0 C7 h: z
Loading from nand0, offset 0x120000
' l. ?4 {8 k' S7 |& Q+ ^; w   Image Name:   Linux-3.3.0% @. E( n7 T( z& `: p- i, F" T
   Image Type:   ARM Linux Kernel Image (uncompressed)
5 p% w! `: w) r0 n# S8 K# A   Data Size:    2843400 Bytes = 2.7 MiB* y: G# L; Y! c5 ~8 p9 l' j
   Load Address: c0008000
) w1 ~/ y9 Q- J   Entry Point:  c0008000. B& Z+ b9 C" O$ o! W; H9 P
## Booting kernel from Legacy Image at c0700000 ...8 s. w: _5 T( m" ]
   Image Name:   Linux-3.3.0
' Z+ F% {* m: ^. m4 y0 k% X   Image Type:   ARM Linux Kernel Image (uncompressed)& r1 Z9 B" N6 v
   Data Size:    2843400 Bytes = 2.7 MiB
* N1 v4 U. T# f/ Z; y   Load Address: c0008000' ^$ G- h6 j% {# Q5 x
   Entry Point:  c0008000
& `* z" j2 }$ y' _  i3 `4 M) t   Verifying Checksum ... Bad Data CRC
/ K2 R/ L4 v7 ^* Q& yERROR: can't get kernel image!8 x2 X2 W7 [% e$ R: W7 z' H
U-Boot > Nand boot...
7 S; c# l' S' u, m4 L, A; ?4 K7 n

/ E" R% X" Q; iU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)
0 f! T7 E, T. r2 T$ [& `5 g  g- ]) W2 k6 L- }9 M. b9 T( H
I2C:   ready7 r" a) o/ E5 f! O8 i
DRAM:  128 MiB/ \3 {1 N/ k+ G( w7 x7 O, d: A  v
WARNING: Caches not enabled
8 `3 y$ n$ u. W$ K. G2 _NAND:  512 MiB
- o* q  ]$ |! K% ?* u$ K. {7 u$ PMMC:   davinci: 0; U* a. f7 _3 u% |6 J
Bad block table not found for chip 0$ M/ K; U9 F$ j+ P
Bad block table not found for chip 0& B5 @+ `" |: d; x. ?! u
Bad block table written to 0x00001ffe0000, version 0x01
$ N  c0 j, R) a8 dBad block table written to 0x00001ffc0000, version 0x01
+ s" r7 E& Y6 M' j: Y2 Z4 t0 T3 ^In:    serial6 {- z7 j. G9 r: U0 Z
Out:   serial
# {& b5 j; D- V. H6 T  q: D. WErr:   serial
$ j9 }  A) T$ j& j. Q$ UDefault using MAC address from environment4 `: `, r! e5 h* m0 S! ^0 F
Net:   DaVinci-EMAC0 X. }  L& p: n4 \; Q- |8 a) a9 A
Hit any key to stop autoboot:  0+ C  |! b& u; j
& _9 o* q0 s) a7 F7 w
Loading from nand0, offset 0x1200008 M' z- O; u9 a3 v  x  a
   Image Name:   Linux-3.3.03 s8 r% A# W0 @) x
   Image Type:   ARM Linux Kernel Image (uncompressed)1 c: o* {: ?- P0 g( e' I/ y
   Data Size:    2843400 Bytes = 2.7 MiB9 I/ d% A5 R/ C8 W1 A
   Load Address: c0008000) B8 G( d1 p  m7 v) a
   Entry Point:  c0008000! @: [& Z  \2 E1 M* @
## Booting kernel from Legacy Image at c0700000 ...( {6 |6 z, p! V
   Image Name:   Linux-3.3.0' |; g% q$ q4 l+ I' m7 j% {
   Image Type:   ARM Linux Kernel Image (uncompressed)
4 l7 }+ _" z1 {   Data Size:    2843400 Bytes = 2.7 MiB
: i2 q# m" h% n3 d& g   Load Address: c0008000
8 U5 w6 |6 {6 s# g   Entry Point:  c0008000
0 Z* m3 o& b. g  C) Q; z   Verifying Checksum ... OK
+ G. v1 P: |6 N8 Q% r   Loading Kernel Image ... OK- a4 A) m+ f3 m2 y
OK# ?& h8 _3 W( x. Q- d; _; y+ i1 w

" T1 D; L5 T7 }( [7 p# bStarting kernel ...* _$ K5 o+ l; s0 B
8 n; X! E- R2 g3 l4 [3 U5 D: j9 e
Uncompressing Linux... done, booting the kernel.6 j0 ~: t/ W( |( T) L8 M0 a
[    0.000000] Booting Linux on physical CPU 0
, a3 M. i6 a( l3 e9 M  K/ r2 X5 \[    0.000000] Linux version 3.3.0 (root@custar-desktop) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #8 g PREEMPT Tue Apr 28 08:29:38 CST 2015
( ^/ K3 I9 A. y% O# e[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177; f+ y! q! D' F; }
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
. ~2 S2 H; j  z[    0.000000] Machine: DaVinci DA850/OMAP-L138/AM18x EVM
! P- D7 o9 F5 l; i( A[    0.000000] Memory policy: ECC disabled, Data cache writeback( p: w, R- G- i, l/ @0 d
[    0.000000]  =======> da850_evm_map_io!/ y4 C* u% u. m) f) J5 c
[    0.000000] BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space5 l! t7 u4 P; H  X. {, @7 g* ~
[    0.000000] DaVinci da850/omap-l138/am18x variant 0x1
2 Z& E& f' Y, v+ J! |! T" g* \1 w  J8 }- Y0 n' ~3 B
2 d2 @0 |  l6 g2 N6 h
+ G" z& k; ~: d5 y  m+ K
......$ w: ~+ f3 a. O4 S& y, p9 y& O
tarting Dropbear SSH server: [   17.173901] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 35702 y" W- F- S& i2 A+ ]4 i
[   17.182220] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 15 d7 t/ f: T  I. y! ^& }
[   17.191623] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22$ C, h. @6 X! D) f6 _& o" h
[   17.202389] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 3570
/ }3 z2 n& Q' v0 o: [2 `  P[   17.210675] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1* a4 b2 [, i1 N5 Q' S) C) `; ~
[   17.220069] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22
( J& v: @5 L6 ?1 I/etc/rc5.d/S10dropbear: line 70:  1063 Bus error               start-stop-daemon -S -x "$DAEMON" -- $KEY_ARGS -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS/ R* _( c) U0 S- D( J: q; u1 o( U/ W
Starting telnet daemon.$ d# R3 ~  Y0 O0 h1 [, ^; H
. v# {" l8 f8 c! y' m; @, j" _
......
. H7 o% n. Z. `; QStopping Bootlog daemon: bootlogd.
5 X: w$ Z) O% a. ]2 I- C
# z; O; x3 Q: J$ a; }& \ _____                    _____           _         _
& H. V/ `& f- K. k4 S. X5 M6 E  R|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_1 }( x) ?' o* D* b# v; h5 K: e
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|/ Q2 q* Z5 S  L  n
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|* P/ o9 C' ^$ }: {- h
              |___|                    |___|
3 z' _" [) L2 `9 n! I9 j. m& b
0 V. c! @1 w$ B0 X0 R6 \& Z$ ~Arago Project http://arago-project.org tl ttyS2
, Z3 }& @9 f7 y! c9 f, J- M9 u  y5 q+ a$ `+ O
Arago 2013.06 tl ttyS2
' D! o6 M& K. i
' t) c; W; M) ?  H: m9 a% v! |tl login: root (automatic login)
/ Q5 Y; Y( F# o( T5 o( w+ F
4 X; w2 j" I6 N  }) M0 |root@tl:~#
" c; }0 S- i; {( j6 w5 X( L! E) X% n' r

作者: teddy    时间: 2015-7-21 13:54
16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。
作者: custar    时间: 2015-7-21 14:51
teddy 发表于 2015-7-21 13:54  ?: F% x1 x4 p
16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。 ...
" J. h' v9 G0 q- n5 T
会是数据线影响,还是片选之间干扰,16c554 是一上电就复位的。
作者: custar    时间: 2015-7-21 14:52
有没有可能EMIF哪个寄存器设置不妥当产生这种影响。
作者: teddy    时间: 2015-7-27 15:10
可以参考创龙的多串口模块TL16CP754,就是通过emifa扩展串口,相应的驱动源码,例程都是提供的。
作者: custar    时间: 2015-8-12 10:20
teddy 发表于 2015-7-27 15:10
7 l& W) i1 k- n' o  X可以参考创龙的多串口模块TL16CP754,就是通过emifa扩展串口,相应的驱动源码,例程都是提供的。 ...

& y) a; o' ]- E$ `. ^EMIF相关配置应该是没问题的,spansion的片子在延长总线时序,增加时钟之后,UBIFS逻辑坏块试了1000次反复满规格擦写不会出现,但是某些核心板还是会出现重启后内核bad crc,一般是在更改系统里文件并reboot之后出现,这时在u-boot中reset,又正常了,但是还是会出现在) M3 O% S/ C, q
Starting kernel ...% P% V6 ^+ o0 q
Uncompressing Linux... done, booting the kernel.之后卡住的现象!




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4