On Wed, Oct 21, 2009 at 10:43:55AM -0700, Lixin Yao wrote:
> When corrupted, curtain blocks of 64 bytes are messed up.
> This is a screen dump of a good unflattened device at beginning:

[snip]
> When corrupted, it becomes following, note the 64 bock at 0x03ffdf00
> is messed up. And this kind of corruptions occur several times

[snip]
> 03ffdf00 : ffffffff ffff000c db055be0 08060001  ..........[.....
> 03ffdf10 : 08000604 0001000c db055be0 ac141001  ..........[.....
> 03ffdf20 : 00000000 0000ac14 10530000 10530000  .........S...S..
> 03ffdf30 : 08000604 0001000c 36681bfe f874c01e  ........6h...t..

Uh, oh.  That looks like a broadcast ethernet packet (ARP,
specifically).  Looks like a network device used by the firmware
hasn't been quiesced properly before booting the kernel and is DMAing
stuff straight on top of kernel memory.  You'll probably need a hook
in the bootwrapper to shut down the ethernet.

There are some examples of this in arch/powerpc/boot already - look
for ibm4xx_quiesce_eth().

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to