SOS,从NAND启动,uboot加载linux 内核报 bad data crc错 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7611|回复: 5
打印 上一主题 下一主题

SOS,从NAND启动,uboot加载linux 内核报 bad data crc错

[复制链接]

89

主题

104

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
跳转到指定楼层
楼主
发表于 2015-7-21 12:53:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用创龙核心板加自制的底板,总线上挂接16C554串口芯片,突然出现从nand启动后u-boot加载linux内核时报 bad datacrc错误,掉电重启后可以正常
5 Y/ J6 _2 c1 \6 O9 ?+ q- r1 e6 S  i# r& P# u
进系统但是SSH应用程序报ubifs读node错误,这种现象会不会是u-boot的bug, 日志文件如下:
! c, x* E* o$ g9 i* S* t; B" g: }) z5 @- i8 Z0 Z

8 X+ u3 j) Y; U6 \, M# dU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)
3 F! U/ R* y) @; w6 K' f2 s" z- o+ ~! k
' t; O) t& e3 {. kI2C:   ready7 u$ w, ]! o! i! p& `1 L
DRAM:  128 MiB
/ T, `6 y- `' E% |$ g! A8 qWARNING: Caches not enabled
5 y3 M0 B6 P3 `) H" P$ e- D% Q; iNAND:  512 MiB
; M; _' J+ j! x4 h# h# BMMC:   davinci: 0
1 W( I% g2 E- T( s- X- \Bad block table not found for chip 0; \0 W$ V8 k/ L/ r
Bad block table not found for chip 0- Y9 q$ c# A7 D$ I: `$ n% N
Bad block table written to 0x00001ffe0000, version 0x01
2 m9 ]  a0 Z! s" h) lBad block table written to 0x00001ffc0000, version 0x01
7 f7 p" a* o) I" w4 CIn:    serial8 g4 N8 T$ F5 f3 `0 r/ o) q
Out:   serial" R7 |; s5 I2 W- s
Err:   serial$ E% M( L) {  o7 U, @& _* i
Default using MAC address from environment
1 {8 P, i( s; i! gNet:   DaVinci-EMAC
  }/ b" ]- Y8 Y/ B; q6 `Hit any key to stop autoboot:  0
