Thread (2 messages) 2 messages, 2 authors, 2009-09-21

Re: Linux booting issue on powerpc 440x5

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2009-09-21 09:52:07

On Fri, 2009-09-18 at 09:31 +0000, Sumesh Kaana wrote:

Hi,


I am trying to boot linux kernel (2.6.30) on PPC440x5 processor in a
custom built board. I am using simple ppc platform.


I have a small bootloader which will only copy the
simpleImage.myboard.bin to 0x400000 location of my SRAM from the
flash.


SRAM is only 16MB and bootloader creates one and only TLB of 16MB
The 440 kernel is meant to be run from memory physical address 0 in main
memory. It's not capable of relocating itself there, so I wouldn't be
surprised that this is the source of your problem.

Ben.
 
I am getting "Kernel access of bad area, sig: 11 [#1]" while kernel is
booting.


kernel crashes in different places, for different compilation


Bellow given are 2 dumps of kernel crash


In DUMP1, in back trace, execution flow is shown like,


Start_kernel() --> sort_main_extable() --> sort_extable(). and sort
extable calls some functions whose name is not mentioned.


Why is it not able to get the name of the function.?


i went through the 'objdump' of the kernel, I don't know whether it
can help me somehow, it looked like this


--
c018c730:   48 00 71 9d     bl      c01938cc <sort_main_extable>
c018c734:   48 00 3e 3d     bl      c0190570 <trap_init>
--
c01938e8:   4b f7 10 f1     bl      c01049d8 <sort_extable>
c01938ec:   80 01 00 14     lwz     r0,20(r1)
--
c01049fc:   48 00 8d 99     bl      c010d794 <sort>
c0104a00:   80 01 00 14     lwz     r0,20(r1)
--
c016b99c:   42 6f 6f 74     bc+     18,4*cr3+so,c0172910
<kallsyms_token_index+0x7400>
--


Could this be problem with "kallsyms"..? Because sort_extable() calls
sort() which is an exported function defined in linux-2.6.30\lib
\sort.c


when i checked 'objdump' of the kernel, i could see the usage of a
preserved opcode of ppc440x5 (code: eciwx).


I tried compiling the kernel with "kallsyms" disabled, that also did
not work.


In DUMP2, backtrace is not able to identify the name of 'caller' of
unflatten_device_tree(). The caller is mentioned as "[00000000]
(null)"


Could this be a stack problem, like stack pointer getting corrupted.?


At last, could this be a hardware problem(expecting to be memory
problem)..?


Can you tell me if i am missing something.?


thanks,
Shyju. N




