嵌入式开发者社区

标题: 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错误,掉电重启后可以正常3 F  Q. _: k; `* X; q/ k

7 }3 Y5 D* y$ }$ a% i3 P/ i0 v" W进系统但是SSH应用程序报ubifs读node错误,这种现象会不会是u-boot的bug, 日志文件如下:
) \( l! Z' Y( n1 ]' I. K
: g; U8 O! Y- v1 ~
0 \" }5 ~! k* B. JU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)
2 H: [: @! T0 q# N) K
9 j% W' `  t: a; i" a7 M, CI2C:   ready7 o$ m: y& N; h4 i4 S# ?: n* W4 _
DRAM:  128 MiB
) |  d! g8 `4 m" iWARNING: Caches not enabled- D! h2 }; [$ a" s7 g' K7 Z
NAND:  512 MiB/ ]: L/ z" h, P1 B: {! i& r
MMC:   davinci: 0
5 p5 H. h9 i# [6 Z7 x  ]# i0 hBad block table not found for chip 0
' n* ]5 i8 ?8 {6 w* y: `4 FBad block table not found for chip 0
; X$ i. F: l' dBad block table written to 0x00001ffe0000, version 0x01# Y& O% ]% o) Y5 t( F0 k# `
Bad block table written to 0x00001ffc0000, version 0x01
$ n7 M7 I, u& Y' I) Q. ]. yIn:    serial  s1 A9 d; }& t( Y; Y, R7 Z! s5 D; a
Out:   serial& o2 l" g8 e* a# B
Err:   serial- @1 k/ S. L1 N7 J
Default using MAC address from environment
( q4 V3 g! _1 n% ]/ i8 ^Net:   DaVinci-EMAC
2 G- Y% o. J: R5 g3 \# d/ ]' eHit any key to stop autoboot:  0
6 ^7 X% I# l  `# H" _/ Z# F8 i% i9 z  u& T
Loading from nand0, offset 0x120000
. F3 q8 Y7 P- R  {8 I: w5 l   Image Name:   Linux-3.3.0( k+ ~# o+ E) l% a; R
   Image Type:   ARM Linux Kernel Image (uncompressed)
' |* x3 J0 Q5 y   Data Size:    2843400 Bytes = 2.7 MiB% B1 e+ t# _& Y: \
   Load Address: c0008000
8 m! `6 j) G4 Y2 F8 |8 Q   Entry Point:  c00080003 w# x0 N, Q9 O7 |7 C
## Booting kernel from Legacy Image at c0700000 ...
* c: i& W8 E& w/ G   Image Name:   Linux-3.3.0
# V3 ^4 t' x) l0 s1 e- _# F   Image Type:   ARM Linux Kernel Image (uncompressed)2 V- R2 _: z+ u# `0 ?
   Data Size:    2843400 Bytes = 2.7 MiB" D/ r+ t6 K- A) V
   Load Address: c00080003 ]# V& k0 k1 s) E6 n, z% W4 @
   Entry Point:  c0008000
4 h8 k; t* n7 V   Verifying Checksum ... Bad Data CRC1 D7 _$ E  n9 i, }1 n# q' J8 t3 }! s2 [
ERROR: can't get kernel image!
1 A3 b7 J! i5 X3 c- y" _U-Boot > Nand boot...; w9 R" v3 d+ e( g! y4 r4 ~8 q
, y, X) u: O6 w1 o- B* _: i) |5 h

