From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Chou Date: Thu, 17 Dec 2015 21:29:56 +0800 Subject: [U-Boot] [PATCH v2 2/3] serial: uartlite: Add support for debug console In-Reply-To: <8440ca6c28112e04dddd3e90ffb8d8bbd425416f.1450353650.git.michal.simek@xilinx.com> References: <8440ca6c28112e04dddd3e90ffb8d8bbd425416f.1450353650.git.michal.simek@xilinx.com> Message-ID: <5672B8D4.3030505@wytron.com.tw> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Michal, On 2015?12?17? 20:00, Michal Simek wrote: > Add support for debug console. > > Signed-off-by: Michal Simek > --- > > Changes in v2: > - Add needed header from the first patch > - Remove WATCHDOG_RESET call > - Extend commit description > > drivers/serial/Kconfig | 7 +++++++ > drivers/serial/serial_xuartlite.c | 26 ++++++++++++++++++++++++++ > 2 files changed, 33 insertions(+) > > diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig > index 1fc287ee98ec..f1e221799b81 100644 > --- a/drivers/serial/Kconfig > +++ b/drivers/serial/Kconfig > @@ -92,6 +92,13 @@ config DEBUG_UART_S5P > will need to provide parameters to make this work. The driver will > be available until the real driver-model serial is running. > > +config DEBUG_UART_UARTLITE > + bool "Xilinx Uartlite" > + help > + Select this to enable a debug UART using the serial_uartlite driver. > + You will need to provide parameters to make this work. The driver will > + be available until the real driver-model serial is running. > + > config DEBUG_UART_ZYNQ > bool "Xilinx Zynq" > help > diff --git a/drivers/serial/serial_xuartlite.c b/drivers/serial/serial_xuartlite.c > index 8225d9a320a5..f42b11eae102 100644 > --- a/drivers/serial/serial_xuartlite.c > +++ b/drivers/serial/serial_xuartlite.c > @@ -114,3 +114,29 @@ U_BOOT_DRIVER(serial_uartlite) = { > .ops = &uartlite_serial_ops, > .flags = DM_FLAG_PRE_RELOC, > }; > + > +#ifdef CONFIG_DEBUG_UART_UARTLITE > + > +#include > + > +void _debug_uart_init(void) Still missing, static inline Otherwise, Reviewed-by: Thomas Chou > +{ > + struct uartlite *regs = (struct uartlite *)CONFIG_DEBUG_UART_BASE; > + > + out_be32(®s->control, 0); > + out_be32(®s->control, ULITE_CONTROL_RST_RX | ULITE_CONTROL_RST_TX); > + in_be32(®s->control); > +} > + > +static inline void _debug_uart_putc(int ch) > +{ > + struct uartlite *regs = (struct uartlite *)CONFIG_DEBUG_UART_BASE; > + > + while (in_be32(®s->status) & SR_TX_FIFO_FULL) > + ; > + > + out_be32(®s->tx_fifo, ch & 0xff); > +} > + > +DEBUG_UART_FUNCS > +#endif > Best regards, Thomas