Thank you, Doctor Scott. I'm very grateful to you for you kindly help.

I'll try the way you suggested soon.

And, my code for light the led run as follows:

void set_led_a_red(void)
{
        /*PDIRC: 0xfc010d40*/
        /*PPARC: 0xfc010d44*/
        /*PODRC: 0xfc010d4c*/
        /*PDATC: 0xfc010d50*/
        *((unsigned long *)(0xfb010d40)) |= 0x000000d4;
        *((unsigned long *)(0xfb010d44)) &= ~0x000000d4;
        *((unsigned long *)(0xfb010d4c)) &= ~0x000000d4;
        *((unsigned long *)(0xfb010d50)) |= 0x00000004;
        *((unsigned long *)(0xfb010d50)) &= ~0x00000010;
}
...

I put is in the file arch/power/kernel/setup_32.c, is this OK?
And I call it in the setup_common_caches as follows
...
bl        set_led_a_red
mtspr  SPRN_HID0, r8
bl        set_led_a_green

I've tried to compile the kernel with enable the early debug prink. but it
output nothing. maybe I make some foolish mistake in configurate the
CPM UART early debug transmit descriptor address.

Thanks again. It really very kind of you to give me some suggestions.

2008/4/22 Scott Wood <[EMAIL PROTECTED]>:
> On Mon, Apr 21, 2008 at 11:06:28AM +0800, 张世乐 wrote:
>  > Uncompressing Kernel Image ... OK
>  > Booting using the fdt at 0x600000
>  >
>  > [nothing output and hanging here]
>  >
>  > I use the led on the board to trace the kernel fund it stop in the function
>  >
>  > setup_common_caches  in arch/powerpc/kernel/cpu_setup_6xx.S
>  >
>  > Can you give me some ideas?
>
>  That's probably not where it's actually stopping, but rather where caches
>  are enabled without the MMU, thus making it difficult to access devices.
>  You can try placing a dcbf after each write to the LED register, though
>  this may perturb nearby registers.
>
>  Have you tried enabling early debug printk?
>
>  -Scott
>
_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to