嵌入式开发者社区

标题: 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错误,掉电重启后可以正常
$ _+ S  x3 |5 d
& E0 w/ R4 M, J7 s进系统但是SSH应用程序报ubifs读node错误,这种现象会不会是u-boot的bug, 日志文件如下:
. V; \- L+ p) L. k. _6 ?5 w9 L! w5 l& m# A# B' \) V% e' Q2 A6 v

7 D5 o3 B+ I! O' G% N" |% p- u/ kU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)# \* `& h7 i$ T( {( b" s( x
& L+ I  S7 N5 I
I2C:   ready
) w0 Q6 c  t8 w0 L% FDRAM:  128 MiB, N7 w) D0 s, H# M
WARNING: Caches not enabled
5 y; @5 E+ T0 b* z. a) LNAND:  512 MiB( m7 h6 J$ ?* {! g; x/ H  V3 m! o
MMC:   davinci: 0; K0 s/ b+ P0 ?4 _8 o: i
Bad block table not found for chip 0( G$ H" V1 S! |' R$ i
Bad block table not found for chip 08 h" N% s; \3 G2 w+ C& S( f& h
Bad block table written to 0x00001ffe0000, version 0x01# N1 f( p, G$ {7 M. _$ s% j/ W
Bad block table written to 0x00001ffc0000, version 0x01
1 Q; q; t1 C& bIn:    serial# A; G( x3 H6 Z% @; F: H
Out:   serial8 g2 s. c: Y' ^$ ^8 {+ {0 Z0 H) Z
Err:   serial
# V# P0 O7 |2 G% W5 [" B* n5 Z" DDefault using MAC address from environment9 A3 T" [4 u2 H9 _
Net:   DaVinci-EMAC
0 B, A7 i( V" y" U* CHit any key to stop autoboot:  08 @; w3 n% A/ T
& e& u! r  V+ y! ~
Loading from nand0, offset 0x1200007 ^2 m% E0 u+ s) |* Z& w
   Image Name:   Linux-3.3.0; t! _4 l  u0 j0 I* l8 a
   Image Type:   ARM Linux Kernel Image (uncompressed)  F. u) @& M/ J4 W9 |
   Data Size:    2843400 Bytes = 2.7 MiB
; w9 o, r( B7 R" H   Load Address: c0008000
: b4 s1 N4 T7 x7 W; L   Entry Point:  c0008000
! @6 S& `6 O. x2 [2 S2 E2 S! }## Booting kernel from Legacy Image at c0700000 ...5 c! z6 P; Y$ H0 B/ E0 t8 Q! J
   Image Name:   Linux-3.3.0! Z' Q$ g' l7 \& ^: j0 d" }& c
   Image Type:   ARM Linux Kernel Image (uncompressed)0 O- T9 d& A+ v& f; u  u1 J2 r
   Data Size:    2843400 Bytes = 2.7 MiB
+ r' o& o7 `- b2 i$ j# k% c9 ~  v   Load Address: c0008000
( _8 n) |0 P2 W2 f$ u4 R  Y   Entry Point:  c0008000
1 ]2 J. I9 y7 x9 f: `' N/ K2 U   Verifying Checksum ... Bad Data CRC
2 Z' {# l6 W1 \- n" f; U* R5 \ERROR: can't get kernel image!& {* a+ S& w, e5 C, O
U-Boot > Nand boot...
+ c' j( c  _9 q# W
7 \' [; z6 r. D6 N% s) K, {9 h5 u4 A
. m( X! `9 U3 _& X8 d: PU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)
. \: |4 f2 a$ q* ]  [+ b1 \0 ^: w% ?* H2 N* ~
I2C:   ready! X$ G8 F% Z3 d/ E5 o
DRAM:  128 MiB. Q) X5 }- X& l, c
WARNING: Caches not enabled1 k/ W& r( B4 C5 `; a4 e! o7 B# J2 ~
NAND:  512 MiB3 o. l: O7 k+ v: |, I* p+ k4 x* U  ~6 e
MMC:   davinci: 0$ F! G6 R' L/ J
Bad block table not found for chip 0
9 K; J- v2 Z" i. vBad block table not found for chip 0
) a' I( x3 h4 YBad block table written to 0x00001ffe0000, version 0x01+ k3 N8 P7 [: v9 T* ?
Bad block table written to 0x00001ffc0000, version 0x01
4 K$ v  W* m" ^6 |9 yIn:    serial0 X) v5 h! N2 X# a5 p! W
Out:   serial
& h4 D. @; D" C* qErr:   serial
1 R5 ~$ h7 x, o5 z5 N2 UDefault using MAC address from environment
& x/ ?% D" O0 t. i6 e5 d! r2 KNet:   DaVinci-EMAC
+ c6 z6 C6 m9 g/ W! [" L7 ]  yHit any key to stop autoboot:  05 U+ ~( o2 H" {& B2 C
/ ]& N" F( m( F$ i0 x* @! w6 z
Loading from nand0, offset 0x120000' G$ l% n% a- d: l, ^1 ]. i; z( x
   Image Name:   Linux-3.3.0
! @4 |' I6 g2 m   Image Type:   ARM Linux Kernel Image (uncompressed)4 x) m- O5 h0 @# v) P/ Y
   Data Size:    2843400 Bytes = 2.7 MiB( g5 a+ e0 O3 {
   Load Address: c0008000
2 y; s: I1 G- P6 G   Entry Point:  c0008000' W6 \% R* @7 t
## Booting kernel from Legacy Image at c0700000 ...# G6 R5 v6 z6 W% T" v* L( X
   Image Name:   Linux-3.3.0+ ^+ D' s" q& s6 t  t( x
   Image Type:   ARM Linux Kernel Image (uncompressed)
+ e) V$ a0 q* i   Data Size:    2843400 Bytes = 2.7 MiB* l+ x( V& }: r4 N3 H; ^
   Load Address: c0008000% J3 O; G% n8 q# K: S
   Entry Point:  c0008000" k7 z7 z. b. o: P, Z
   Verifying Checksum ... OK
- j5 P+ F9 g1 }& |4 V: b   Loading Kernel Image ... OK
6 u" d: C, U5 a3 J% gOK$ T! e; |3 J9 S# \# h

" [2 K3 K3 Y2 Q* U) d+ lStarting kernel ...
& Y7 ?$ F' l4 Q4 x; I
* S# Z+ O  D  `, d/ y: PUncompressing Linux... done, booting the kernel.
: W& D( K* ?# ^# r[    0.000000] Booting Linux on physical CPU 03 K% T" Q. z! B/ t. ?  Q
[    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
& |) u# q1 g5 h5 L- c0 \[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
7 m9 J& Z. D4 d3 l' r. O- @( V[    0.000000] CPU: VIVT data cache, VIVT instruction cache
+ h, p& e$ B( i" b3 Y[    0.000000] Machine: DaVinci DA850/OMAP-L138/AM18x EVM9 |4 e8 ]! R8 }. Z- E
[    0.000000] Memory policy: ECC disabled, Data cache writeback2 q# o! B+ ]# p
[    0.000000]  =======> da850_evm_map_io!& T- H0 h& x8 w) U6 @
[    0.000000] BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space9 f7 X6 S4 x1 C7 J% Q3 p) a
[    0.000000] DaVinci da850/omap-l138/am18x variant 0x1
8 ]  U2 W* ]" h( a! d" [8 z4 Z% [& U/ M
+ k& N/ }- x, q$ y

! ~( r" z1 m$ n. s9 s' ]6 P! ]......
! o; j& H2 y) etarting Dropbear SSH server: [   17.173901] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 35708 M2 `- @' O! Q7 b
[   17.182220] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1$ P3 P4 Y$ r, p4 {  S
[   17.191623] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22
" V$ o  x$ j; F& X9 j! Z. S[   17.202389] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 3570
7 b# t- y1 _" l[   17.210675] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1
  P& k3 r& s% R[   17.220069] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22
( v& d. T' g9 q4 S# `. {/etc/rc5.d/S10dropbear: line 70:  1063 Bus error               start-stop-daemon -S -x "$DAEMON" -- $KEY_ARGS -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS1 o4 d4 m( |- [* x( f& X5 T9 b1 `
Starting telnet daemon.5 E/ n& |6 L1 c' p  B5 w0 E' J+ {

: X# O9 b8 w8 R" e1 A......
* u2 B* K' c! F! q/ jStopping Bootlog daemon: bootlogd.
! F6 s7 H# r8 H3 k2 f0 u1 S& c3 P" S
3 R- @4 I5 o0 s1 ] _____                    _____           _         _
6 g. {# h+ F% j# W4 d$ Z: _|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_; h- ~, l5 q5 J/ A+ y, V
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
, y! \; e6 r3 ?! ?% k|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|0 \  w! e, _" n5 S8 s0 N
              |___|                    |___|
' ^9 P; }6 |6 {. b
, w' D; n* O5 J( oArago Project http://arago-project.org tl ttyS2
# r2 [7 K, o$ F# Y/ w/ o7 ?0 g+ N& ]
Arago 2013.06 tl ttyS2& M" T6 ]( ?# t, F  m7 M
6 {1 `1 o2 U( ^/ L4 s% f: l# \
tl login: root (automatic login)+ m& T5 k; w$ k* R, ]/ R, G

3 L6 h7 j9 u  Iroot@tl:~#3 [" `& w0 p* F; G. }! e
* L; u7 n- s# h/ ?& t4 @* w

作者: teddy    时间: 2015-7-21 13:54
16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。
作者: custar    时间: 2015-7-21 14:51
teddy 发表于 2015-7-21 13:54" y: Q8 p* F7 ?/ E, k& w
16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。 ...
" `  m% z4 q/ D' o
会是数据线影响,还是片选之间干扰,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:101 P& [" T. r% w
可以参考创龙的多串口模块TL16CP754,就是通过emifa扩展串口,相应的驱动源码,例程都是提供的。 ...

% F& ]! [1 k# o, u2 ^; Y/ FEMIF相关配置应该是没问题的,spansion的片子在延长总线时序,增加时钟之后,UBIFS逻辑坏块试了1000次反复满规格擦写不会出现,但是某些核心板还是会出现重启后内核bad crc,一般是在更改系统里文件并reboot之后出现,这时在u-boot中reset,又正常了,但是还是会出现在7 f- d  ^! [( P( ?8 u* {' o% S. u
Starting kernel ...
  q$ D* M0 z1 C" ]4 KUncompressing Linux... done, booting the kernel.之后卡住的现象!




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