-------------------------DUMP 1------------------------------------
id mach(): done
MMU:enter
MMU:hw init
MMU:mapin
MMU:setio
MMU:exit
bootmemarch: exit
<7>Top of RAM: 0x1000000, Total RAM: 0x1000000
Zone PFN ranges:
  DMA      0x00000000 -> 0x00001000
  Normal   0x00001000 -> 0x00001000
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00001000
MMU: Allocated 1088 bytes of context maps for 255 contexts
Built 1 zonelists in Zone order, mobility grouping off.  Total pages:
4064
Kernel command line: console=ttyS0 root=/dev/ram
Unable to handle kernel paging request for data at address 0x00021000
Faulting instruction address: 0xc010a7c4
Oops: Kernel access of bad area, sig: 11 [#1]
PREEMPT PowerPC 44x Platform
Modules linked in:
NIP: c010a7c4 LR: c010dc50 CTR: 00000000
REGS: c01bfeb0 TRAP: 0300   Not tainted  (2.6.30)
MSR: 00021000 <ME,CE>  CR: 24000044  XER: 00000000
DEAR: 00021000, ESR: 00000000
TASK = c01a94b8[0] 'swapper' THREAD: c01be000
GPR00: 00001180 c01bff60 c01a94b8 00021000 00000025 00000008 c0104968
00000000 
GPR08: 2f72616d c0110000 c0155938 c01a0000 22000024 00000000 fffff104
00000000 
GPR16: 00000000 00000000 00000000 00000000 fffffff8 000008b8 c010d758
c0104968 
GPR24: 00001198 00001190 c018a001 c01c5498 000008c0 00001188 00021000
c01c42f0 
NIP [c010a7c4] strchr+0x0/0x3c
LR [c010dc50] match_token+0x138/0x228
Call Trace:
[c01bff60] [c016b99c] 0xc016b99c (unreliable)
[c01bffa0] [c0104a00] sort_extable+0x28/0x38
[c01bffb0] [c01938ec] sort_main_extable+0x20/0x30
[c01bffc0] [c018c734] start_kernel+0x140/0x288
[c01bfff0] [c0000200] skpinv+0x190/0x1cc
Instruction dump:
7ca903a6 88040000 38a5ffff 38840001 2f800000 98090000 39290001
419e0010 
4200ffe4 98a90000 4e800020 4e800020 <88030000> 5484063e 7f802000
4d9e0020 
---[ end trace 31fd0ba7d8756001 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Call Trace:
[c01bfd90] [c0005d5c] show_stack+0x4c/0x16c (unreliable)
[c01bfdd0] [c002f17c] panic+0xa0/0x168
[c01bfe20] [c0032eb8] do_exit+0x61c/0x638
[c01bfe60] [c000b60c] kernel_bad_stack+0x0/0x4c
[c01bfe90] [c000f310] bad_page_fault+0x90/0xd8
[c01bfea0] [c000e184] handle_page_fault+0x7c/0x80
[c01bff60] [c016b99c] 0xc016b99c
[c01bffa0] [c0104a00] sort_extable+0x28/0x38
[c01bffb0] [c01938ec] sort_main_extable+0x20/0x30
[c01bffc0] [c018c734] start_kernel+0x140/0x288
[c01bfff0] [c0000200] skpinv+0x190/0x1cc
Rebooting in 180 seconds..
-------------------------------------------------------------------


-------------------------DUMP 2------------------------------------
id mach(): done
MMU:enter
MMU:hw init
MMU:mapin
MMU:setio
MMU:exit
<1>Unable to handle kernel paging request for data at address
0x40ee8053
Faulting instruction address: 0xc018ff44
Oops: Kernel access of bad area, sig: 11 [#1]
PREEMPT PowerPC 44x Platform
Modules linked in:
NIP: c018ff44 LR: c018ff20 CTR: 00000000
REGS: c01bfe10 TRAP: 0300   Not tainted  (2.6.30)
MSR: 00021000 <ME,CE>  CR: 44088024  XER: 00000000
DEAR: 40ee8053, ESR: 00800000
TASK = c01a94b8[0] 'swapper' THREAD: c01be000
GPR00: c0ffea58 c01bfec0 c01a94b8 c0ffea6e c04eb3aa 00000003 c0ffea74
00000000 
GPR08: 00000000 40ee802f c04eb3a0 c01bfec8 24082022 00000000 fffff104
00000000 
GPR16: 00000000 c016cfe8 c016cfd8 c0170cbc c01bfec8 c0ffea24 c04eb3a4
c04eb3a0 
GPR24: 00000008 c01bff8c c04eb33c c0ffea2c 00000007 c01bff88 c0ffe984
c0ffea6d 
NIP [c018ff44] unflatten_dt_node+0x158/0x520
LR [c018ff20] unflatten_dt_node+0x134/0x520
Call Trace:
[c01bff20] [c019023c] unflatten_dt_node+0x450/0x520
[c01bff80] [c01903b4] unflatten_device_tree+0xa8/0x13c
[c01bffb0] [00000000] (null)
Instruction dump:
7f85e378 7ec4b378 4be81b55 81390000 381b002c 93690000 90190000
4192001c 
813e0028 93db001c 2f890000 419e03b4 <93690024> 937e0028 387b0034
3abb0014 
---[ end trace 31fd0ba7d8756001 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Call Trace:
[c01bfcf0] [c0005d5c] show_stack+0x4c/0x16c (unreliable)
[c01bfd30] [c002f17c] panic+0xa0/0x168
[c01bfd80] [c0032eb8] do_exit+0x61c/0x638
[c01bfdc0] [c000b60c] kernel_bad_stack+0x0/0x4c
[c01bfdf0] [c000f310] bad_page_fault+0x90/0xd8
[c01bfe00] [c000e184] handle_page_fault+0x7c/0x80
[c01bfec0] [00000000] (null)
[c01bff20] [c019023c] unflatten_dt_node+0x450/0x520
[c01bff80] [c01903b4] unflatten_device_tree+0xa8/0x13c
[c01bffb0] [00000000] (null)
-------------------------------------------------------------------








______________________________________________________________________
Let us find your next place for you! Need a place to rent, buy or
share?
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help