Skip to content
  • Anton Vorontsov's avatar
    tty/serial: Add kgdb_nmi driver · 0c57dfcc
    Anton Vorontsov authored
    
    
    This special driver makes it possible to temporary use NMI debugger port
    as a normal console by issuing 'nmi_console' command (assuming that the
    port is attached to KGDB).
    
    Unlike KDB's disable_nmi command, with this driver you are always able
    to go back to the debugger using KGDB escape sequence ($3#33).  This is
    because this console driver processes the input in NMI context, and thus
    is able to intercept the magic sequence.
    
    Note that since the console interprets input and uses polling
    communication methods, for things like PPP it is still better to fully
    detach debugger port from the KGDB NMI (i.e. disable_nmi), and use raw
    console.
    
    Usually, to enter the debugger one have to type the magic sequence, so
    initially the kernel will print the following prompt on the NMI debugger
    console:
    
    	Type $3#33 to enter the debugger>
    
    For convenience, there is a kgdb_fiq.knock kernel command line option,
    when set to 0, this turns the special command to just a return key
    press, so the kernel will be printing this:
    
    	Hit <return> to enter the debugger>
    
    This is more convenient for long debugging sessions, although it makes
    nmi_console feature somewhat useless.
    
    And for the cases when NMI connected to a dedicated button, the knocking
    can be disabled altogether by setting kgdb_fiq.knock to -1.
    
    Suggested-by: default avatarColin Cross <ccross@android.com>
    Signed-off-by: default avatarAnton Vorontsov <anton.vorontsov@linaro.org>
    Acked-by: default avatarAlan Cox <alan@linux.intel.com>
    Acked-by: default avatarJason Wessel <jason.wessel@windriver.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0c57dfcc