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

HI3515的Unable to handle kernel paging request错误

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
最近在用海思的HI3515设计一款工控机,第一版做完后,开始开发第二版,主要改动是增删了部分硬件功能,DDR颗粒从原来的HY5PS1G1631CFP-Y5C换成了H5PS1G63EFRY5C。- M9 e! |, y/ K4 C) @. h6 V
结果发现第二版的程序在引导过程中偶尔会出现Unable to handle kernel paging request的错误,且后边的地址经常会变化,并不是固定的错误。错误的引导信息如下:
0 f* [8 a, P, |( x7 ^( FUnable to handle kernel NULL pointer dereference at virtual address 0000003c
' Q, q9 A, q+ l0 b. W4 u( E7 j pgd = c1de4000
* q! n. e. _6 E3 O [0000003c] *pgd=c1de3031, *pte=00000000, *ppte=000000007 C/ f8 ~' a" ^: b4 n" `4 N
Internal error: Oops: 817 [#1]8 S+ R- @1 |" k6 g
Modules linked in:
/ V" ^4 G" I4 X2 a9 O CPU: 0    Not tainted  (2.6.24-rt1-hi3515v100 #24)
' V! V- k2 P/ n+ f) _. L; a. v% ` PC is at generic_file_aio_read+0x20/0x1a4
" P. F8 {) y% q LR is at do_sync_read+0xc8/0x114
4 z2 e' X' V6 r( l6 q pc : [<c0060904>]    lr : [<c007cc1c>]    psr: a0000013
# `4 Y! v# F! |0 b sp : c1dd9d18  ip : 00000000  fp : c1dd9d604 P  l( G& M3 Q5 f+ d/ i/ S$ {3 C
r10: 00000000  r9 : 00000000  r8 : c1dd9e50
2 S7 ?0 V# ]* C# d. M+ O r7 : c1dd9d6c  r6 : c1dbb660  r5 : c1dd9dbc  r4 : c1dd9d740 N0 E" ~( v2 T3 x8 Q
r3 : 00000000  r2 : 00000001  r1 : 0000003c  r0 : c1dd9d74
0 b- d% Y* }8 L Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel* ]$ P9 N) y( h8 A4 Y1 G
Control: 0005317f  Table: c1de4000  DAC: 00000017# W4 g; E' A0 n, X
Process rcS (pid: 219, stack limit = 0xc1dd8258)
/ x( J7 c0 A9 \* `% v/ E0 u) Y7 \) ?4 N Stack: (0xc1dd9d18 to 0xc1dda000)
' M% z- a# a3 _2 y- d+ T 9d00:                                                       c0093cc4 c00f95cc$ o8 M/ i, N6 E' [8 q3 R
9d20: 00000000 c1dd9e28 c1dd9da4 c1dd9d38 c0085be8 c0093cb4 c1dd9d74 c1dd9dbc
0 l1 r2 M9 E4 ]' r 9d40: c1dbb660 c1dd9d6c c1dd9e50 00000000 00000000 c1dd9e24 c1dd9d68 c007cc1c' \. Z1 C& T& m
9d60: c00608f8 00000000 00000000 c1d6bdc0 00000080 00000000 c1dd9fb0 00000000) \" A' [! t9 _  b
9d80: 00000001 ffffffff c1dbb660 00000000 00000000 00000000 00000000 c1c5c0e05 w( a6 d# \: t: g0 H/ _
9da0: 00000000 00000000 c1dd9de0 c1c5c0e0 c0049d48 c1dd9db4 c1dd9db4 00000000
. _* B4 B. |6 A' s& k! i 9dc0: 00000000 c0044454 c0044004 c1dd9df8 c1dbb660 c1dd9e08 00000080 c007bde0/ R! u( Y: ]2 R3 i5 c
9de0: c0065b7c c1dbb660 c1dd9e28 c1dd9fb0 c1dd8000 c0294ac8 c1dd9fb0 00000080
& ^' V4 y2 Z/ N: a: ? 9e00: c1dbb660 c1d6bdc0 c1dd9e50 c007cb54 00000000 c1dd9fb0 c1dd9e4c c1dd9e28; Y: A; j7 [4 V0 M8 J0 a! G) P
9e20: c007cd14 c007cb64 c1801b40 bf000000 00000000 c1dd9e50 c1dd8000 c0294ac8. j$ Y+ a( {4 ?( _
9e40: c1dd9e70 c1dd9e50 c00814b8 c007cc78 00000000 00000000 00000080 c1d6bdc0
; z3 }& k8 H6 Y* z% Y 9e60: 00000000 c1dd9e8c c1dd9e74 c0081d24 c0081474 c1dd9e98 c1d6bdc0 c1dd9fb0( M3 O+ h; \3 p/ q* G
9e80: c1dd9f30 c1dd9e90 c00ad608 c0081c98 c1d6bdc2 00000000 6e69622f 0068732f4 o  H& I6 f( j0 I" L" O% ^0 h+ `
9ea0: c1db2320 beffff7b c1dd9ee8 c1dd9eb8 c006e3e4 00000000 00000020 00000000
  ]! z, E1 B1 F. l 9ec0: c1dd8000 00000001 00000000 c1d6bdc0 00000000 00000000 00000000 c1dd9f1c5 ~( L; ?! {3 T. b
9ee0: 00000000 00000000 00000000 c1dd9fb0 00000000 c1dd9efc 00000000 00000f7b: v! ~8 q, T. r- p% T* b& L7 R1 R
9f00: c1dd9f1c c1dd9f10 c0294e54 c1d6bdc0 fffffffe c1dd8000 c0294e34 c1d6bdc05 A- i# x- ~/ G  I. H7 C
9f20: fffffff8 c1dd9f5c c1dd9f34 c0081fc0 c00ad3fc c1d6bdc0 beffff92 00000000. K0 J. d' m7 H( a8 r. {( v, G
9f40: 001d7bcc 001d7bc4 c1dd8000 c1dd9fb0 c1dd9f84 c1dd9f60 c0082248 c0081f2c! E2 h- o4 B/ d: F2 B- u$ H- _  X5 d
9f60: c1c99000 001d7bcc c1dd9fb0 c1c99000 c001ffe4 001c71fc c1dd9fa4 c1dd9f88* l/ m' z2 |8 o$ `
9f80: c00237c4 c0082124 001d7bc4 001d7ba4 00000001 0000000b 00000000 c1dd9fa8! D1 I$ I9 A7 g# x; I2 S
9fa0: c001fe40 c0023798 001d7bc4 001d7ba4 001d7ba4 001d7bc4 001d7bcc 001d7ba4  E# `, k: r& K/ D* B  s+ ]9 S
9fc0: 001d7bc4 001d7ba4 00000001 001d7bcc 001d7bcc 00000001 001c71fc 000000007 j9 T; A) P, t7 L5 ~+ a
9fe0: 400833c4 be813a44 00069d44 400833cc 20000010 001d7ba4 00000000 000000001 ]% f3 b7 K8 u4 O: K. t7 x
Backtrace:1 `9 P3 \8 q3 m% R. o
[<c00608e8>] (generic_file_aio_read+0x4/0x1a4) from [<c007cc1c>] (do_sync_read+0xc8/0x114)( B! _* L! _4 L% c) y: E
[<c007cb54>] (do_sync_read+0x0/0x114) from [<c007cd14>] (vfs_read+0xac/0x144)' X% z$ @. t9 V
[<c007cc68>] (vfs_read+0x0/0x144) from [<c00814b8>] (kernel_read+0x54/0x84)0 L! b1 T) \# j( x* I& o/ B  F
  r8:c0294ac8 r7:c1dd8000 r6:c1dd9e50 r5:00000000 r4:bf000000" G  T2 Y  \  T- q
[<c0081464>] (kernel_read+0x0/0x84) from [<c0081d24>] (prepare_binprm+0x9c/0x108)3 d& V( Y4 Y' x
  r6:00000000 r5:c1d6bdc0 r4:00000080
. A# ?% ]1 |; H" f [<c0081c88>] (prepare_binprm+0x0/0x108) from [<c00ad608>] (load_script+0x21c/0x240)
2 _, X, N. ]1 W  r6:c1dd9fb0 r5:c1d6bdc0 r4:c1dd9e98& B* B- H* L$ G. g& T% h! l( i0 o: |$ s
[<c00ad3ec>] (load_script+0x0/0x240) from [<c0081fc0>] (search_binary_handler+0xa4/0x1f8)
& E0 k0 ?. s1 C) M0 R3 ~' S4 g' U% Q  r6:fffffff8 r5:c1d6bdc0 r4:c0294e34( \; w$ l# P- |( y7 B! Z8 q; v
[<c0081f1c>] (search_binary_handler+0x0/0x1f8) from [<c0082248>] (do_execve+0x134/0x184)
4 q2 s! C, |% z [<c0082114>] (do_execve+0x0/0x184) from [<c00237c4>] (sys_execve+0x3c/0x5c); ?* l+ }; o% P9 e2 X& {4 L
[<c0023788>] (sys_execve+0x0/0x5c) from [<c001fe40>] (ret_fast_syscall+0x0/0x2c)9 u* p! r; f9 v  L9 L
  r7:0000000b r6:00000001 r5:001d7ba4 r4:001d7bc4
8 G3 p! R: j  W$ c0 p4 D. D Code: e24dd020 e3a0c000 e58b3004 e1a04000 (e1a0a001)
6 n0 A& p1 L; u5 a" O9 i ---[ end trace e292f16b7bf51848 ]---
' z- k) f0 e" z6 n7 D Segmentation fault
& t( D, K6 a+ L) p7 [6 i$ J/ S& x7 z我先是把第一版和第二版上的NAND FLASH颗粒进行互换,发现新旧板上的颗粒在第一版的板子上都没有报错,而两个颗粒在第二版的板子上都会出现报错,初步确定问题是随着板子走的,而不是颗粒。* x+ d( E! d4 z+ K' b
然后将第二版上的硬件改动还原,尽量还原到和第一版一样,然后启动还是会出现报错信息,说明外围硬件的改动没有影响到引导驱动程序出错。
) L7 ]. T, c8 c( d# [ 现在在把新板子寄回工厂,准备把DDR颗粒换成和第一版一样,然后再尝试一下,这个需要一些时间。2 r" Z4 B1 N0 q8 J7 R" L
然后比对了前后两种DDR颗粒的spec,未见明显的参数差别。2 \; s1 k7 k' i0 l
  v5 ~0 D7 A- a- e0 I" K
6 R3 r6 B: h. B; r# b5 w( m6 F
PS:
, d+ r) j9 t( J$ E这几天集中研究了一下这个问题,汇报一下:. |/ i: J* D: I4 o0 R$ z
1.启动UBOOT后,用网络下载后边的文件到内存中的方式来启动,问题依旧会出现,排除掉NAND flash的问题。
1 ]$ ?, o7 A7 n1 h4 E. ]0 n) U2 K 2.抓了1.8V,VREF_DDR的电压波形,没有发现drop和ripple.排除电压的问题( {/ o) m' b0 d! M
3.把老板子上HY5PS1G1631CLFP-Y5C和新板子上的H5PS1G63EFR-Y5C互换了一下。旧版运行到现在一次都没出错2 Z% q" G; M6 I8 [
而新版运行到现在报过一次错。, D7 m( |9 h# E( h$ y, n. V0 z2 k7 }
4.买了几颗HY5PS1G1631CFP-Y5C(与原来板子上DDR比较少了一个L,原来的DDR颗粒停产了,现在这个颗粒IDD6电流略高,其他参数一样)换到板上,暂时还没看到报错,还需多跑跑看。
) k( E* a( ^/ K8 {7 j 5.基于以上的实验,感觉是layout的问题,查了新旧版的走线,是完全一样的,etch length和manhattan length一样。) z+ u5 m' z& j% D
6.准备再次比对堆叠厚度,因为前后两版PCB是不同的厂子压合的,板子堆叠厚度是根据我提供的匹配阻抗由板厂自己计算的。

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 16:49 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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