Re: [PATCH 07/27] Documentation: x86: convert earlyprintk.txt to reST

From: Changbin Du
Date: Wed May 01 2019 - 23:28:03 EST


On Sat, Apr 27, 2019 at 02:17:39PM -0300, Mauro Carvalho Chehab wrote:
> Em Fri, 26 Apr 2019 23:31:30 +0800
> Changbin Du <changbin.du@xxxxxxxxx> escreveu:
>
> > This converts the plain text documentation to reStructuredText format and
> > add it to Sphinx TOC tree. No essential content change.
> >
> > Signed-off-by: Changbin Du <changbin.du@xxxxxxxxx>
> > ---
> > .../x86/{earlyprintk.txt => earlyprintk.rst} | 103 ++++++++++--------
> > Documentation/x86/index.rst | 1 +
> > 2 files changed, 57 insertions(+), 47 deletions(-)
> > rename Documentation/x86/{earlyprintk.txt => earlyprintk.rst} (59%)
> >
> > diff --git a/Documentation/x86/earlyprintk.txt b/Documentation/x86/earlyprintk.rst
> > similarity index 59%
> > rename from Documentation/x86/earlyprintk.txt
> > rename to Documentation/x86/earlyprintk.rst
> > index 46933e06c972..7714e32501ec 100644
> > --- a/Documentation/x86/earlyprintk.txt
> > +++ b/Documentation/x86/earlyprintk.rst
> > @@ -1,52 +1,58 @@
> > +.. SPDX-License-Identifier: GPL-2.0
> > +
> > +============
> > +Early Printk
> > +============
> >
> > Mini-HOWTO for using the earlyprintk=dbgp boot option with a
> > USB2 Debug port key and a debug cable, on x86 systems.
> >
> > You need two computers, the 'USB debug key' special gadget and
> > -and two USB cables, connected like this:
> > +and two USB cables, connected like this::
> >
> > [host/target] <-------> [USB debug key] <-------> [client/console]
> >
> > -1. There are a number of specific hardware requirements:
> > -
> > - a.) Host/target system needs to have USB debug port capability.
> > -
> > - You can check this capability by looking at a 'Debug port' bit in
> > - the lspci -vvv output:
> > -
> > - # lspci -vvv
> > - ...
> > - 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03) (prog-if 20 [EHCI])
> > - Subsystem: Lenovo ThinkPad T61
> > - Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > - Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > - Latency: 0
> > - Interrupt: pin D routed to IRQ 19
> > - Region 0: Memory at fe227000 (32-bit, non-prefetchable) [size=1K]
> > - Capabilities: [50] Power Management version 2
> > - Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > - Status: D0 PME-Enable- DSel=0 DScale=0 PME+
> > - Capabilities: [58] Debug port: BAR=1 offset=00a0
> > +Hardware requirements
> > +=====================
> > +
> > + a) Host/target system needs to have USB debug port capability.
> > +
> > + You can check this capability by looking at a 'Debug port' bit in
> > + the lspci -vvv output::
> > +
> > + # lspci -vvv
> > + ...
> > + 00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03) (prog-if 20 [EHCI])
> > + Subsystem: Lenovo ThinkPad T61
> > + Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
> > + Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > + Latency: 0
> > + Interrupt: pin D routed to IRQ 19
> > + Region 0: Memory at fe227000 (32-bit, non-prefetchable) [size=1K]
> > + Capabilities: [50] Power Management version 2
> > + Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> > + Status: D0 PME-Enable- DSel=0 DScale=0 PME+
> > + Capabilities: [58] Debug port: BAR=1 offset=00a0
> > ^^^^^^^^^^^ <==================== [ HERE ]
> > - Kernel driver in use: ehci_hcd
> > - Kernel modules: ehci-hcd
> > - ...
> > + Kernel driver in use: ehci_hcd
> > + Kernel modules: ehci-hcd
> > + ...
> >
> > -( If your system does not list a debug port capability then you probably
> > - won't be able to use the USB debug key. )
> > + .. note::
> > + If your system does not list a debug port capability then you probably
> > + won't be able to use the USB debug key. )
>
> You should remove the close parenthesis on the above line.
>
Fixed.

> >
> > - b.) You also need a NetChip USB debug cable/key:
> > + b) You also need a NetChip USB debug cable/key:
> >
> > http://www.plxtech.com/products/NET2000/NET20DC/default.asp
> >
> > This is a small blue plastic connector with two USB connections;
> > it draws power from its USB connections.
> >
> > - c.) You need a second client/console system with a high speed USB 2.0
> > - port.
> > + c) You need a second client/console system with a high speed USB 2.0 port.
> >
> > - d.) The NetChip device must be plugged directly into the physical
> > - debug port on the "host/target" system. You cannot use a USB hub in
> > + d) The NetChip device must be plugged directly into the physical
> > + debug port on the "host/target" system. You cannot use a USB hub in
> > between the physical debug port and the "host/target" system.
> >
> > The EHCI debug controller is bound to a specific physical USB
> > @@ -65,24 +71,26 @@ and two USB cables, connected like this:
> > to the hardware vendor, because there is no reason not to wire
> > this port into one of the physically accessible ports.
> >
> > - e.) It is also important to note, that many versions of the NetChip
> > + e) It is also important to note, that many versions of the NetChip
> > device require the "client/console" system to be plugged into the
> > right hand side of the device (with the product logo facing up and
> > readable left to right). The reason being is that the 5 volt
> > power supply is taken from only one side of the device and it
> > must be the side that does not get rebooted.
> >
> > -2. Software requirements:
> > +Software requirements
> > +=====================
> >
> > - a.) On the host/target system:
> > + a) On the host/target system:
> >
> > - You need to enable the following kernel config option:
> > + You need to enable the following kernel config option::
> >
> > CONFIG_EARLY_PRINTK_DBGP=y
> >
> > And you need to add the boot command line: "earlyprintk=dbgp".
> >
> > - (If you are using Grub, append it to the 'kernel' line in
> > + .. note::
> > + If you are using Grub, append it to the 'kernel' line in
> > /etc/grub.conf. If you are using Grub2 on a BIOS firmware system,
> > append it to the 'linux' line in /boot/grub2/grub.cfg. If you are
> > using Grub2 on an EFI firmware system, append it to the 'linux'
> > or 'linuxefi' line in /boot/grub2/grub.cfg or
> > /boot/efi/EFI/<distro>/grub.cfg.)
>
> Same here: You should remove the close parenthesis on the above line.
>
>
> > /etc/grub.conf. If you are using Grub2 on a BIOS firmware system,
> > append it to the 'linux' line in /boot/grub2/grub.cfg. If you are
> > using Grub2 on an EFI firmware system, append it to the 'linux'
>
> Hmm... there is another note here:
>
> NOTE: normally earlyprintk console gets turned off once the
> regular console is alive - use "earlyprintk=dbgp,keep" to keep
> this channel open beyond early bootup. This can be useful for
> debugging crashes under Xorg, etc.
>
> Why are you keeping it untouched?
>
I missed this block. Now fixed.

