mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
serial: Allow serial to be absent in TPL
At present this option applies to SPL, but it should be available in TPL also, and separately. Change to using CONFIG_IS_ENABLED(), add a new Kconfig option and fix up hang(). Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
6307896c17
commit
aa0ffe8eb9
3 changed files with 17 additions and 2 deletions
|
@ -53,6 +53,16 @@ config SPL_SERIAL_PRESENT
|
||||||
This option enables the full UART in SPL, so if is it disabled,
|
This option enables the full UART in SPL, so if is it disabled,
|
||||||
the full UART driver will be omitted, thus saving space.
|
the full UART driver will be omitted, thus saving space.
|
||||||
|
|
||||||
|
config TPL_SERIAL_PRESENT
|
||||||
|
bool "Provide a serial driver in TPL"
|
||||||
|
depends on DM_SERIAL
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
In very space-constrained devices even the full UART driver is too
|
||||||
|
large. In this case the debug UART can still be used in some cases.
|
||||||
|
This option enables the full UART in TPL, so if is it disabled,
|
||||||
|
the full UART driver will be omitted, thus saving space.
|
||||||
|
|
||||||
# Logic to allow us to use the imply keyword to set what the default port
|
# Logic to allow us to use the imply keyword to set what the default port
|
||||||
# should be. The default is otherwise 1.
|
# should be. The default is otherwise 1.
|
||||||
config CONS_INDEX_0
|
config CONS_INDEX_0
|
||||||
|
|
|
@ -26,6 +26,7 @@ static const unsigned long baudrate_table[] = CONFIG_SYS_BAUDRATE_TABLE;
|
||||||
#error "Serial is required before relocation - define CONFIG_$(SPL_)SYS_MALLOC_F_LEN to make this work"
|
#error "Serial is required before relocation - define CONFIG_$(SPL_)SYS_MALLOC_F_LEN to make this work"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if CONFIG_IS_ENABLED(SERIAL_PRESENT)
|
||||||
static int serial_check_stdout(const void *blob, struct udevice **devp)
|
static int serial_check_stdout(const void *blob, struct udevice **devp)
|
||||||
{
|
{
|
||||||
int node;
|
int node;
|
||||||
|
@ -150,12 +151,15 @@ static void serial_find_console_or_panic(void)
|
||||||
panic_str("No serial driver found");
|
panic_str("No serial driver found");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_SERIAL_PRESENT */
|
||||||
|
|
||||||
/* Called prior to relocation */
|
/* Called prior to relocation */
|
||||||
int serial_init(void)
|
int serial_init(void)
|
||||||
{
|
{
|
||||||
|
#if CONFIG_IS_ENABLED(SERIAL_PRESENT)
|
||||||
serial_find_console_or_panic();
|
serial_find_console_or_panic();
|
||||||
gd->flags |= GD_FLG_SERIAL_READY;
|
gd->flags |= GD_FLG_SERIAL_READY;
|
||||||
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,8 +20,9 @@
|
||||||
*/
|
*/
|
||||||
void hang(void)
|
void hang(void)
|
||||||
{
|
{
|
||||||
#if !defined(CONFIG_SPL_BUILD) || (defined(CONFIG_SPL_LIBCOMMON_SUPPORT) && \
|
#if !defined(CONFIG_SPL_BUILD) || \
|
||||||
defined(CONFIG_SPL_SERIAL_SUPPORT))
|
(CONFIG_IS_ENABLED(LIBCOMMON_SUPPORT) && \
|
||||||
|
CONFIG_IS_ENABLED(SERIAL_SUPPORT))
|
||||||
puts("### ERROR ### Please RESET the board ###\n");
|
puts("### ERROR ### Please RESET the board ###\n");
|
||||||
#endif
|
#endif
|
||||||
bootstage_error(BOOTSTAGE_ID_NEED_RESET);
|
bootstage_error(BOOTSTAGE_ID_NEED_RESET);
|
||||||
|
|
Loading…
Reference in a new issue