第21章 Linux设备驱动的调试之DEBUG_LL和EARLY_PRINTK

21.4 DEBUG_LL和EARLY_PRINTK

    DEBUG_LL对应内核的Kernel low-level debugging功能,EARLY_PRINTK则对应内核中一个早期的控制台。为了在内核的drivers/tty/serial下的控制台驱动初始化之前支持打印,可以选择DEBUG_LL和EARLY_PRINTK这两个配置选项。另外,也需要在bootargs中设置earlyprintk的选项。

    对于LDDD3_vexpress,没有DEBUG_LL和EARLY_PRINTK时,看到的内核最早的打印是:

Booting Linux on physical CPU 0x0
Initializing cgroup subsys cpuset

Linux version …

    如果使能DEBUG_LL和EARLY_PRINTK,选择如图21.5所示的“Use PL011 UART0 at 0x10009000

(V2P-CA9 core tile)”这个低级别调试口,并在bootargs(Uboot给内核传递启动参数)中设置earlyprintk,则看到了更早的打印信息:

Uncompressing Linux... done, booting the kernel.

第21章 Linux设备驱动的调试之DEBUG_LL和EARLY_PRINTK

图21.5 选择低级别调试UART