In linux-2.4.25 source tree, maybe there's something wrong with the boot process of ppc44x cpu.
In arch/ppc/boot/common/relocate.S, we decompress the kernel to address 0, then jump there to do real boot job (arch/ppc/kernel/head_44x.S). But the last expression is `ba 0x000c'. Actually there's only one nop at the begining of head_44x.S, so the expression should be `ba 0x0004' for ppc-44x. But for compatibility, i think it should be `ba 0x0', because there's different number of 'nops' in head.S for different cpus. Actually, in linux-2.4.26, linux-2.4.30, i also found the same problem. but in linux-2.6, it seems solved already. Thank you. patch below: diff -rNu linux-2.4.25/arch/ppc/boot/common/relocate.S linux-2.4.25.me/arch/ppc/boot/common/relocate.S --- linux-2.4.25/arch/ppc/boot/common/relocate.S 2003-08-25 19:44:40.000000000 +0800 +++ linux-2.4.25.me/arch/ppc/boot/common/relocate.S 2005-05-27 12:07:05.000000000 +0800 @@ -203,6 +203,7 @@ * three instructions are 'nop' since we * sometimes overwrite them). */ - ba 0x000c + #ba 0x000c + ba 0x0 .comm .stack,4096*2,4 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050527/2a2c64be/attachment.htm