找回密码
 注册
关于网站域名变更的通知
查看: 2706|回复: 1
打印 上一主题 下一主题

HI3515的Unable to handle kernel paging request错误

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-2-1 12:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
最近在用海思的HI3515设计一款工控机,第一版做完后,开始开发第二版,主要改动是增删了部分硬件功能,DDR颗粒从原来的HY5PS1G1631CFP-Y5C换成了H5PS1G63EFRY5C。. @( p) r/ M4 p& O( i
结果发现第二版的程序在引导过程中偶尔会出现Unable to handle kernel paging request的错误,且后边的地址经常会变化,并不是固定的错误。错误的引导信息如下:% g. i" |# x1 C  o$ q: ~
Unable to handle kernel NULL pointer dereference at virtual address 0000003c
# h! s. s' p7 K8 M. i1 c3 X pgd = c1de4000+ V3 ~# P2 z+ ~5 x2 v
[0000003c] *pgd=c1de3031, *pte=00000000, *ppte=00000000( d- Y1 _* J5 B  ?. ~
Internal error: Oops: 817 [#1]
$ X7 ?. C+ I5 @$ q- p- J/ i Modules linked in:
: ]# E( t: g4 u$ p1 o, V CPU: 0    Not tainted  (2.6.24-rt1-hi3515v100 #24)% s. @1 s% F7 r
PC is at generic_file_aio_read+0x20/0x1a4! t, W3 w5 c$ E6 q9 P+ |
LR is at do_sync_read+0xc8/0x114* [9 T' `5 x& f# i5 _/ G5 q
pc : [<c0060904>]    lr : [<c007cc1c>]    psr: a0000013# r. D) z4 _$ ~# E  m' G7 _& H" b
sp : c1dd9d18  ip : 00000000  fp : c1dd9d60
" N/ M% N% x+ F) H r10: 00000000  r9 : 00000000  r8 : c1dd9e500 B6 Q# @* H  I$ W
r7 : c1dd9d6c  r6 : c1dbb660  r5 : c1dd9dbc  r4 : c1dd9d74* B, M3 d+ R! f& a9 r! j
r3 : 00000000  r2 : 00000001  r1 : 0000003c  r0 : c1dd9d746 {; r# M" y2 F: k7 _& o
Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
5 t. h  ^+ Z. F, D- j$ S Control: 0005317f  Table: c1de4000  DAC: 00000017
) t0 U- s: {  e3 J Process rcS (pid: 219, stack limit = 0xc1dd8258): B: d  N) f  a* F' c; O
Stack: (0xc1dd9d18 to 0xc1dda000)5 f4 J5 a5 U6 L4 B2 h
9d00:                                                       c0093cc4 c00f95cc
- r1 `" x. A! V4 V  W% k5 X 9d20: 00000000 c1dd9e28 c1dd9da4 c1dd9d38 c0085be8 c0093cb4 c1dd9d74 c1dd9dbc
5 L2 q2 U3 P7 R2 ?" p 9d40: c1dbb660 c1dd9d6c c1dd9e50 00000000 00000000 c1dd9e24 c1dd9d68 c007cc1c
, w  b! M9 E& T7 G0 X* p. u4 o# \ 9d60: c00608f8 00000000 00000000 c1d6bdc0 00000080 00000000 c1dd9fb0 000000007 z0 Q3 |. x" ~/ d$ V6 L+ }) M
9d80: 00000001 ffffffff c1dbb660 00000000 00000000 00000000 00000000 c1c5c0e0
) F& j) N1 Q) K' P# q* D 9da0: 00000000 00000000 c1dd9de0 c1c5c0e0 c0049d48 c1dd9db4 c1dd9db4 000000003 Z& c6 x' S  h: a# d( i
9dc0: 00000000 c0044454 c0044004 c1dd9df8 c1dbb660 c1dd9e08 00000080 c007bde0
3 E9 L9 s* z1 S2 _8 R. v 9de0: c0065b7c c1dbb660 c1dd9e28 c1dd9fb0 c1dd8000 c0294ac8 c1dd9fb0 00000080
0 ~9 `8 A, }7 [) [# P 9e00: c1dbb660 c1d6bdc0 c1dd9e50 c007cb54 00000000 c1dd9fb0 c1dd9e4c c1dd9e28
/ D2 I2 r% B, q3 s- e7 D0 g  p 9e20: c007cd14 c007cb64 c1801b40 bf000000 00000000 c1dd9e50 c1dd8000 c0294ac8: y: x6 }& K/ g" V$ x, M: r' k( w* K
9e40: c1dd9e70 c1dd9e50 c00814b8 c007cc78 00000000 00000000 00000080 c1d6bdc0
7 T$ E) u6 [7 W1 n  Q% n9 |$ a- \ 9e60: 00000000 c1dd9e8c c1dd9e74 c0081d24 c0081474 c1dd9e98 c1d6bdc0 c1dd9fb0
* J/ D1 P; `; r) ?- F 9e80: c1dd9f30 c1dd9e90 c00ad608 c0081c98 c1d6bdc2 00000000 6e69622f 0068732f
5 l5 N% B" W  ]/ h% \ 9ea0: c1db2320 beffff7b c1dd9ee8 c1dd9eb8 c006e3e4 00000000 00000020 00000000
0 O0 z7 N2 M7 s$ b: { 9ec0: c1dd8000 00000001 00000000 c1d6bdc0 00000000 00000000 00000000 c1dd9f1c4 X& l( H# V0 k7 S6 v. {0 J
9ee0: 00000000 00000000 00000000 c1dd9fb0 00000000 c1dd9efc 00000000 00000f7b
2 T7 C" L4 V9 f3 \ 9f00: c1dd9f1c c1dd9f10 c0294e54 c1d6bdc0 fffffffe c1dd8000 c0294e34 c1d6bdc0
' z+ ?7 M/ [% f% L) S' R' e7 K 9f20: fffffff8 c1dd9f5c c1dd9f34 c0081fc0 c00ad3fc c1d6bdc0 beffff92 00000000
7 z0 U% U/ x- r$ W 9f40: 001d7bcc 001d7bc4 c1dd8000 c1dd9fb0 c1dd9f84 c1dd9f60 c0082248 c0081f2c4 ^( A) g3 S  O" E
9f60: c1c99000 001d7bcc c1dd9fb0 c1c99000 c001ffe4 001c71fc c1dd9fa4 c1dd9f88
6 [& a8 m' X+ @% _ 9f80: c00237c4 c0082124 001d7bc4 001d7ba4 00000001 0000000b 00000000 c1dd9fa88 @5 [; c1 `: X: Z7 d
9fa0: c001fe40 c0023798 001d7bc4 001d7ba4 001d7ba4 001d7bc4 001d7bcc 001d7ba4
; T* C' `& {# n" h$ Q7 M 9fc0: 001d7bc4 001d7ba4 00000001 001d7bcc 001d7bcc 00000001 001c71fc 00000000) e4 m5 w  b; y- q  o8 }
9fe0: 400833c4 be813a44 00069d44 400833cc 20000010 001d7ba4 00000000 00000000
* [2 M! n0 l- G- P Backtrace:! {5 D: o  {" a- V
[<c00608e8>] (generic_file_aio_read+0x4/0x1a4) from [<c007cc1c>] (do_sync_read+0xc8/0x114)0 L1 o% L0 e0 c6 V, M5 Q" @
[<c007cb54>] (do_sync_read+0x0/0x114) from [<c007cd14>] (vfs_read+0xac/0x144)8 J4 \9 B0 L" r& Y' N- b
[<c007cc68>] (vfs_read+0x0/0x144) from [<c00814b8>] (kernel_read+0x54/0x84)
+ u4 u1 r: F( o6 ]3 ^+ \  r8:c0294ac8 r7:c1dd8000 r6:c1dd9e50 r5:00000000 r4:bf000000
: K6 M$ r  W  S  R4 r [<c0081464>] (kernel_read+0x0/0x84) from [<c0081d24>] (prepare_binprm+0x9c/0x108)
2 [4 R- S# G& F, H  r6:00000000 r5:c1d6bdc0 r4:00000080
% F# H2 {, x8 v1 h3 q0 |- |, u [<c0081c88>] (prepare_binprm+0x0/0x108) from [<c00ad608>] (load_script+0x21c/0x240)7 e6 U1 P/ A+ L0 e7 Z- G
  r6:c1dd9fb0 r5:c1d6bdc0 r4:c1dd9e98& c0 K' k0 r3 @: M/ [
[<c00ad3ec>] (load_script+0x0/0x240) from [<c0081fc0>] (search_binary_handler+0xa4/0x1f8)
1 N! `0 S  g" X* `/ T# ~7 s  r6:fffffff8 r5:c1d6bdc0 r4:c0294e348 w& b0 M" W( C1 F; w4 t
[<c0081f1c>] (search_binary_handler+0x0/0x1f8) from [<c0082248>] (do_execve+0x134/0x184)
* a' g  `4 l. O2 Y+ F [<c0082114>] (do_execve+0x0/0x184) from [<c00237c4>] (sys_execve+0x3c/0x5c)
7 ~7 m: q" S) h" p, S [<c0023788>] (sys_execve+0x0/0x5c) from [<c001fe40>] (ret_fast_syscall+0x0/0x2c)
. R; X2 x6 u! J& t5 B  r7:0000000b r6:00000001 r5:001d7ba4 r4:001d7bc4; w) h% \! x* i. `% E; B
Code: e24dd020 e3a0c000 e58b3004 e1a04000 (e1a0a001)
" I& A8 ?1 o$ | ---[ end trace e292f16b7bf51848 ]---
1 \  u$ w9 Z1 \6 ~4 ^/ z. P: ^ Segmentation fault# M/ X. T3 p4 W3 Q- @, F
我先是把第一版和第二版上的NAND FLASH颗粒进行互换,发现新旧板上的颗粒在第一版的板子上都没有报错,而两个颗粒在第二版的板子上都会出现报错,初步确定问题是随着板子走的,而不是颗粒。% D! c% d9 r1 J2 U8 k
然后将第二版上的硬件改动还原,尽量还原到和第一版一样,然后启动还是会出现报错信息,说明外围硬件的改动没有影响到引导驱动程序出错。
5 Z9 o4 u: x/ t0 D7 u# \- Z3 O- [ 现在在把新板子寄回工厂,准备把DDR颗粒换成和第一版一样,然后再尝试一下,这个需要一些时间。# F+ ?  r$ c8 t: n$ ?  g3 ^( k% f
然后比对了前后两种DDR颗粒的spec,未见明显的参数差别。6 E) V3 k1 J3 x. s

1 B- K5 ^! G% \( s
; A1 D! `# {% q% w7 x6 V2 RPS:  \$ C6 e$ Q* P; H/ f4 F4 _# D5 ]; C
这几天集中研究了一下这个问题,汇报一下:+ q. u: R# m7 q
1.启动UBOOT后,用网络下载后边的文件到内存中的方式来启动,问题依旧会出现,排除掉NAND flash的问题。1 G- M  A2 G$ _. G
2.抓了1.8V,VREF_DDR的电压波形,没有发现drop和ripple.排除电压的问题4 Q+ u# E- ~* B, o/ o
3.把老板子上HY5PS1G1631CLFP-Y5C和新板子上的H5PS1G63EFR-Y5C互换了一下。旧版运行到现在一次都没出错* l. K8 J, y% k* A7 g+ g& P
而新版运行到现在报过一次错。
2 ^$ q8 s4 ?- ^( R( F6 e/ \ 4.买了几颗HY5PS1G1631CFP-Y5C(与原来板子上DDR比较少了一个L,原来的DDR颗粒停产了,现在这个颗粒IDD6电流略高,其他参数一样)换到板上,暂时还没看到报错,还需多跑跑看。  ^: o+ Q2 ]$ t8 ^9 W
5.基于以上的实验,感觉是layout的问题,查了新旧版的走线,是完全一样的,etch length和manhattan length一样。
3 B' }: n( H/ f) \" v/ Q+ ` 6.准备再次比对堆叠厚度,因为前后两版PCB是不同的厂子压合的,板子堆叠厚度是根据我提供的匹配阻抗由板厂自己计算的。

该用户从未签到

2#
发表于 2015-7-29 16:28 | 只看该作者
牛人,不过3515 支持的DDR2,最大200MHz吧,对布线要求这么高嘛?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 15:56 , Processed in 0.156250 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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