lkml.org 
[lkml]   [2020]   [May]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 09/12] Documentation: kgdboc: Document new kgdboc_earlycon parameter
    Date
    The recent patch ("kgdboc: Add kgdboc_earlycon to support early kgdb
    using boot consoles") adds a new kernel command line parameter.
    Document it.

    Note that the patch adding the feature does some comparing/contrasting
    of "kgdboc_earlycon" vs. the existing "ekgdboc". See that patch for
    more details, but briefly "ekgdboc" can be used _instead_ of "kgdboc"
    and just makes "kgdboc" do its normal initialization early (only works
    if your tty driver is already ready). The new "kgdboc_earlycon" works
    in combination with "kgdboc" and is backed by boot consoles.

    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
    ---

    Changes in v4:
    - s/The the/The/

    Changes in v3:
    - Added example in kgdb.rst
    - Removed unneeded sentence in kerenel-parameters doc.
    - Renamed earlycon_kgdboc to kgdboc_earlycon.
    - Suggest people use kgdboc_earlycon instead of ekgdboc.

    Changes in v2: None

    .../admin-guide/kernel-parameters.txt | 20 ++++++++++++++++
    Documentation/dev-tools/kgdb.rst | 24 +++++++++++++++++++
    2 files changed, 44 insertions(+)

    diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
    index 7bc83f3d9bdf..2cbde9ea476d 100644
    --- a/Documentation/admin-guide/kernel-parameters.txt
    +++ b/Documentation/admin-guide/kernel-parameters.txt
    @@ -1190,6 +1190,11 @@
    This is designed to be used in conjunction with
    the boot argument: earlyprintk=vga

    + This parameter works in place of the kgdboc parameter
    + but can only be used if the backing tty is available
    + very early in the boot process. For early debugging
    + via a serial port see kgdboc_earlycon instead.
    +
    edd= [EDD]
    Format: {"off" | "on" | "skip[mbr]"}

    @@ -2105,6 +2110,21 @@
    kms, kbd format: kms,kbd
    kms, kbd and serial format: kms,kbd,<ser_dev>[,baud]

    + kgdboc_earlycon= [KGDB,HW]
    + If the boot console provides the ability to read
    + characters and can work in polling mode, you can use
    + this parameter to tell kgdb to use it as a backend
    + until the normal console is registered. Intended to
    + be used together with the kgdboc parameter which
    + specifies the normal console to transition to.
    +
    + The name of the early console should be specified
    + as the value of this parameter. Note that the name of
    + the early console might be different than the tty
    + name passed to kgdboc. It's OK to leave the value
    + blank and the first boot console that implements
    + read() will be picked.
    +
    kgdbwait [KGDB] Stop kernel execution and enter the
    kernel debugger at the earliest opportunity.

    diff --git a/Documentation/dev-tools/kgdb.rst b/Documentation/dev-tools/kgdb.rst
    index d38be58f872a..61293f40bc6e 100644
    --- a/Documentation/dev-tools/kgdb.rst
    +++ b/Documentation/dev-tools/kgdb.rst
    @@ -274,6 +274,30 @@ don't like this are to hack gdb to send the :kbd:`SysRq-G` for you as well as
    on the initial connect, or to use a debugger proxy that allows an
    unmodified gdb to do the debugging.

    +Kernel parameter: ``kgdboc_earlycon``
    +-------------------------------------
    +
    +If you specify the kernel parameter ``kgdboc_earlycon`` and your serial
    +driver registers a boot console that supports polling (doesn't need
    +interrupts and implements a nonblocking read() function) kgdb will attempt
    +to work using the boot console until it can transition to the regular
    +tty driver specified by the ``kgdboc`` parameter.
    +
    +Normally there is only one boot console (especially that implements the
    +read() function) so just adding ``kgdboc_earlycon`` on its own is
    +sufficient to make this work. If you have more than one boot console you
    +can add the boot console's name to differentiate. Note that names that
    +are registered through the boot console layer and the tty layer are not
    +the same for the same port.
    +
    +For instance, on one board to be explicit you might do::
    +
    + kgdboc_earlycon=qcom_geni kgdboc=ttyMSM0
    +
    +If the only boot console on the device was "qcom_geni", you could simplify::
    +
    + kgdboc_earlycon kgdboc=ttyMSM0
    +
    Kernel parameter: ``kgdbwait``
    ------------------------------

    --
    2.26.2.645.ge9eca65c58-goog
    \
     
     \ /
      Last update: 2020-05-07 22:10    [W:2.290 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site