[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] Microblaze system freeze



Hi F@lk and Michal !
 
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/