4 ]0 m; }( d% f$ x( @- s
; Q- S1 _: Y, e7 g8 x5 F0 ?% \7 ~Loading from nand0, offset 0x120000$ z( ^, Z4 ^/ d( B9 P* Q1 u" q
   Image Name:   Linux-3.3.0, g5 d& V7 U; b9 H5 ~4 y
   Image Type:   ARM Linux Kernel Image (uncompressed)- x4 j' s1 d1 j6 v& W4 K# h
   Data Size:    2843400 Bytes = 2.7 MiB/ x8 m) A. N6 \
   Load Address: c0008000
, ?5 r7 x8 E# i) Z   Entry Point:  c0008000" s" R- L, b3 Q+ A" S0 W. w- V
## Booting kernel from Legacy Image at c0700000 ...! k7 Q5 q+ k( P4 i" O  }; H' s& |; b6 g
   Image Name:   Linux-3.3.0/ r: F+ F3 S% z* `. W/ Y
   Image Type:   ARM Linux Kernel Image (uncompressed)
6 V8 O/ u& o5 Y4 H8 b) U0 {   Data Size:    2843400 Bytes = 2.7 MiB$ g) S: N! J) e& i3 F
   Load Address: c0008000; u; Z' E; q8 D
   Entry Point:  c0008000% v% X6 Z9 |: X5 @" L
   Verifying Checksum ... Bad Data CRC/ ~4 D+ K; U3 {% O% t5 \
ERROR: can't get kernel image!: y+ M1 V5 V$ V) Y7 a; N  G
U-Boot > Nand boot...
2 o6 P/ V6 ^) u' b
  b+ H9 I4 e5 ]# N/ _$ h, |. p! J& ^0 ~* k; r8 d. [
U-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)5 D) h2 z; C, R: k

& R) ^, {2 U& t# H1 c2 J4 sI2C:   ready8 ~2 I  X3 L8 j) ~$ \3 x2 ?
DRAM:  128 MiB6 Z' E+ p5 V0 r( c6 i
WARNING: Caches not enabled
5 j) n, v# \/ t6 gNAND:  512 MiB2 h8 a, S. Z( V8 t$ w& j
MMC:   davinci: 00 p0 t# e8 j6 s6 ]' h7 `3 ]+ e
Bad block table not found for chip 06 [( F4 A: s& O
Bad block table not found for chip 0
7 G0 j# f2 h5 M  m9 R: P! p. tBad block table written to 0x00001ffe0000, version 0x01( N, W+ M, |+ Z' D9 a
Bad block table written to 0x00001ffc0000, version 0x01
4 B; N6 i- C, m4 P+ QIn:    serial0 C/ O( `6 }! q2 @) |" w8 b
Out:   serial
4 Y7 s( a1 p+ G; KErr:   serial
5 x" [7 K2 a+ G$ d& Q+ UDefault using MAC address from environment, p) o3 V. b* L$ B' \5 S7 k, x' S4 b
Net:   DaVinci-EMAC
- _6 A# i5 s, E& ?' p1 iHit any key to stop autoboot:  02 b% m# u# _. O$ R: x
1 ~( ~+ m6 {& v0 l& F2 Q  f
Loading from nand0, offset 0x1200001 X8 `" N- U& Y
   Image Name:   Linux-3.3.0
: x0 s7 x2 W9 A/ v   Image Type:   ARM Linux Kernel Image (uncompressed)
( c/ M1 x. f3 b) h   Data Size:    2843400 Bytes = 2.7 MiB9 ^% w" [4 P# a3 q( c* Q# x- R
   Load Address: c0008000
' z( R; a2 n& f4 }& v( K( K   Entry Point:  c0008000
4 @* V5 D. m1 s3 W0 {1 Z6 g7 f## Booting kernel from Legacy Image at c0700000 ...
  w! l2 q8 `3 C) p" A& I$ q' f   Image Name:   Linux-3.3.0% a9 f- d- b* A* i  a6 E
   Image Type:   ARM Linux Kernel Image (uncompressed)
, |( ^1 t7 \& v  D/ V- G+ ~   Data Size:    2843400 Bytes = 2.7 MiB
: w  Y0 s) w3 k1 W" A. \4 Z& {. l   Load Address: c0008000
* K$ O5 }% F: H' T   Entry Point:  c0008000" \! Z8 b9 z( H% C. n* E
   Verifying Checksum ... OK
* D( c  u/ H3 S+ [   Loading Kernel Image ... OK
  F7 G0 v1 H8 EOK
4 O( ~8 |5 R1 D8 @8 v; }% u' m! U, M9 n2 m# C3 F/ ]
Starting kernel ...
2 N4 X/ q, P6 H/ [. s. Y% V
% X( N. p, |$ {Uncompressing Linux... done, booting the kernel.
7 ^$ H/ e# a1 j$ q$ i% e[    0.000000] Booting Linux on physical CPU 0- ^" g9 z& i5 }! u( Z6 \  k
[    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$ I' p! C8 Q9 ]2 f8 M! ~
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177; l6 W/ z! @1 c2 l( S' \  n
[    0.000000] CPU: VIVT data cache, VIVT instruction cache' K. H9 {9 I( o- i' P& B; A+ ]' c
[    0.000000] Machine: DaVinci DA850/OMAP-L138/AM18x EVM3 W- f7 l, K# s9 A& l. X' X. Z3 R
[    0.000000] Memory policy: ECC disabled, Data cache writeback
( K# e8 o7 y0 O, k( r$ X+ O[    0.000000]  =======> da850_evm_map_io!
* ^( v2 h# i2 o3 V" Q* o[    0.000000] BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space
* a# Z/ J' I! N2 V8 Q& v8 l[    0.000000] DaVinci da850/omap-l138/am18x variant 0x1" {9 E, ^6 z, d" F1 |7 C

  N+ @: S  w1 |1 x0 ?0 m  q4 h1 s2 O1 p7 }  {
' R8 x2 \0 R' u7 [4 R
......
! Q% t2 ^- `& Ztarting Dropbear SSH server: [   17.173901] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 3570
) t; r& J( M. |[   17.182220] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1
* A; u! h% [/ F# v0 s7 x[   17.191623] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22
: r0 G$ Z; q# I" V2 e[   17.202389] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 3570
# e3 S- v; e) |, e; c6 D[   17.210675] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1* N! z3 {5 l5 n% X. J
[   17.220069] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22" ?6 E7 J, z- [! N& |3 n4 a4 e8 T% e
/etc/rc5.d/S10dropbear: line 70:  1063 Bus error               start-stop-daemon -S -x "$DAEMON" -- $KEY_ARGS -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS
  |8 x# F  S6 Q5 @5 wStarting telnet daemon.
" |# B& C( y6 |% [' _
5 x/ a9 `8 w" m# k9 C: J2 _......
5 O; ^8 a2 L+ T# F( _* UStopping Bootlog daemon: bootlogd.
6 K* L' h2 z- m
, c5 m4 v7 R( t _____                    _____           _         _; {# ~5 z1 \. S9 Q3 Z7 T, x
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
1 U! ^  f/ j: U4 J+ |, b; ?& B|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|; {! x+ j8 f  c% `6 q) B
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|- S+ B6 g" x  i, X/ o
              |___|                    |___|6 m" v8 B) Z' y2 c. N5 i5 Q
% l/ b/ W  s! v; D! S
Arago Project http://arago-project.org tl ttyS2+ a1 |& p/ a) A/ S6 t
- i9 b0 I) Q% |" Y/ p! I5 y
Arago 2013.06 tl ttyS2" I5 O4 s- M( l& d9 O+ X! Q& U
' |  z- ~, w5 r3 C, l& ~
tl login: root (automatic login)
1 Y$ p/ [$ Q: P1 ~) j0 \1 |
7 a0 N, m; Q2 v7 e& Proot@tl:~#
/ n- n1 r9 S# n% B, e/ `# X1 q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
沙发
发表于 2015-7-21 13:54:08 | 只看该作者
16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。
回复 支持 反对

使用道具 举报

89

主题

104

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
板凳
 楼主| 发表于 2015-7-21 14:51:04 | 只看该作者
teddy 发表于 2015-7-21 13:54
+ k! f9 U* L: k9 L: Z' F16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。 ...

" u$ T  r" O" C5 `. c$ a会是数据线影响,还是片选之间干扰,16c554 是一上电就复位的。
回复 支持 反对

使用道具 举报

89

主题

104

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
地板
 楼主| 发表于 2015-7-21 14:52:25 | 只看该作者
有没有可能EMIF哪个寄存器设置不妥当产生这种影响。
回复 支持 反对

使用道具 举报

0

主题

161

帖子

1093

积分

创龙

Rank: 8Rank: 8

积分
1093
5#
发表于 2015-7-27 15:10:34 | 只看该作者
可以参考创龙的多串口模块TL16CP754,就是通过emifa扩展串口,相应的驱动源码,例程都是提供的。
回复 支持 反对

使用道具 举报

89

主题

104

帖子

391

积分

中级会员

Rank: 3Rank: 3

积分
391
6#
 楼主| 发表于 2015-8-12 10:20:09 | 只看该作者
teddy 发表于 2015-7-27 15:10. w, i5 |: G8 |# D
可以参考创龙的多串口模块TL16CP754,就是通过emifa扩展串口,相应的驱动源码,例程都是提供的。 ...
5 T7 a- h$ H% o# \
EMIF相关配置应该是没问题的,spansion的片子在延长总线时序,增加时钟之后,UBIFS逻辑坏块试了1000次反复满规格擦写不会出现,但是某些核心板还是会出现重启后内核bad crc,一般是在更改系统里文件并reboot之后出现,这时在u-boot中reset,又正常了,但是还是会出现在3 B0 S" W: g$ \9 K) b+ l" H0 |
Starting kernel ...
: g3 D6 Y8 H+ YUncompressing Linux... done, booting the kernel.之后卡住的现象!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-8-3 04:03 , Processed in 0.044570 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表