嵌入式开发者社区

标题: 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错误,掉电重启后可以正常
0 R$ I' S3 j  i# q9 }5 T0 c6 e/ [0 S: _' j6 U
进系统但是SSH应用程序报ubifs读node错误,这种现象会不会是u-boot的bug, 日志文件如下:3 l' q( n; A0 _

! M1 V) @$ ?6 Y% l0 J: k; T( u6 @
3 U# N7 k( \$ w1 W9 wU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)
  J4 t, s& T, B- R' x
! t( i. S; s) S$ t* JI2C:   ready' y5 Z0 w# E. ]
DRAM:  128 MiB3 I3 s( N+ Z% s+ ]
WARNING: Caches not enabled
  k9 C: h, e0 @( _' WNAND:  512 MiB+ ?* t* }! r. @
MMC:   davinci: 0" c2 ~+ u; c# i2 ?2 a3 g
Bad block table not found for chip 0
. K- g6 [; b8 O1 ^Bad block table not found for chip 0
1 v, `! t3 t6 {- UBad block table written to 0x00001ffe0000, version 0x01
3 a5 W! n- F9 x( Y  ~6 YBad block table written to 0x00001ffc0000, version 0x014 w% {$ L) b  G" \
In:    serial
7 N7 C$ V2 |7 ]9 R' K7 ^5 b; M+ ROut:   serial, w  o, R7 c" @
Err:   serial
1 n6 `5 V- t3 E" }5 t& iDefault using MAC address from environment
/ {7 y0 g0 }! K! J3 N& aNet:   DaVinci-EMAC
' X+ _+ b; T- z5 LHit any key to stop autoboot:  04 [2 m3 Z: |0 K2 M& y3 s

7 Q$ b# X0 v. r" |Loading from nand0, offset 0x120000" r" R+ k, W$ R& m1 C0 f8 I
   Image Name:   Linux-3.3.06 K0 D2 }( w4 l; d% o* a7 V- ]5 l
   Image Type:   ARM Linux Kernel Image (uncompressed)
8 g- i3 H3 Z8 l; J   Data Size:    2843400 Bytes = 2.7 MiB
9 t+ X- |: P* e) O' y   Load Address: c0008000& f/ X9 f  J( y# f0 v+ Q# x8 Q
   Entry Point:  c00080008 R4 u& v' z# Y! M
## Booting kernel from Legacy Image at c0700000 ...6 l0 l- P, v" u. i: g' h4 Z9 T
   Image Name:   Linux-3.3.0
/ A. u+ X! N( z3 Q0 E4 v- d   Image Type:   ARM Linux Kernel Image (uncompressed); \) T1 z9 p0 Z
   Data Size:    2843400 Bytes = 2.7 MiB& {( y, g. L: r3 w% V
   Load Address: c0008000
! K- W3 B- |( ?$ v# v% m   Entry Point:  c0008000
' j% p1 b0 u) t0 E0 A   Verifying Checksum ... Bad Data CRC
' u: m2 [; @# R3 k9 z' lERROR: can't get kernel image!
# K* A- I, K7 b4 L* uU-Boot > Nand boot..., g$ D$ ]9 O' P. k' J7 A

% q4 h" X4 A) K# L( `2 p- q4 G6 B( H8 q8 w* |  e1 d$ Z9 ^1 S2 \4 b
U-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)
! l, n* `+ C: V% M" F# u8 J+ g
5 P7 M+ h" @. W  j# pI2C:   ready. \5 v1 O5 {9 ^2 C5 I( ]
DRAM:  128 MiB3 e7 ?7 @9 m2 F. v" D( K7 a
WARNING: Caches not enabled3 S9 |! j: L6 T. L7 p5 Y7 s1 G
NAND:  512 MiB
. e$ }. Q3 ~# i9 w0 SMMC:   davinci: 0
: w7 Y2 P4 y4 X* r7 v- W- VBad block table not found for chip 0
  |4 v4 o. P% k! z( yBad block table not found for chip 0
7 ?0 h# B" F0 c6 ?) W; _+ G# nBad block table written to 0x00001ffe0000, version 0x01; ]! s$ H' ?5 c6 Y  ~& t' r* ^
Bad block table written to 0x00001ffc0000, version 0x014 }1 _# J0 g6 Y  M
In:    serial1 Y4 T/ {8 y5 ^
Out:   serial7 Y3 E9 h1 ]0 q+ H4 h) l4 d6 n4 S
Err:   serial6 X$ \. v0 L# t/ p3 i1 F
Default using MAC address from environment# \% f) n# ?- Z6 z
Net:   DaVinci-EMAC
+ B% Z! u# r! M) HHit any key to stop autoboot:  0# e( J! E1 m7 b6 R# z& E( q5 B

0 G; l% o- g2 kLoading from nand0, offset 0x120000
7 e( o$ V6 ?7 ~. [/ [! d   Image Name:   Linux-3.3.08 `  P0 a2 |$ @  h) _
   Image Type:   ARM Linux Kernel Image (uncompressed)
% t# f- r. G1 n4 B( J   Data Size:    2843400 Bytes = 2.7 MiB1 [, K# r7 Y  @2 E0 A8 i
   Load Address: c0008000$ n$ Q& R6 S" d* C/ Z+ O; b
   Entry Point:  c0008000
( k0 O4 q' d  M## Booting kernel from Legacy Image at c0700000 ...  j0 N% b; K! x) u8 w1 q0 T
   Image Name:   Linux-3.3.0) d. d2 \2 L6 g: V
   Image Type:   ARM Linux Kernel Image (uncompressed)/ {: G* w8 A) z. J% L- y
   Data Size:    2843400 Bytes = 2.7 MiB
8 i% ?0 A+ a" }) Z5 L4 D) ]1 v/ I   Load Address: c0008000
8 j" O) ~1 Q# ~+ j   Entry Point:  c0008000/ K8 m( Q& ^9 P5 {5 x
   Verifying Checksum ... OK7 o* n& P) {, |; Z2 y) i
   Loading Kernel Image ... OK
' a2 O/ K, Z/ G6 O7 j7 dOK
( U+ ]: A. X  ?  ?* Q' E" m$ K  n
" H6 H3 O) Q4 M( i6 k) s  K: A2 j$ eStarting kernel ...) b; z8 W1 ]$ G  v' y
$ E6 \2 y& q8 r) Y9 `
Uncompressing Linux... done, booting the kernel.
6 g+ u' O& l- q# e[    0.000000] Booting Linux on physical CPU 0
' }# J; |0 x& W: m8 @! n[    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" K0 V. F8 T4 _* c. C
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
% @7 `4 Q3 f) c2 Q2 l[    0.000000] CPU: VIVT data cache, VIVT instruction cache
6 a" P$ n; }  `+ k2 A; l5 I[    0.000000] Machine: DaVinci DA850/OMAP-L138/AM18x EVM1 @5 S. {& k3 z5 c
[    0.000000] Memory policy: ECC disabled, Data cache writeback; `8 y$ i- Y2 a4 K: u( d
[    0.000000]  =======> da850_evm_map_io!
$ U% T* ]- d- [* N( \4 P  l+ a[    0.000000] BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space# f4 ^8 @" j8 Q6 _5 m# X- Y
[    0.000000] DaVinci da850/omap-l138/am18x variant 0x1, V/ k. c* ~( x9 c, T' V

1 R) @1 H1 Y- l5 ]$ Y
8 M& n# ~8 [8 f9 I8 u$ \2 h! v$ p  s0 ^
......1 W7 h1 R  s; H( x
tarting Dropbear SSH server: [   17.173901] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 3570
" T) u' |4 k4 d7 y# d% l[   17.182220] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1
' k; H* y) b9 L% o[   17.191623] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22% k7 J. V9 Z  c
[   17.202389] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 35706 Z1 {3 T! z& |7 r+ f
[   17.210675] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1
2 p; F4 o  Z' \+ y[   17.220069] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -220 g3 {5 u7 w  ^
/etc/rc5.d/S10dropbear: line 70:  1063 Bus error               start-stop-daemon -S -x "$DAEMON" -- $KEY_ARGS -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS8 G! q% d' G1 r: N
Starting telnet daemon.
9 _6 Y& s0 d/ Q! o. Y1 v! d8 B% m8 \" Q7 H# C
......# z  p8 Q9 R1 @  w5 P  K
Stopping Bootlog daemon: bootlogd.
$ T& y1 Q. j4 O% @9 q. n
, t* t3 _9 C0 I) \9 h2 x _____                    _____           _         _7 E9 S+ o) P+ \7 f3 c: j
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
* m1 O) E# j- \' g, \* `|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|2 i) Z) B2 ]1 S* t* i
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|+ q' n2 l1 J, ~: @4 f* Q; u3 r$ ?
              |___|                    |___|
