Hi Ingo, How about this version? Any further comments? Best regards, Lu Baolu On 02/14/2017 10:27 AM, 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. > > --- > Change log: > v6->v7: > - add a new patch "[PATCH 1/5] x86: add simple udelay > calibration" to make udelay() work for early drivers. > - [PATCH 2/5] usb: dbc: early driver for xhci debug capability > - add a kernel thread to handle error cases, such as cable > unplugging. > - Fixed several code styles pointed out by Ingo. > > v5->v6: > - rebase the patches on top of the latest 4.10-rc4 > - run successfully in a 32-bit kernel > - [PATCH 1/4] > - remove ugly linebreaks to make code more readable > - rename config names to make them consistency > - move sleep-able ioremap() out of the lock area > - rename reserved fields of register structures > - make the vertical tabulation of struct fields consistent > - [PATCH 2/4] > - remove "#ifdef" in the generic code by creating proper > wrappers in header file > - [PATCH 3/4] > - refine the title and commit message > - [PATCH 4/4] > - fix several typos and grammar errors in the document > > 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 (5): > x86: add simple udelay calibration > usb: dbc: early driver for xhci debug capability > x86: add support for earlyprintk via USB3 debug port > usb: serial: add dbc debug device support to usb_debug > usb: doc: add document for USB3 debug port usage > > Documentation/admin-guide/kernel-parameters.txt | 1 + > Documentation/usb/usb3-debug-port.rst | 98 +++ > arch/x86/Kconfig.debug | 17 + > arch/x86/kernel/early_printk.c | 5 + > arch/x86/kernel/setup.c | 26 + > drivers/usb/Kconfig | 3 + > drivers/usb/Makefile | 2 +- > drivers/usb/early/Makefile | 1 + > drivers/usb/early/xhci-dbc.c | 1026 +++++++++++++++++++++++ > drivers/usb/early/xhci-dbc.h | 210 +++++ > drivers/usb/serial/usb_debug.c | 28 +- > include/linux/usb/xhci-dbgp.h | 29 + > 12 files changed, 1442 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 > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html