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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8077|回复: 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错误,掉电重启后可以正常
6 g5 Q! |( O& b7 D( u4 b3 J% W6 Y; v4 A: x) h: Y
进系统但是SSH应用程序报ubifs读node错误,这种现象会不会是u-boot的bug, 日志文件如下:/ H6 v* t# [  c6 V

( e/ x% X1 L( N8 E) ^* Y/ ]- m
6 ~0 e3 k! K7 a/ e) XU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)
3 a' B4 |9 `6 a4 [3 \! i! d" I0 s; l7 X
) v9 g# W$ g9 w0 G# mI2C:   ready
! ^7 U# {' s4 h- ]DRAM:  128 MiB
2 E. M& ]9 c, c, |WARNING: Caches not enabled
3 e0 c. Y! @- ~NAND:  512 MiB
( s. j; ]& v8 gMMC:   davinci: 0
. o; S& w4 `! E3 JBad block table not found for chip 08 }# a- H3 ]- v* n0 @
Bad block table not found for chip 0
2 |6 B- o- ^3 d' L( [5 |Bad block table written to 0x00001ffe0000, version 0x017 L2 o8 i. L$ g$ s1 {0 `
Bad block table written to 0x00001ffc0000, version 0x01
9 f/ r3 |" j3 \1 BIn:    serial6 T+ x2 u8 J7 E2 A- i# s) K! {
Out:   serial3 c! H1 e6 g- c: Y/ b
Err:   serial
" U, o) ^6 {+ C* gDefault using MAC address from environment
/ X) Z$ h7 g8 K! ^. PNet:   DaVinci-EMAC  \( G+ e9 O* c9 o
Hit any key to stop autoboot:  0
  S& L4 Z8 f1 g4 T; q' K) C% R4 k. `5 j) \
Loading from nand0, offset 0x120000
" h# J1 z1 O: d- P9 ]) Q  h   Image Name:   Linux-3.3.0
/ W  N: b& T" ~% G$ _   Image Type:   ARM Linux Kernel Image (uncompressed). w& B) q7 h. S4 J4 z
   Data Size:    2843400 Bytes = 2.7 MiB
% T2 R  U0 y/ z" O   Load Address: c0008000
- N  u2 e4 E! `  M' m   Entry Point:  c0008000
  N$ X! Q# p5 g) I) X## Booting kernel from Legacy Image at c0700000 .... }7 g% H# E: I' I; l
   Image Name:   Linux-3.3.0
9 J, ?  ^+ k' g0 @! z9 c/ q% W   Image Type:   ARM Linux Kernel Image (uncompressed)
5 x2 }+ s& \; V' P   Data Size:    2843400 Bytes = 2.7 MiB
& q( Q7 K9 \' \! _   Load Address: c0008000
9 P5 G3 Y" V3 L0 J   Entry Point:  c0008000
8 D& @7 e- Q$ U8 z. ^* ^  M   Verifying Checksum ... Bad Data CRC8 h9 l6 {" ~- [# u2 s0 {
ERROR: can't get kernel image!+ U6 Q. P# S: [) n
U-Boot > Nand boot...
1 }% }1 u' H4 U: _: |4 p5 M
( f) k8 i5 g4 Z
% M! n3 b* X" P/ Z6 A$ O8 PU-Boot 2012.04.01-00054-g9a6dfff (Nov 04 2014 - 22:07:15)1 M  |; R0 l9 N, i- n

% P9 M. `, {7 s- q0 e! t  |$ dI2C:   ready6 I5 ~# {# d, J; g( B0 f& }
DRAM:  128 MiB  y0 U& C& I3 b4 k, ?; F
WARNING: Caches not enabled2 G5 }. c6 ?* a: c' v/ ?
NAND:  512 MiB- y8 }8 [. u7 G0 K' I# J7 k( n
MMC:   davinci: 02 ]1 y% V" V  f% y  G' ]% [% I; k
Bad block table not found for chip 02 ^4 R! {" o% J- r* P! D' }
Bad block table not found for chip 0
8 q  f3 _- z! O: b, ?: Y' |0 BBad block table written to 0x00001ffe0000, version 0x01
" T; _' K9 M: K/ xBad block table written to 0x00001ffc0000, version 0x01
7 Q2 A: p" p% f/ w" gIn:    serial% ~8 }$ @; f9 G0 X( T
Out:   serial
+ d4 M; S7 d# C+ d; D, qErr:   serial
+ ]; ~4 P. N& G% ]; F, G7 sDefault using MAC address from environment
" H. K, f1 O# l& |' c' ]Net:   DaVinci-EMAC
/ R# h* }9 n+ q8 i4 j7 BHit any key to stop autoboot:  0- q" L: ~4 F5 L" o

2 e! i2 h; Z& y% G* Q$ oLoading from nand0, offset 0x120000
! C1 ^: G3 p4 A7 q' w* ^4 W/ a$ [. p0 {   Image Name:   Linux-3.3.0
' Y5 A$ A& p$ s$ `1 ?% H5 j  Z/ U   Image Type:   ARM Linux Kernel Image (uncompressed)& ^6 ^2 `; i* ]
   Data Size:    2843400 Bytes = 2.7 MiB
