ppc rfi in head.s result in a reset?
wilbur.chan
wilbur512 at gmail.com
Sat Oct 17 12:21:49 EST 2009
ppc 6xx
In platform_init function of sandpoint.c , I delete the code of
getting command line from uboot, and set command_line to a fixed value
, which are like this:
sandpoint.c--> platform_init
#if 0
if (r3 && r6) {
/* copy board info structure */
memcpy( (void *)__res,(void *)(r3+KERNELBASE), sizeof(bd_t) );
/* copy command line */
*(char *)(r7+KERNELBASE) = 0;
strcpy(cmd_line, (char *)(r6+KERNELBASE));
}
#endif
strcpy(cmd_line, "xxx");
But I found that , when calling start_kernel in head.S (by rfi
instruction), the borad was reset into uboot, that is :
li r4,MSR_KERNEL
FIX_SRR1(r4,r5)
lis r3,start_kernel at h
ori r3,r3,start_kernel at l
mtspr SPRN_SRR0,r3
mtspr SPRN_SRR1,r4
SYNC
RFI //reset,why?
The RFI instruction here, caused the board reset to uboot. Can
someone give me some advice on how could this happened?
Thank you
More information about the Linuxppc-dev
mailing list