low level debug of linux omap
Working on qmeu-omap3. A starange problem. If I use the kernel image downloaded from http://beagleboard.googlecode.com/files/uImage_OTG, some kernel boot informations can be displayed in uart3. But when I use the kernel source from linux omap git and build it by myself, there are NO linux kernel boot informations at all.
Linux kernel uses printk to output informations to console and the console struct is initialized in function console_init(). So why the linux can be displayed before function console_init()?
The answer is that there is another way to output informations to console. That is low level debug. It uses printascii to print informations. The following is the code in vprintk.
556 #ifdef CONFIG_DEBUG_LL557 printascii(printk_buf);558 #endif
So if we want to output debug information as early as possible, define CONFIG_DEBUG_LL first.
The default configuration of beagle board in http://www.beagleboard.org/uploads/2.6_kernel_revb-v2.tar.gz defines this macro while the source code from linux omap git does not define this macro.
Function printascii is defined in include/asm-arm/arch-omap/debug-macro.S.