Kernel hangs on a 405EP eval. board with U-Boot
llandre
r&d at wawnet.biz
Thu May 8 00:01:53 EST 2003
>Anybody can give me some help? Do you think the procedure I used is correct?
After some further investigations, I found that the function memset_io
invoked by early_init, corrupts the memory region where the function
identify_cpu is located.
This is the disassembled produced by objdump:
c0006774 <identify_cpu>:
c0006774: 3d 03 c0 12 addis r8,r3,-16366
c0006778: 39 08 e1 40 addi r8,r8,-7872
c000677c: 7c ff 42 a6 mfpvr r7
c0006780: 80 a8 00 00 lwz r5,0(r8)
c0006784: 7c a5 38 38 and r5,r5,r7
c0006788: 80 c8 00 04 lwz r6,4(r8)
c000678c: 7c 06 28 40 cmplw r6,r5
c0006790: 41 82 00 0c beq- c000679c <identify_cpu+0x28>
c0006794: 39 08 00 20 addi r8,r8,32
c0006798: 4b ff ff e8 b c0006780 <identify_cpu+0xc>
c000679c: 3c c3 c0 14 addis r6,r3,-16364
c00067a0: 38 c6 f0 bc addi r6,r6,-3908
c00067a4: 54 84 10 3a rlwinm r4,r4,2,0,29
c00067a8: 7d 03 40 50 subf r8,r3,r8
c00067ac: 7d 04 31 2e stwx r8,r4,r6
c00067b0: 4e 80 00 20 blr
This is what I see in memory before executing the memset_io:
PPC405EP>go
- TARGET: target has entered debug mode
PPC405EP>md 0xc0006774 8
c0006774 : 0x3d03c012 1023655954 =...
c0006778 : 0x3908e140 956883264 9..@
c000677c : 0x7cff42a6 2097103526 |.B.
c0006780 : 0x80a80000 -2136473600 ....
c0006784 : 0x7ca53838 2091202616 |.88
c0006788 : 0x80c80004 -2134376444 ....
c000678c : 0x7c062840 2080778304 |.(@
c0006790 : 0x4182000c 1099038732 A...
PPC405EP>go
- TARGET: target has entered debug mode
This is what I see in memory before executing the memset_io:
PPC405EP>md 0xc0006774 8
c0006774 : 0xff03ffff - 16515073 ....
c0006778 : 0xff08ffff - 16187393 ....
c000677c : 0xff08ffff - 16187393 ....
c0006780 : 0x80a80000 -2136473600 ....
c0006784 : 0x7ca53838 2091202616 |.88
c0006788 : 0x80c80004 -2134376444 ....
c000678c : 0x3c060840 1007028288 <..@
c0006790 : 0x7c062840 2080778304 |.(@
PPC405EP>
Anybody have already seen something like that?
Is it possible that this has to do with an erroneous cache initialization?
llandre
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-embedded
mailing list