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

HI3515的Unable to handle kernel paging request错误

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
最近在用海思的HI3515设计一款工控机,第一版做完后,开始开发第二版,主要改动是增删了部分硬件功能,DDR颗粒从原来的HY5PS1G1631CFP-Y5C换成了H5PS1G63EFRY5C。% _- D/ L+ d2 F, S) {: d. ^9 V
结果发现第二版的程序在引导过程中偶尔会出现Unable to handle kernel paging request的错误,且后边的地址经常会变化,并不是固定的错误。错误的引导信息如下:
; r% E1 F' Z/ u! E: p$ vUnable to handle kernel NULL pointer dereference at virtual address 0000003c
; q, m% A3 @0 T( v% H pgd = c1de4000: y. i. l, e# X' w( C
[0000003c] *pgd=c1de3031, *pte=00000000, *ppte=00000000; E7 @. g  r: S) d6 X
Internal error: Oops: 817 [#1]
( j  d3 B, b# i, o7 }( F Modules linked in:' z6 _% x5 l+ |5 U& Z
CPU: 0    Not tainted  (2.6.24-rt1-hi3515v100 #24), E: C* c+ \. [/ E! `$ u6 f
PC is at generic_file_aio_read+0x20/0x1a4  {; @* \# l6 t
LR is at do_sync_read+0xc8/0x114
# ^4 j, q/ r7 q  I) i& M2 F pc : [<c0060904>]    lr : [<c007cc1c>]    psr: a0000013  S/ ^3 b! p% e0 S" J$ p  T" g' ^
sp : c1dd9d18  ip : 00000000  fp : c1dd9d60
) O! Z3 R( k1 n% C! N' P r10: 00000000  r9 : 00000000  r8 : c1dd9e50
$ l2 Q) {7 @* v1 w r7 : c1dd9d6c  r6 : c1dbb660  r5 : c1dd9dbc  r4 : c1dd9d749 p* b$ Z# v5 Z& w
r3 : 00000000  r2 : 00000001  r1 : 0000003c  r0 : c1dd9d74
* {1 G) z8 y% o% u" y4 d Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
# i& t" s* o! `1 m1 ] Control: 0005317f  Table: c1de4000  DAC: 00000017
0 i7 m+ j: ~" v+ g1 m) q Process rcS (pid: 219, stack limit = 0xc1dd8258)! a; W3 Y. `4 O: S/ k% W5 A0 S
Stack: (0xc1dd9d18 to 0xc1dda000)
* ^0 f0 V% G9 Q$ f4 H3 P; g) z 9d00:                                                       c0093cc4 c00f95cc
8 `9 a# d% O, c/ n/ i. c 9d20: 00000000 c1dd9e28 c1dd9da4 c1dd9d38 c0085be8 c0093cb4 c1dd9d74 c1dd9dbc' J7 v( W8 o- y3 y% ]! [9 i3 G
9d40: c1dbb660 c1dd9d6c c1dd9e50 00000000 00000000 c1dd9e24 c1dd9d68 c007cc1c
$ ]: V! R; z. L. ^' J8 O 9d60: c00608f8 00000000 00000000 c1d6bdc0 00000080 00000000 c1dd9fb0 00000000
' \4 M% K5 m8 l/ q' e8 J# ^3 R6 X 9d80: 00000001 ffffffff c1dbb660 00000000 00000000 00000000 00000000 c1c5c0e0
+ ]: V, Y% t( E* g! L/ `3 C9 X; _- U 9da0: 00000000 00000000 c1dd9de0 c1c5c0e0 c0049d48 c1dd9db4 c1dd9db4 00000000
+ U" M8 A1 \. F  ^5 G& X 9dc0: 00000000 c0044454 c0044004 c1dd9df8 c1dbb660 c1dd9e08 00000080 c007bde0: v$ X' G* F( B$ d* P0 W: l  X* c
9de0: c0065b7c c1dbb660 c1dd9e28 c1dd9fb0 c1dd8000 c0294ac8 c1dd9fb0 000000804 A5 l% t2 d7 i# n# B
9e00: c1dbb660 c1d6bdc0 c1dd9e50 c007cb54 00000000 c1dd9fb0 c1dd9e4c c1dd9e28$ x: N3 h% t. I) E" z, b( @
9e20: c007cd14 c007cb64 c1801b40 bf000000 00000000 c1dd9e50 c1dd8000 c0294ac8
4 N5 n7 h  `: b! w: f5 S 9e40: c1dd9e70 c1dd9e50 c00814b8 c007cc78 00000000 00000000 00000080 c1d6bdc01 i" M# c) H1 x8 O$ E. W. S+ G2 I
9e60: 00000000 c1dd9e8c c1dd9e74 c0081d24 c0081474 c1dd9e98 c1d6bdc0 c1dd9fb0
9 U% Z  i, a/ V0 F3 E8 f, p 9e80: c1dd9f30 c1dd9e90 c00ad608 c0081c98 c1d6bdc2 00000000 6e69622f 0068732f, U8 S3 a$ |6 M# d/ a) L
9ea0: c1db2320 beffff7b c1dd9ee8 c1dd9eb8 c006e3e4 00000000 00000020 000000006 I3 h) Q9 K: X% B* v0 I
9ec0: c1dd8000 00000001 00000000 c1d6bdc0 00000000 00000000 00000000 c1dd9f1c
; k' Z4 O3 D' @7 i6 O2 r 9ee0: 00000000 00000000 00000000 c1dd9fb0 00000000 c1dd9efc 00000000 00000f7b6 t# Y# W/ G7 ]5 p# d
9f00: c1dd9f1c c1dd9f10 c0294e54 c1d6bdc0 fffffffe c1dd8000 c0294e34 c1d6bdc0
! |* g+ W! C- J. y0 S2 N 9f20: fffffff8 c1dd9f5c c1dd9f34 c0081fc0 c00ad3fc c1d6bdc0 beffff92 000000005 h1 U  x  U  J
9f40: 001d7bcc 001d7bc4 c1dd8000 c1dd9fb0 c1dd9f84 c1dd9f60 c0082248 c0081f2c
7 @# Z" v" f. d4 C. z 9f60: c1c99000 001d7bcc c1dd9fb0 c1c99000 c001ffe4 001c71fc c1dd9fa4 c1dd9f88) F2 a8 n, l7 I' b) Z9 B" V- O& M. G2 B
9f80: c00237c4 c0082124 001d7bc4 001d7ba4 00000001 0000000b 00000000 c1dd9fa8
1 q0 d3 j5 z5 @ 9fa0: c001fe40 c0023798 001d7bc4 001d7ba4 001d7ba4 001d7bc4 001d7bcc 001d7ba49 u8 j0 C6 Q; h" C& `
9fc0: 001d7bc4 001d7ba4 00000001 001d7bcc 001d7bcc 00000001 001c71fc 000000000 a" g% b& k6 r' w8 o
9fe0: 400833c4 be813a44 00069d44 400833cc 20000010 001d7ba4 00000000 00000000
$ `+ E8 T2 O! F  X# I. J0 }+ U Backtrace:
* J' X5 E1 G% _ [<c00608e8>] (generic_file_aio_read+0x4/0x1a4) from [<c007cc1c>] (do_sync_read+0xc8/0x114)
! o8 ^: Y6 T# U$ m& Y) I$ k+ @& S# D [<c007cb54>] (do_sync_read+0x0/0x114) from [<c007cd14>] (vfs_read+0xac/0x144)+ W1 X2 z% L! ~: f
[<c007cc68>] (vfs_read+0x0/0x144) from [<c00814b8>] (kernel_read+0x54/0x84)
1 {; N5 d0 P" m8 h" s' q  r8:c0294ac8 r7:c1dd8000 r6:c1dd9e50 r5:00000000 r4:bf000000/ W+ U0 w, c1 G. S5 B
[<c0081464>] (kernel_read+0x0/0x84) from [<c0081d24>] (prepare_binprm+0x9c/0x108)
; \1 @; e2 P/ D  Y* S5 X  r6:00000000 r5:c1d6bdc0 r4:00000080; g8 F; j8 v( O, {9 Y9 `- Q- f8 \
[<c0081c88>] (prepare_binprm+0x0/0x108) from [<c00ad608>] (load_script+0x21c/0x240)- \$ b5 X* O. A7 i
  r6:c1dd9fb0 r5:c1d6bdc0 r4:c1dd9e98
# g) `, N7 q& K7 C/ h4 O9 j. W9 p [<c00ad3ec>] (load_script+0x0/0x240) from [<c0081fc0>] (search_binary_handler+0xa4/0x1f8)
6 g) O+ A2 P" M. N8 X  r6:fffffff8 r5:c1d6bdc0 r4:c0294e34
3 }. W# d- S$ a! |0 c  ~ [<c0081f1c>] (search_binary_handler+0x0/0x1f8) from [<c0082248>] (do_execve+0x134/0x184)
4 }) }: R) y4 ?! [# h [<c0082114>] (do_execve+0x0/0x184) from [<c00237c4>] (sys_execve+0x3c/0x5c)
) ~& B0 P' a$ `6 Z; g0 T- _: E [<c0023788>] (sys_execve+0x0/0x5c) from [<c001fe40>] (ret_fast_syscall+0x0/0x2c)
. P7 v: v# E/ i% x% @9 [1 ~# O7 ]  r7:0000000b r6:00000001 r5:001d7ba4 r4:001d7bc4+ W' \1 _3 F, p: ^  P* |- @
Code: e24dd020 e3a0c000 e58b3004 e1a04000 (e1a0a001)
2 N, b+ }2 [, g ---[ end trace e292f16b7bf51848 ]---
% Q( s+ ?9 E0 G9 |; y7 J" w! {: } Segmentation fault' T4 ?1 f' j  |/ c" \" e/ ~% F
我先是把第一版和第二版上的NAND FLASH颗粒进行互换,发现新旧板上的颗粒在第一版的板子上都没有报错,而两个颗粒在第二版的板子上都会出现报错,初步确定问题是随着板子走的,而不是颗粒。
+ Q. ~& X# ?' j- {2 X' u5 ? 然后将第二版上的硬件改动还原,尽量还原到和第一版一样,然后启动还是会出现报错信息,说明外围硬件的改动没有影响到引导驱动程序出错。' k7 U3 R! d% N' h: s
现在在把新板子寄回工厂,准备把DDR颗粒换成和第一版一样,然后再尝试一下,这个需要一些时间。
5 H( S2 i1 z. R- e$ Q0 S 然后比对了前后两种DDR颗粒的spec,未见明显的参数差别。
2 w3 L; ]7 T' X: S& [2 [
/ G8 m/ F, g2 [( @0 K
. j- [% i$ ?' G& L6 dPS:
5 `. Y9 B& O, a1 g这几天集中研究了一下这个问题,汇报一下:$ u6 T) G( Q) o" }' Q# ~* z
1.启动UBOOT后,用网络下载后边的文件到内存中的方式来启动,问题依旧会出现,排除掉NAND flash的问题。
8 G& ]1 v" E/ Y% Z' V 2.抓了1.8V,VREF_DDR的电压波形,没有发现drop和ripple.排除电压的问题7 c* }$ b* Z0 ?3 Z& L, C- ^
3.把老板子上HY5PS1G1631CLFP-Y5C和新板子上的H5PS1G63EFR-Y5C互换了一下。旧版运行到现在一次都没出错1 W% J0 \1 i$ C& B3 d: h' z
而新版运行到现在报过一次错。/ r5 v) a+ g# [4 d. h( y, @# U
4.买了几颗HY5PS1G1631CFP-Y5C(与原来板子上DDR比较少了一个L,原来的DDR颗粒停产了,现在这个颗粒IDD6电流略高,其他参数一样)换到板上,暂时还没看到报错,还需多跑跑看。- u- v; N+ q5 F; ?7 |8 C
5.基于以上的实验,感觉是layout的问题,查了新旧版的走线,是完全一样的,etch length和manhattan length一样。' Y- B6 c5 ?0 L6 `" Z
6.准备再次比对堆叠厚度,因为前后两版PCB是不同的厂子压合的,板子堆叠厚度是根据我提供的匹配阻抗由板厂自己计算的。

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-10 22:30 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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