& j. A/ ]+ r* F2 p; `3 Y2 M   Load Address: c0008000
' @( e% m$ [* O7 T+ H   Entry Point:  c0008000
. l  T/ Y# c3 S4 S; ~## Booting kernel from Legacy Image at c0700000 ...' ~$ X" T! E. e% L- u" a
   Image Name:   Linux-3.3.0
* ~* {' h" N3 Z& T, k   Image Type:   ARM Linux Kernel Image (uncompressed): Y& r$ ~: v+ h% W# |2 T6 ?
   Data Size:    2843400 Bytes = 2.7 MiB( @% |! d3 l- [% y+ V
   Load Address: c0008000
6 k$ }& ]/ g+ b2 z$ ?( O   Entry Point:  c0008000! I# C+ Y7 d  |, ?/ a
   Verifying Checksum ... OK
( J0 g% l: M6 W! n0 B   Loading Kernel Image ... OK
. O4 A; \) r' ~: `2 MOK5 @: c0 @; r: E3 ?/ p4 x$ b" {
# Y* }) f' C+ Z8 u  ?$ e7 O1 @
Starting kernel ...
/ s4 }% i2 T) o
2 t7 b( S3 `9 r+ ]' IUncompressing Linux... done, booting the kernel.7 l' B' Q& u) F) @# T# R. v
[    0.000000] Booting Linux on physical CPU 03 R) ?6 E3 u+ m: S: @9 [
[    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
) O$ e1 R8 g: n1 p! E. g8 ^[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
, U$ V" \9 J7 V( D9 s4 Y[    0.000000] CPU: VIVT data cache, VIVT instruction cache: v7 |9 k/ p+ b8 g4 O
[    0.000000] Machine: DaVinci DA850/OMAP-L138/AM18x EVM
5 k! l- o- }, g. c[    0.000000] Memory policy: ECC disabled, Data cache writeback
0 j" @) S' M5 Y- C: n# z) m4 l: s; h[    0.000000]  =======> da850_evm_map_io!1 D  u8 Y/ M1 `& q7 Z
[    0.000000] BUG: mapping for 0x80000000 at 0xfffe0000 out of vmalloc space  r; O8 P* c& @
[    0.000000] DaVinci da850/omap-l138/am18x variant 0x1
% ~3 R& F6 t( ?
8 E# B6 N7 A$ v" S2 E/ o& u" ], r9 H5 U
' v* D. a5 I. e  z
......
9 r4 u  k% E- R- v& _tarting Dropbear SSH server: [   17.173901] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 35700 V# y6 u6 G$ o' a4 @
[   17.182220] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1
) r, b, l, t/ e( t$ v6 h$ U[   17.191623] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22
9 {1 h( m( d8 Y# D0 A6 g# i; d[   17.202389] UBIFS error (pid 1063): ubifs_read_node: bad node length 4082, expected 3570
$ ]2 ]! Z7 ^/ _- `8 H- j/ `3 O6 K) G+ |[   17.210675] UBIFS error (pid 1063): ubifs_read_node: bad node at LEB 486:101360, LEB mapping status 1; w1 T7 l7 E, g  \
[   17.220069] UBIFS error (pid 1063): do_readpage: cannot read page 22 of inode 3091, error -22
' a4 p$ G  `2 w/etc/rc5.d/S10dropbear: line 70:  1063 Bus error               start-stop-daemon -S -x "$DAEMON" -- $KEY_ARGS -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS! k; P0 X# @+ X- l) v* y0 j
Starting telnet daemon.
, `* I$ Z* e- t/ J8 i9 H: e0 R6 {' l
......
$ U: ?* t6 _0 X2 p8 n# ?/ hStopping Bootlog daemon: bootlogd.2 c1 L( F: H. k: p& G1 n

) \& R, ]* N6 x& J5 Y! z _____                    _____           _         _
( }: a3 P) y$ x4 w, W|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
* }& l, O- W& y|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
3 Z; T; J  b% @2 b! l|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|' b2 R1 ~. x2 r# C# q8 u* b: d6 U
              |___|                    |___|
$ F) u3 V% G  G- e. U' [3 H8 z1 y* Q2 E; S3 F
Arago Project http://arago-project.org tl ttyS2% B- f3 B1 q' v. m9 W9 I

6 K/ m& Q% _: j3 I. c0 W2 PArago 2013.06 tl ttyS2# H8 u8 ?2 \$ o2 Y+ Z
. @2 R" s1 N* l) B1 {" K- J" f
tl login: root (automatic login)
5 j/ |5 m; K2 d2 [2 k! f% u. N  F# C- ~" E0 D# N. m, D
root@tl:~#! Z, B0 e% i7 Q/ E, k3 y" ^

/ @6 }) l& Y0 o
分享到:  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
7 _9 B, z  J; q; M16C554串口芯片是连接在emifa总线,nand flash也是连接emifa总线,有可能被影响了。 ...

* x/ w7 ~9 @# @3 P1 G) Q+ B会是数据线影响,还是片选之间干扰,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$ Z6 x( ^8 F$ ^- S8 t
可以参考创龙的多串口模块TL16CP754,就是通过emifa扩展串口,相应的驱动源码,例程都是提供的。 ...
4 I0 l: N, Z  F& F* c, R  V
EMIF相关配置应该是没问题的,spansion的片子在延长总线时序,增加时钟之后,UBIFS逻辑坏块试了1000次反复满规格擦写不会出现,但是某些核心板还是会出现重启后内核bad crc,一般是在更改系统里文件并reboot之后出现,这时在u-boot中reset,又正常了,但是还是会出现在1 Y+ c/ s' z" G8 `% x. v
Starting kernel ...6 L$ p+ u" `3 l8 K$ m
Uncompressing Linux... done, booting the kernel.之后卡住的现象!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-11 23:17 , Processed in 0.040230 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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