Re: [PATCH v5 0/4] usb: early: add support for early printk through USB3 debug port

From: Ingo Molnar
Date: Thu Jan 19 2017 - 04:12:32 EST



* Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> wrote:

> xHCI debug capability (DbC) is an optional but standalone
> functionality provided by an xHCI host controller. With DbC
> hardware initialized, the system will present a debug device
> through the USB3 debug port (normally the first USB3 port).
> The debug device is fully compliant with the USB framework
> and provides the equivalent of a very high performance (USB3)
> full-duplex serial link between the debug host and target.
> The DbC functionality is independent of xHCI host. There
> isn't any precondition from xHCI host side for DbC to work.
>
> This patch set adds support for early printk functionality
> through a USB3 debug port by 1) initializing and enabling
> the DbC hardware during early boot; 2) registering a boot
> console to the system so that early printk messages can go
> through the USB3 debug port. It also includes some lines
> of changes in usb_debug driver so that it can be bound when
> a USB3 debug device is enumerated.
>
> This code is designed to be used only for kernel debugging
> when machine crashes very early before the console code is
> initialized. It makes the life of kernel debugging easier
> when people work with a modern machine without any legacy
> serial ports.

BTW., just a side note, some kernel developers (like PeterZ - and I do it
sometimes too) remap early_printk to printk permanently and use it as their main
printk facility - because printk() reliability has suffered over the last couple
of years.

So it's more than just early boot debugging - it's a very simple state-less
logging facility to an external computer.


Thanks,

ngo