Thanks, Kurt. I understood more about the printk().
I figured out the problem would be that I use UART 2 as the console output port while M54455EVB linux use UART 0 as default output. I used to think that Linux kernel will not re-initialization the port after Uboot, but seems it will. So, according to the comment below, I edited the drivers/serial/mcfserial.c as follows:
1610 #elif defined(CONFIG_M54455)
1611 volatile unsigned char *uartp;
1612 uartp = info->addr;
1613 switch (info->line) {
1614 case 0:
1615 MCF_GPIO_PAR_UART |= 0x000F;
1616 break;
1617 case 1:
1618 MCF_GPIO_PAR_UART |= 0x0FF0;
1619 break;
1620 case 2:
1621 /* GPIOs also must be initalized, depends on board */
1622
MCF_GPIO_PAR_TIMER = (MCF_GPIO_PAR_TIMER_T3IN_U2RXD | MCF_GPIO_PAR_TIMER_T2IN_U2TXD);1623 break;
1624 }
The console still not working, can you advise what else I need to modify?
Best Regards,
Mike