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