> After fixing the above:
>
> Reviewed-by:
>
> > @@ -101,9 +109,9 @@ and two USB cables, connected like this:
> > this channel open beyond early bootup. This can be useful for
> > debugging crashes under Xorg, etc.
> >
> > - b.) On the client/console system:
> > + b) On the client/console system:
> >
> > - You should enable the following kernel config option:
> > + You should enable the following kernel config option::
> >
> > CONFIG_USB_SERIAL_DEBUG=y
> >
> > @@ -115,27 +123,28 @@ and two USB cables, connected like this:
> > it up to use /dev/ttyUSB0 - or use a raw 'cat /dev/ttyUSBx' to
> > see the raw output.
> >
> > - c.) On Nvidia Southbridge based systems: the kernel will try to probe
> > + c) On Nvidia Southbridge based systems: the kernel will try to probe
> > and find out which port has a debug device connected.
> >
> > -3. Testing that it works fine:
> > +Testing
> > +=======
> >
> > - You can test the output by using earlyprintk=dbgp,keep and provoking
> > - kernel messages on the host/target system. You can provoke a harmless
> > - kernel message by for example doing:
> > +You can test the output by using earlyprintk=dbgp,keep and provoking
> > +kernel messages on the host/target system. You can provoke a harmless
> > +kernel message by for example doing::
> >
> > echo h > /proc/sysrq-trigger
> >
> > - On the host/target system you should see this help line in "dmesg" output:
> > +On the host/target system you should see this help line in "dmesg" output::
> >
> > SysRq : HELP : loglevel(0-9) reBoot Crashdump terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) saK show-backtrace-all-active-cpus(L) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T) Unmount show-blocked-tasks(W) dump-ftrace-buffer(Z)
> >
> > - On the client/console system do:
> > +On the client/console system do::
> >
> > cat /dev/ttyUSB0
> >
> > - And you should see the help line above displayed shortly after you've
> > - provoked it on the host system.
> > +And you should see the help line above displayed shortly after you've
> > +provoked it on the host system.
> >
> > If it does not work then please ask about it on the linux-kernel@xxxxxxxxxxxxxxx
> > mailing list or contact the x86 maintainers.
> > diff --git a/Documentation/x86/index.rst b/Documentation/x86/index.rst
> > index 8a666c5abc85..7b8388ebd43d 100644
> > --- a/Documentation/x86/index.rst
> > +++ b/Documentation/x86/index.rst
> > @@ -13,3 +13,4 @@ Linux x86 Support
> > exception-tables
> > kernel-stacks
> > entry_64
> > + earlyprintk
>
>
>
> Thanks,
> Mauro

--
Cheers,
Changbin Du