diff options
author | Gabe Black <gabeblack@google.com> | 2012-10-05 11:43:39 -0700 |
---|---|---|
committer | Anton Kochkov <anton.kochkov@gmail.com> | 2012-11-09 22:55:38 +0100 |
commit | 4bb0731a7beaada481371fb19117cdf9f62f5f23 (patch) | |
tree | dfe3edcf5a1d5f06315c2bb3cb90a83a3eaa8e74 | |
parent | d94512edee3fa0ebf426cd6f3b526d9fe1f078ad (diff) | |
download | coreboot-4bb0731a7beaada481371fb19117cdf9f62f5f23.tar.xz |
libpayload: Add an option to skip console initialization on startup.
A payload may want to decide whether it uses certain input/output consoles,
or that it wants support for outputing to a particular device but not to use
that device as a console. This change adds a config option which skips the
call to console_init in start_main.
Change-Id: I32b224d4d0bd3a239b402ecb09ee907d53225735
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: http://review.coreboot.org/1732
Tested-by: build bot (Jenkins)
Reviewed-by: Anton Kochkov <anton.kochkov@gmail.com>
-rw-r--r-- | payloads/libpayload/Config.in | 8 | ||||
-rw-r--r-- | payloads/libpayload/arch/i386/main.c | 5 | ||||
-rw-r--r-- | payloads/libpayload/arch/powerpc/main.c | 5 |
3 files changed, 14 insertions, 4 deletions
diff --git a/payloads/libpayload/Config.in b/payloads/libpayload/Config.in index 90a22ff523..65be223068 100644 --- a/payloads/libpayload/Config.in +++ b/payloads/libpayload/Config.in @@ -147,6 +147,14 @@ endmenu menu "Console Options" +config SKIP_CONSOLE_INIT + bool "Skip initializing the consoles at startup" + default n + help + Normally, libpayload will initialize console input/output on startup + before the payload itself gets control. This option disables that + behavior and leaves console initialization up to the payload. + config CBMEM_CONSOLE bool "Send output to the in memory CBMEM console" default y diff --git a/payloads/libpayload/arch/i386/main.c b/payloads/libpayload/arch/i386/main.c index 36cfb69bff..19ac6628eb 100644 --- a/payloads/libpayload/arch/i386/main.c +++ b/payloads/libpayload/arch/i386/main.c @@ -49,8 +49,9 @@ void start_main(void) /* Gather system information. */ lib_get_sysinfo(); - /* Set up the consoles. */ - console_init(); + /* Optionally set up the consoles. */ + if (!CONFIG_SKIP_CONSOLE_INIT) + console_init(); /* * Any other system init that has to happen before the diff --git a/payloads/libpayload/arch/powerpc/main.c b/payloads/libpayload/arch/powerpc/main.c index 378c6f387f..431cac460b 100644 --- a/payloads/libpayload/arch/powerpc/main.c +++ b/payloads/libpayload/arch/powerpc/main.c @@ -46,8 +46,9 @@ void start_main(void) { extern int main(int argc, char **argv); - /* Set up the consoles. */ - console_init(); + /* Optionally set up the consoles. */ + if (!CONFIG_SKIP_CONSOLE_INIT) + console_init(); /* Gather system information. */ lib_get_sysinfo(); |