summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2016-10-17 20:12:36 -0600
committerTom Rini <trini@konsulko.com>2016-10-23 18:33:19 -0400
commit8f925584145efecd9a6323801689cffd69cf0b09 (patch)
tree82accc506b462a88717656ea4cea2deab308acf7 /common
parent98af87997670af840ef178f76b4d6888534a6700 (diff)
Convert CONSOLE_PRE_CONSOLE_BUFFER options to Kconfig
Move these option to Kconfig and tidy up existing uses. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Jagan Teki <jteki@openedev.com>
Diffstat (limited to 'common')
-rw-r--r--common/Kconfig42
-rw-r--r--common/console.c6
2 files changed, 45 insertions, 3 deletions
diff --git a/common/Kconfig b/common/Kconfig
index a8dfd7c2e2..7988de278b 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -246,6 +246,48 @@ config SILENT_CONSOLE_UPDATE_ON_RELOC
(e.g. NAND). This option makes the value of the 'silent'
environment variable take effect at relocation.
+config PRE_CONSOLE_BUFFER
+ bool "Buffer characters before the console is available"
+ help
+ Prior to the console being initialised (i.e. serial UART
+ initialised etc) all console output is silently discarded.
+ Defining CONFIG_PRE_CONSOLE_BUFFER will cause U-Boot to
+ buffer any console messages prior to the console being
+ initialised to a buffer. The buffer is a circular buffer, so
+ if it overflows, earlier output is discarded.
+
+ Note that this is not currently supported in SPL. It would be
+ useful to be able to share the pre-console buffer with SPL.
+
+config PRE_CON_BUF_SZ
+ int "Sets the size of the pre-console buffer"
+ depends on PRE_CONSOLE_BUFFER
+ default 4096
+ help
+ The size of the pre-console buffer affects how much console output
+ can be held before it overflows and starts discarding earlier
+ output. Normally there is very little output at this early stage,
+ unless debugging is enabled, so allow enough for ~10 lines of
+ text.
+
+ This is a useful feature if you are using a video console and
+ want to see the full boot output on the console. Without this
+ option only the post-relocation output will be displayed.
+
+config PRE_CON_BUF_ADDR
+ hex "Address of the pre-console buffer"
+ depends on PRE_CONSOLE_BUFFER
+ default 0x2f000000 if ARCH_SUNXI && MACH_SUN9I
+ default 0x4f000000 if ARCH_SUNXI && !MACH_SUN9I
+ help
+ This sets the start address of the pre-console buffer. This must
+ be in available memory and is accessed before relocation and
+ possibly before DRAM is set up. Therefore choose an address
+ carefully.
+
+ We should consider removing this option and allocating the memory
+ in board_init_f_init_reserve() instead.
+
endmenu
config SYS_NO_FLASH
diff --git a/common/console.c b/common/console.c
index 282fcc8832..e1d84763bd 100644
--- a/common/console.c
+++ b/common/console.c
@@ -202,7 +202,7 @@ static void console_putc(int file, const char c)
}
}
-#ifdef CONFIG_PRE_CONSOLE_BUFFER
+#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
static void console_puts_noserial(int file, const char *s)
{
int i;
@@ -248,7 +248,7 @@ static inline void console_putc(int file, const char c)
stdio_devices[file]->putc(stdio_devices[file], c);
}
-#ifdef CONFIG_PRE_CONSOLE_BUFFER
+#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
static inline void console_puts_noserial(int file, const char *s)
{
if (strcmp(stdio_devices[file]->name, "serial") != 0)
@@ -415,7 +415,7 @@ int tstc(void)
#define PRE_CONSOLE_FLUSHPOINT1_SERIAL 0
#define PRE_CONSOLE_FLUSHPOINT2_EVERYTHING_BUT_SERIAL 1
-#ifdef CONFIG_PRE_CONSOLE_BUFFER
+#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
#define CIRC_BUF_IDX(idx) ((idx) % (unsigned long)CONFIG_PRE_CON_BUF_SZ)
static void pre_console_putc(const char c)