• James Hogan's avatar
    TTY: Add MIPS EJTAG Fast Debug Channel TTY driver · 4cebec60
    James Hogan authored
    Add TTY driver and consoles for the MIPS EJTAG Fast Debug Channel (FDC),
    which is found on the per-CPU MIPS Common Device Mapped Memory (CDMM)
    bus.
    
    The FDC is a per-CPU device which is used to communicate with an EJTAG
    probe. RX and TX FIFOs exist, containing 32-bits of data and 4-bit
    channel numbers. 16 general data streams are implemented on this for TTY
    and console use by encoding up to 4 bytes on each 32-bit FDC word.
    
    The TTY devices are named e.g. /dev/ttyFDC3c2 for channel 2 of the FDC
    attached to logical CPU 3.
    
    These can be used for getting the kernel log, a login prompt, or as a
    GDB remote transport, all over EJTAG and without needing a serial port.
    
    It can have an interrupt to notify of when incoming data is available in
    the RX FIFO or when the TX FIFO is no longer full. The detection of this
    interrupt occurs in architecture / platform code, but it may be shared
    with the timer and/or performance counter interrupt.
    
    Due to the per-CPU nature of the hardware, all outgoing TTY data is
    written out from a kthread which is pinned to the appropriate CPU.
    
    The console is not bound to a specific CPU, so output will appear on the
    chosen channel on whichever CPU the code is executing on. Enable with
    e.g. console=fdc1 in kernel arguments. /dev/console is bound to the same
    channel on the boot CPU's FDC if it exists.
    Signed-off-by: 's avatarJames Hogan <james.hogan@imgtec.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/9146/Signed-off-by: 's avatarRalf Baechle <ralf@linux-mips.org>
    4cebec60