# D) `8 j2 a0 T% P. i9 j5 w: |' b
$ j$ w" g* _# ^& X5 f4 l6 |% mArago Project http://arago-project.org tl ttyS27 [7 H1 g  |1 n' r" R! Z  H

. _4 A6 _& c* }3 j! T* s1 yArago 2013.06 tl ttyS2
5 H+ R: Y3 `4 s: B$ H6 _
: E# z7 k6 L( o" a, Dtl login: root (automatic login)5 L/ r' D) [+ C  G; B2 S$ [% I- @6 P
+ u' H$ }% P6 g
root@tl:~#
) U( T7 W* O! [0 }) a* O
( H: b( D! n1 O6 q9 H
作者: teddy    时间: 2015-7-21 13:54
16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。
作者: custar    时间: 2015-7-21 14:51
teddy 发表于 2015-7-21 13:54! `# A  Y) b" z0 a' u7 D- c
16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。 ...
! ^8 A$ u1 F9 j2 ?: |
会是数据线影响,还是片选之间干扰,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) Z. b6 a5 n& z) f5 q+ d
可以参考创龙的多串口模块TL16CP754,就是通过emifa扩展串口,相应的驱动源码,例程都是提供的。 ...

5 ^/ k9 w" i7 E/ MEMIF相关配置应该是没问题的,spansion的片子在延长总线时序,增加时钟之后,UBIFS逻辑坏块试了1000次反复满规格擦写不会出现,但是某些核心板还是会出现重启后内核bad crc,一般是在更改系统里文件并reboot之后出现,这时在u-boot中reset,又正常了,但是还是会出现在: ]' {! w. R% L, G1 O: }( a5 S3 ?0 C
Starting kernel ...
) W: A: [, x0 z2 a5 qUncompressing Linux... done, booting the kernel.之后卡住的现象!




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