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));
                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
	lis	r3,start_kernel at h
	ori	r3,r3,start_kernel at l
	mtspr	SPRN_SRR0,r3
	mtspr	SPRN_SRR1,r4
	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