serial: bfin: Flip the jtag serial console to CONFIG_SERIAL_MULTI
Rework the emulation of serial console via JTAG from simple ad-hoc implementation of serial port routines to CONFIG_SERIAL_MULTI and enable CONFIG_SERIAL_MULTI unconditionally for blackfin. In order for the JTAG serial console to take precedence over all other serial ports available in system, implement override for default_serial_console call returning this JTAG serial console. This brings in a bit of a growth of size, but eventually will allow us to unconditionally enable CONFIG_SERIAL_MULTI throughout the whole U-Boot and maintain only one serial subsystem. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Marek Vasut <marek.vasut@gmail.com> Cc: Tom Rini <trini@ti.com> Cc: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
425101e115
commit
41651cab97
|
@ -194,12 +194,35 @@ int drv_jtag_console_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_UART_CONSOLE_IS_JTAG
|
#ifdef CONFIG_UART_CONSOLE_IS_JTAG
|
||||||
|
#include <serial.h>
|
||||||
/* Since the JTAG is always available (at power on), allow it to fake a UART */
|
/* Since the JTAG is always available (at power on), allow it to fake a UART */
|
||||||
void serial_set_baud(uint32_t baud) {}
|
void jtag_serial_setbrg(void)
|
||||||
void serial_setbrg(void) {}
|
{
|
||||||
int serial_init(void) { return 0; }
|
}
|
||||||
void serial_putc(const char c) __attribute__((alias("jtag_putc")));
|
|
||||||
void serial_puts(const char *s) __attribute__((alias("jtag_puts")));
|
int jtag_serial_init(void)
|
||||||
int serial_tstc(void) __attribute__((alias("jtag_tstc")));
|
{
|
||||||
int serial_getc(void) __attribute__((alias("jtag_getc")));
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct serial_device serial_jtag_drv = {
|
||||||
|
.name = "jtag",
|
||||||
|
.start = jtag_serial_init,
|
||||||
|
.stop = NULL,
|
||||||
|
.setbrg = jtag_serial_setbrg,
|
||||||
|
.putc = jtag_putc,
|
||||||
|
.puts = jtag_puts,
|
||||||
|
.tstc = jtag_tstc,
|
||||||
|
.getc = jtag_getc,
|
||||||
|
};
|
||||||
|
|
||||||
|
void bfin_jtag_initialize(void)
|
||||||
|
{
|
||||||
|
serial_register(&serial_jtag_drv);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct serial_device *default_serial_console(void)
|
||||||
|
{
|
||||||
|
return &serial_jtag_drv;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -47,6 +47,7 @@ serial_initfunc(s3c24xx_serial_initialize);
|
||||||
serial_initfunc(s5p_serial_initialize);
|
serial_initfunc(s5p_serial_initialize);
|
||||||
serial_initfunc(zynq_serial_initalize);
|
serial_initfunc(zynq_serial_initalize);
|
||||||
serial_initfunc(bfin_serial_initialize);
|
serial_initfunc(bfin_serial_initialize);
|
||||||
|
serial_initfunc(bfin_jtag_initialize);
|
||||||
serial_initfunc(mpc512x_serial_initialize);
|
serial_initfunc(mpc512x_serial_initialize);
|
||||||
serial_initfunc(uartlite_serial_initialize);
|
serial_initfunc(uartlite_serial_initialize);
|
||||||
|
|
||||||
|
@ -74,6 +75,7 @@ void serial_initialize(void)
|
||||||
s5p_serial_initialize();
|
s5p_serial_initialize();
|
||||||
mpc512x_serial_initialize();
|
mpc512x_serial_initialize();
|
||||||
bfin_serial_initialize();
|
bfin_serial_initialize();
|
||||||
|
bfin_jtag_initialize();
|
||||||
uartlite_serial_initialize();
|
uartlite_serial_initialize();
|
||||||
zynq_serial_initalize();
|
zynq_serial_initalize();
|
||||||
serial_assign(default_serial_console()->name);
|
serial_assign(default_serial_console()->name);
|
||||||
|
|
|
@ -108,11 +108,11 @@
|
||||||
#define CONFIG_LOADS_ECHO 1
|
#define CONFIG_LOADS_ECHO 1
|
||||||
#define CONFIG_JTAG_CONSOLE
|
#define CONFIG_JTAG_CONSOLE
|
||||||
#define CONFIG_SILENT_CONSOLE
|
#define CONFIG_SILENT_CONSOLE
|
||||||
|
#define CONFIG_SERIAL_MULTI
|
||||||
#ifndef CONFIG_BAUDRATE
|
#ifndef CONFIG_BAUDRATE
|
||||||
# define CONFIG_BAUDRATE 57600
|
# define CONFIG_BAUDRATE 57600
|
||||||
#endif
|
#endif
|
||||||
#ifndef CONFIG_DEBUG_EARLY_SERIAL
|
#ifndef CONFIG_DEBUG_EARLY_SERIAL
|
||||||
# define CONFIG_SERIAL_MULTI
|
|
||||||
# define CONFIG_SYS_BFIN_UART
|
# define CONFIG_SYS_BFIN_UART
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue