[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] Microblaze system freeze
Thanks for your help ! Here is what the registers look like
XMD% rr
r0: 00000000 r8: 27fd5780 r16: 00000000 r24: 00000002
r1: 2420dfa0 r9: 24226070 r17: 00000000 r25: 00000000
r2: 241fc000 r10: 000056ba r18: 00000081 r26: 27fd9770
r3: 00010000 r11: 2420c030 r19: 2420c000 r27: 27fdd0e4
r4: 2420c000 r12: 000000a0 r20: 00000000 r28: 24000000
r5: 24220664 r13: 2420e000 r21: 00000000 r29: 27f6023f
r6: 2420c000 r14: 2400101c r22: 00000000 r30: 27fdd0e4
r7: 88fe8c80 r15: 24001030 r23: 27f3fe28 r31: 241fc2a8
pc: 24001020 msr: 000000a2
So, the program counter is 24001020. I tried this multiple times and it hangs at the same place.
Looking in the system.map file we have
------
24000d10 T show_trace
24000dd4 T show_stack
24000edc T dump_stack
24000efc T show_regs
24000ff4 T cpu_idle
2400103c T flush_thread
24001044 T copy_thread
24001108 T thread_saved_pc
24001158 t kernel_thread_helper
-----
So I take it we are stuck in cpu_idle ...?
Also, I checked the __log_buf
------
XMD% mrd 0x24226E00 100
24226E00: 3C353E4C
24226E04: 696E7578
24226E08: 20766572
24226E0C: 73696F6E
24226E10: 20322E36
24226E14: 2E32302D
24226E18: 75633020
24226E1C: 286F7474
24226E20: 6F62406C
24226E24: 6F63616C
-----
and it reads "<5>Linux version 2.6 ......" etc. I'm not quite sure what to look for here ..?
I dumped VmLinux (using microblaze-uclinux-objdump -xDSl ./linux-2.6.x-petalogix/vmlinux)
-------------------------------
24000ff4 <cpu_idle>:
cpu_idle():
24000ff4: 3021ffe0 addik r1, r1, -32
24000ff8: fa61001c swi r19, r1, 28
24000ffc: f9e10000 swi r15, r1, 0
24001000: a661e000 andi r19, r1, -8192
24001004: 94910002 msrclr r4, 2
24001008: e8730008 lwi r3, r19, 8
2400100c: b0000001 imm 1
24001010: a0630000 ori r3, r3, 0
24001014: f8730008 swi r3, r19, 8
24001018: 9404c001 mts rmsr, r4
2400101c: e8730008 lwi r3, r19, 8
24001020: 64630003 bsrli r3, r3, 3
24001024: a4630001 andi r3, r3, 1
24001028: bc03fff4 beqi r3, -12 // 2400101c
2400102c: b000001b imm 27
24001030: b9f483e8 brlid r15, -31768 // 241b9418 <schedule>
24001034: 80000000 or r0, r0, r0
24001038: b800ffe4 bri -28 // 2400101c
-------------------------------
So, from here it looks like we got stuck on an "andi" instruction ..? Sounds innocent.
>Do you mean you can't ping your board? or only you can't see console output?
Can't ping or see any console output. No characters are echoed.
So this is an exiting investigation and all, but... anyone has any ideas on what to do now ?
Help, cheering or other kind words appreciated ! ;)
Thanks
/Otto
On 5/14/08, Brettschneider Falk <fbrettschneider@xxxxxxxxxxxxxxx> wrote:
kernel 2.4 or 2.6?
If your FPGA firmware includes the MDM module, you can connect to it via JTAG with the program 'xmd' and read out the current program counter address with 'rr pc'. You find the appropriate function in the System.map file of the compiled Linux kernel.
CU, F@lk
Otto Blomqvist wrote:
> I have a multi-threaded test-application that continuously
> calls setitimer / getitimer along with calls to sem_lock and
> sem_release. A regular application freeze wouldn't surprise
> me a whole lot, but the problem is that the entire system freezes.
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/