We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Visitor nollan
Registered: ‎04-11-2012

linux kernel hangs



I am using the guides at xilinx wiki to build the linux kernel for microblaze on a nexys2 board. I know this isn't supported/tested but I figured I'd give it a try.


I've made some progress, however the kernel hangs during boot. This is my output.



Early console on uartlite at 0x84000000

bootconsole [earlyser0] enabled
Linux version 3.4.0-rc2-45782-g258f742-dirty (root@debian) (gcc version 4.1.2) #10 Wed Apr 11 20:12:51 CEST 2012
setup_cpuinfo: initialising
setup_cpuinfo: No PVR support. Using static CPU info from FDT
cache: wt_msr_noirq
setup_memory: max_mapnr: 0x1000
setup_memory: min_low_pfn: 0x80000
setup_memory: max_low_pfn: 0x81000
setup_memory: max_pfn: 0x81000
Zone PFN ranges:
DMA 0x00080000 -> 0x00081000
Normal empty
Movable zone start PFN for each node
Early memory PFN ranges
0: 0x00080000 -> 0x00081000
On node 0 totalpages: 4096
free_area_init_node: node 0, pgdat c0344238, node_mem_map c0569000
DMA zone: 32 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 4064 pages, LIFO batch:0
early_printk_console remapping from 0x84000000 to 0xffffd000
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 4064
Kernel command line: console=ttyUL0 root=/dev/ram
PID hash table entries: 64 (order: -4, 256 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 10640k/16384k available (3236k kernel code, 5744k reserved, 111k data, 166k bss, 2013k init)
Kernel virtual memory layout:
* 0xffffe000..0xfffff000 : fixmap
* 0xffffd000..0xffffe000 : early ioremap
* 0xf0000000..0xffffd000 : vmalloc & ioremap



I'm not sure on how to debug this to investigate further. Any pointers or suggestions are appreciated!






Tags (3)
0 Kudos
2 Replies
Visitor nollan
Registered: ‎04-11-2012

Re: linux kernel hangs

If I stop the processor during this "hang", it is stuck in some code not related to the kernel (?), that would be adresses of 0xc0000000. Is this some sort of exception ? I baffled...


Processor stopped

XMD% User Interrupt, Processor Stopped at 0x80001fa4

XMD% rrd

r0: 00000000 r1: c0331f84 r2: c032fa48 r3: c033542c
r4: 000000b8 r5: c03353b8 r6: 00000000 r7: 00000000
r8: 00000330 r9: 00000001 r10: 00000000 r11: 00000000
r12: 4108ce80 r13: c0344ec0 r14: 00000000 r15: c035d3f0
r16: 00000000 r17: c0003a98 r18: ffff9a60 r19: c0331f84
r20: 00000000 r21: c0344ec0 r22: c03353b8 r23: 000065a0
r24: 000f4240 r25: 00000000 r26: 00000000 r27: 00000000
r28: 00000000 r29: 00000000 r30: 00000000 r31: c03353b8
pc: 80001fa4 msr: 000046a0



0 Kudos
Visitor nollan
Registered: ‎04-11-2012

Re: linux kernel hangs

Finally, I got some output from where it hangs, and it seems to be related to softirq. I have an interrupt controller in the design, obviously, but there isn't much options to set.


Again, I'm thankful for any help regarding this.


------------[ cut here ]------------
WARNING: at kernel/softirq.c:138 __local_bh_enable+0xb8/0xc8()
Modules linked in:
Kernel Stack:
852d3e08: 85008154 852e1940
852d3e10: 00000000 00000000 8523f5d0 0000008a 8500ecb8 8500819c 8523ef04 8523f5d0
852d3e30: 0000008a 8500ecb8 852fe7b0 000005ae 852d2000 00000200 852d4328 00000000
852d3e50: 00004345 8500ecb0 00000000 00004000 8513a71c 00000000 85051fd8 852e1ef8
852d3e70: 8500f05c 8506e608 00000000 8506e5e8 00000000 8506e7a4 8500f244 852d2000
852d3e90: 00000000 8500f2a8 858011e0 8506ec90 852e1940 852d3ef8 00000000 852d2000
852d3eb0: 85001720 8506ec90 00000000 000005a0 00000000 85800120 85800300 852d3ef8
852d3ed0: 00000000 85005160 00008000 85005668 8506ea1c 8506e608 00000000 8506e5e8
852d3ef0: 852d3f90 000005a0 00000000 852d3f90 852d0c48 fffffffc 852d4474 00001a81
852d3f10: 00000001 00000000 850031bc 389fd980 852e28ec 00000000 00000000 852e1fe0
852d3f30: 00000010 852f7a18 00000000 850031bc 00000000 852d3f90 00000000 85321bc0
852d3f50: 000005a0 852d4328 00000000 00004345 8526ba88 00006268 85268488 00000000
852d3f70: 00000000 852d4328 00000010 000006a2 00000000 00000002 00000000 00000001
852d3f90: 852e7c48 00000000 00000000 00000001 852e28d4 00000001 00000000 000000d8
852d3fb0: 852fe0a4 000005a0 852e28ec 00000000 00000000 00000000 00000000 852f7a18
852d3fd0: 00000000 00000000 00000000 8523c2bc 852f8674 ffffffff 00000486 852fe7b0
852d3ff0: 00000486 852fe0a4 85312338 00000000

Call Trace:
[<8500385c>] microblaze_unwind+0x74/0x8c
[<85003504>] show_stack+0x104/0x164
[<8500356c>] dump_stack+0x8/0x20
[<85008150>] warn_slowpath_common+0x80/0xbc
[<85008198>] warn_slowpath_null+0xc/0x24
[<8500ecac>] __local_bh_enable+0xac/0xc8
[<8500f058>] _local_bh_enable+0x4/0x1c
[<8500f2a4>] irq_enter+0x74/0x8c
[<8500171c>] do_IRQ+0x20/0xd8
[<00000010>] 0x10

---[ end trace 139ce121c98e96c9 ]---

0 Kudos