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

From: Lu Baolu
Date: Wed Jan 18 2017 - 01:21:06 EST


Hi Greg,

This patch series has been there for 2 months without
further comments. Will you consider it for usb-next?

Best regards,
Lu Baolu

On 11/15/2016 02:02 PM, Lu Baolu 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.
>
> ---
> Change log:
> v4->v5:
> - add raw_spin_lock to make xdbc_bulk_write() reentrant.
>
> v3->v4:
> - Rename the document with .dst suffix.
> - Add the list of hardware that has been succesfuly
> tested on in the document.
>
> v2->v3:
> - Removed spinlock usage.
> - Removed work queue usage.
> - Refined the user guide document.
>
> v1->v2:
> - Refactor the duplicate code in xdbc_early_start() and
> xdbc_handle_external_reset().
> - Free resources when hardware not used any more.
> - Refine the user guide document.
>
> Lu Baolu (4):
> usb: dbc: early driver for xhci debug capability
> x86: add support for earlyprintk via USB3 debug port
> usb: serial: usb_debug: add support for dbc debug device
> usb: doc: add document for USB3 debug port usage
>
> Documentation/kernel-parameters.txt | 1 +
> Documentation/usb/usb3-debug-port.rst | 95 +++
> arch/x86/Kconfig.debug | 14 +
> arch/x86/kernel/early_printk.c | 5 +
> arch/x86/kernel/setup.c | 7 +
> drivers/usb/Kconfig | 3 +
> drivers/usb/Makefile | 2 +-
> drivers/usb/early/Makefile | 1 +
> drivers/usb/early/xhci-dbc.c | 1068 +++++++++++++++++++++++++++++++++
> drivers/usb/early/xhci-dbc.h | 205 +++++++
> drivers/usb/serial/usb_debug.c | 28 +-
> include/linux/usb/xhci-dbgp.h | 22 +
> 12 files changed, 1447 insertions(+), 4 deletions(-)
> create mode 100644 Documentation/usb/usb3-debug-port.rst
> create mode 100644 drivers/usb/early/xhci-dbc.c
> create mode 100644 drivers/usb/early/xhci-dbc.h
> create mode 100644 include/linux/usb/xhci-dbgp.h
>