Problem with mvista booting

From: Frank (young726_at_yahoo.com)
Date: 04/27/04


Date: 27 Apr 2004 09:09:36 -0700

Hello all,

I am working on a PPC 405GP with 16MB memory custom board. I have been
stuck with some problems in mvista linux booting.

Right now my boot loader can start the simple boot loader and the
simple boot loader can take over the control and make some
initialization such as serial port initialization etc. And I did get
the console output such as
"loaded at xxxx xxxx
relocated to xxxx xxxx
zImage at xxxx xxxx
avail ram xxxx xxxx

Now booting the kernel"

But the system hangs after this output. I check the code and found the
head_4xx.S (I am using 405GP) has been called. But somehow the program
stopped at the following part:

"
/* We now have the lower 16 Meg mapped into TLB entries, and the
caches
 * ready to work.
 */

turn_on_mmu:
    li r0,MSR_KERNEL
    mtspr SRR1,r0
    lis r0,start_here@h
    ori r0,r0,start_here@l
    mtspr SRR0,r0
    SYNC
    rfi /* enables MMU */
"

I put a break point right after SYNC and before rfi. It shows me that
the program finished SYNC but stopped at rfi. I don't quite understand
how rfi can stop the program. Look like it is just simply calling
"start_here" which is stored in SRR0. But I put another break point in
start_here and was sure that
start_here hasn't been called. Does anyone can give me any clue?

Thanks in advance!

Frank