• Lu Baolu's avatar
    usb/early: Add driver for xhci debug capability · aeb9dd1d
    Lu Baolu authored
    XHCI debug capability (DbC) is an optional but standalone
    functionality provided by an xHCI host controller. Software
    learns this capability by walking through the extended
    capability list of the host. XHCI specification describes
    DbC in section 7.6.
    
    This patch introduces the code to probe and initialize the
    debug capability hardware during early boot. With hardware
    initialized, the debug target (system on which this code is
    running) will present a debug device through the 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 the xHCI host. There isn't any precondition
    from the xHCI host side for the DbC to work.
    
    One use for this feature is kernel debugging, for example
    when your machine crashes very early before the regular
    console code is initialized. Other uses include simpler,
    lockless logging instead of a full-blown printk console
    driver and klogd.
    Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
    Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mathias Nyman <mathias.nyman@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: linux-usb@vger.kernel.org
    Link: http://lkml.kernel.org/r/1490083293-3792-3-git-send-email-baolu.lu@linux.intel.com
    [ Small fix to the Kconfig help text. ]
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    aeb9dd1d
xhci-dbc.c 24.2 KB