diff options
Diffstat (limited to 'Documentation/usb/usb3-debug-port.rst')
-rw-r--r-- | Documentation/usb/usb3-debug-port.rst | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/Documentation/usb/usb3-debug-port.rst b/Documentation/usb/usb3-debug-port.rst deleted file mode 100644 index feb1a36a65b7..000000000000 --- a/Documentation/usb/usb3-debug-port.rst +++ /dev/null @@ -1,100 +0,0 @@ -=============== -USB3 debug port -=============== - -:Author: Lu Baolu <baolu.lu@linux.intel.com> -:Date: March 2017 - -GENERAL -======= - -This is a HOWTO for using the USB3 debug port on x86 systems. - -Before using any kernel debugging functionality based on USB3 -debug port, you need to:: - - 1) check whether any USB3 debug port is available in - your system; - 2) check which port is used for debugging purposes; - 3) have a USB 3.0 super-speed A-to-A debugging cable. - -INTRODUCTION -============ - -The xHCI debug capability (DbC) is an optional but standalone -functionality provided by the xHCI host controller. The xHCI -specification describes DbC in the section 7.6. - -When DbC is initialized and enabled, it will present a debug -device through the debug port (normally the first USB3 -super-speed port). The debug device is fully compliant with -the USB framework and provides the equivalent of a very high -performance full-duplex serial link between the debug target -(the system under debugging) and a debug host. - -EARLY PRINTK -============ - -DbC has been designed to log early printk messages. 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. - -On the debug target system, you need to customize a debugging -kernel with CONFIG_EARLY_PRINTK_USB_XDBC enabled. And, add below -kernel boot parameter:: - - "earlyprintk=xdbc" - -If there are multiple xHCI controllers in your system, you can -append a host contoller index to this kernel parameter. This -index starts from 0. - -Current design doesn't support DbC runtime suspend/resume. As -the result, you'd better disable runtime power management for -USB subsystem by adding below kernel boot parameter:: - - "usbcore.autosuspend=-1" - -Before starting the debug target, you should connect the debug -port to a USB port (root port or port of any external hub) on -the debug host. The cable used to connect these two ports -should be a USB 3.0 super-speed A-to-A debugging cable. - -During early boot of the debug target, DbC will be detected and -initialized. After initialization, the debug host should be able -to enumerate the debug device in debug target. The debug host -will then bind the debug device with the usb_debug driver module -and create the /dev/ttyUSB device. - -If the debug device enumeration goes smoothly, you should be able -to see below kernel messages on the debug host:: - - # tail -f /var/log/kern.log - [ 1815.983374] usb 4-3: new SuperSpeed USB device number 4 using xhci_hcd - [ 1815.999595] usb 4-3: LPM exit latency is zeroed, disabling LPM. - [ 1815.999899] usb 4-3: New USB device found, idVendor=1d6b, idProduct=0004 - [ 1815.999902] usb 4-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 - [ 1815.999903] usb 4-3: Product: Remote GDB - [ 1815.999904] usb 4-3: Manufacturer: Linux - [ 1815.999905] usb 4-3: SerialNumber: 0001 - [ 1816.000240] usb_debug 4-3:1.0: xhci_dbc converter detected - [ 1816.000360] usb 4-3: xhci_dbc converter now attached to ttyUSB0 - -You can use any communication program, for example minicom, to -read and view the messages. Below simple bash scripts can help -you to check the sanity of the setup. - -.. code-block:: sh - - ===== start of bash scripts ============= - #!/bin/bash - - while true ; do - while [ ! -d /sys/class/tty/ttyUSB0 ] ; do - : - done - cat /dev/ttyUSB0 - done - ===== end of bash scripts =============== |