7 g+ J/ l" p% bU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)
# F5 L8 _) t- s  p
3 Q! j1 \2 s) X8 tI2C:   ready& ]6 n% t5 s, J! N. Z. v# m
DRAM:  128 MiB# a4 g* t4 u( X9 l( {- {& Y' ?
WARNING: Caches not enabled" Y, [+ X" {  q2 t8 m7 j- s* j
NAND:  512 MiB
$ W) j# h9 ~# {/ JMMC:   davinci: 0
) I0 _) {1 ?2 y4 s  C4 n+ v/ GBad block table not found for chip 09 J7 L) w: d! W; u, z5 `/ k4 x
Bad block table not found for chip 02 Z: Z& V; O9 P( T' W9 C
Bad block table written to 0x00001ffe0000, version 0x016 L& @) s& Z; z9 F0 h
Bad block table written to 0x00001ffc0000, version 0x01/ ?* i+ c0 j' ?# d5 L' ]
In:    serial
. ?3 E( |  b4 v( o6 ^Out:   serial
: j7 n$ y5 [' ]6 dErr:   serial+ I  M6 b' M6 D7 B2 l7 ?. s  W3 p
Default using MAC address from environment
7 ~1 l- y: F8 HNet:   DaVinci-EMAC2 O4 z1 n4 ]  m# q3 ~
Hit any key to stop autoboot:  0
7 x* m( C/ Y( l6 P* _8 s
3 D) \% H. c. G' cLoading from nand0, offset 0x1200000 t0 ^+ ~2 T: ]0 T6 p  o
   Image Name:   Linux-3.3.0
4 D: U9 t0 J5 ~   Image Type:   ARM Linux Kernel Image (uncompressed)
* N0 z1 n+ w! R   Data Size:    2843400 Bytes = 2.7 MiB- i6 H7 k: t8 l0 |8 R- A- Z7 m
   Load Address: c0008000
  M7 J& ^) r' x/ w+ U0 a   Entry Point:  c00080002 J1 a" y8 x2 s9 ]9 v+ N: w
## Booting kernel from Legacy Image at c0700000 ...7 ^  l- U% p- \5 z3 o6 v% E
   Image Name:   Linux-3.3.0
0 J% M  F! X0 I   Image Type:   ARM Linux Kernel Image (uncompressed)
. t% p4 ]4 @* J# Z6 \   Data Size:    2843400 Bytes = 2.7 MiB  @* |% a, x% G
   Load Address: c00080009 [+ \0 [0 e# X1 Z, s( m2 Z: c. L2 K
   Entry Point:  c00080006 O7 x% u4 Y( q/ T% s
   Verifying Checksum ... OK
* |0 V- J5 A  V5 V' d6 t, x* [0 G   Loading Kernel Image ... OK
% I8 R/ y% l8 J. w) b1 W7 HOK
3 n; b, ]$ |/ S% [$ ], T  l
/ E! @& q- D, \# Z: j! L0 S% ~) {Starting kernel ...
. Z+ T6 M* ?$ [% V8 ]) z
' U% H* e% R; b3 U  e7 F+ M' mUncompressing Linux... done, booting the kernel.
# a! @# n. R3 n. m4 H1 n* S[    0.000000] Booting Linux on physical CPU 06 V- c/ l$ I; e. }$ _" }6 [: a
[    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
3 J0 Q3 B8 I# I[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177$ h, v# E4 d0 m5 L
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
$ N; f* L8 G$ z[    0.000000] Machine: DaVinci DA850/OMAP-L138/AM18x EVM7 {9 q3 i( A; B# n' v8 E
[    0.000000] Memory policy: ECC disabled, Data cache writeback
7 s% I6 B  y0 h& C" S0 L[    0.000000]  =======> da850_evm_map_io!
2 j  ^! m% w' P, s) C) T[    0.000000] BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space
! r$ k: Y, D) {* N* P5 n- e[    0.000000] DaVinci da850/omap-l138/am18x variant 0x1
, X' T  ]" q( Q
6 S0 a0 k. b/ m6 `
# E9 Q1 H. W/ L. u$ r' K6 J
, h; q+ `  R- Z6 e1 Z......, ?/ @( V, R: B- n' ~& n, z% H) ^2 O; f
tarting Dropbear SSH server: [   17.173901] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 35701 _( n) [9 e, X! v3 j; H3 w& ?
[   17.182220] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1
3 e+ R+ t/ `8 D* m! ]7 y[   17.191623] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22) q, A9 I, M. s* ?1 A
[   17.202389] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 35701 Z0 Z/ |0 b9 q
[   17.210675] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 13 b# K' c# N! u; a( Y, F
[   17.220069] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22, s% I6 a& W2 U
/etc/rc5.d/S10dropbear: line 70:  1063 Bus error               start-stop-daemon -S -x "$DAEMON" -- $KEY_ARGS -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS
7 y* M& u( Y, p6 ZStarting telnet daemon.
* `) x  \/ i& H) t. W
8 f9 V, _' O3 s( l. X......
. [1 X- V$ K$ n+ I' k6 n+ lStopping Bootlog daemon: bootlogd.. q5 M7 `9 F+ F( s$ w3 n9 ?( x1 P6 `
6 c6 ?$ y5 n- f7 N1 s
_____                    _____           _         _7 N( r/ e+ v2 O; R0 _: Z
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
) r5 G) S$ \+ {. B/ ]|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|8 L$ e' W+ ^% R4 G7 {$ I
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|4 [7 s" U7 w/ @) ^
              |___|                    |___|0 o7 M% u' Z; `) i# a, V+ y: ]
' s. R+ y/ s8 a: |6 e
Arago Project http://arago-project.org tl ttyS2+ H0 s. R# y! {2 P$ `

/ m  t) Y7 T" n& Q/ c1 g8 nArago 2013.06 tl ttyS2( `$ I/ \' k- F% }! v% P8 e
& _" Y  Q( j4 v# o4 l
tl login: root (automatic login)* D/ |4 O. ?  N' H9 L

8 B. J, }; o/ [  z; t% D) e; Droot@tl:~#
+ |7 T) f& t9 `2 @; \3 N! m) s+ j9 v0 f# f8 K6 d& t

作者: teddy    时间: 2015-7-21 13:54
16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。
作者: custar    时间: 2015-7-21 14:51
teddy 发表于 2015-7-21 13:54
8 j! G% K3 T' s" F16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。 ...
8 X* h4 A& `3 c$ r7 x, p1 W" y/ k
会是数据线影响,还是片选之间干扰,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
/ A' N) V: G! W7 b可以参考创龙的多串口模块TL16CP754,就是通过emifa扩展串口,相应的驱动源码,例程都是提供的。 ...

% D) P0 _; o0 gEMIF相关配置应该是没问题的,spansion的片子在延长总线时序,增加时钟之后,UBIFS逻辑坏块试了1000次反复满规格擦写不会出现,但是某些核心板还是会出现重启后内核bad crc,一般是在更改系统里文件并reboot之后出现,这时在u-boot中reset,又正常了,但是还是会出现在3 x' s& [7 ]/ k  x: E: D2 e
Starting kernel ...' k# d) {& W3 w% E+ j4 L( o% q
Uncompressing Linux... done, booting the kernel.之后卡住的现象!




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