Convert CONSOLE_PRE_CONSOLE_BUFFER options to Kconfig
authorSimon Glass <sjg@chromium.org>
Tue, 18 Oct 2016 02:12:36 +0000 (20:12 -0600)
committerTom Rini <trini@konsulko.com>
Sun, 23 Oct 2016 22:33:19 +0000 (18:33 -0400)
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>
README
board/sunxi/Kconfig
common/Kconfig
common/console.c
configs/tbs2910_defconfig
include/asm-generic/global_data.h
include/configs/sunxi-common.h
include/configs/tbs2910.h
scripts/config_whitelist.txt

diff --git a/README b/README
index cc75700..0614a60 100644 (file)
--- a/README
+++ b/README
@@ -832,23 +832,6 @@ The following options need to be configured:
                must be defined, to setup the maximum idle timeout for
                the SMC.
 
-- Pre-Console Buffer:
-               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 of size CONFIG_PRE_CON_BUF_SZ
-               bytes located at CONFIG_PRE_CON_BUF_ADDR. The buffer is
-               a circular buffer, so if more than CONFIG_PRE_CON_BUF_SZ
-               bytes are output before the console is initialised, the
-               earlier bytes are discarded.
-
-               Note that when printing the buffer a copy is made on the
-               stack so CONFIG_PRE_CON_BUF_SZ must fit on the stack.
-
-               'Sane' compilers will generate smaller code if
-               CONFIG_PRE_CON_BUF_SZ is a power of 2
-
 - Autoboot Command:
                CONFIG_BOOTCOMMAND
                Only needed when CONFIG_BOOTDELAY is enabled;
index b139d1c..c0ffeb3 100644 (file)
@@ -3,6 +3,9 @@ if ARCH_SUNXI
 config IDENT_STRING
        default " Allwinner Technology"
 
+config PRE_CONSOLE_BUFFER
+       default y
+
 config SPL_GPIO_SUPPORT
        default y
 
index a8dfd7c..7988de2 100644 (file)
@@ -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
index 282fcc8..e1d8476 100644 (file)
@@ -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)
index fbff9fe..0871408 100644 (file)
@@ -1,6 +1,8 @@
 CONFIG_ARM=y
 CONFIG_ARCH_MX6=y
 CONFIG_TARGET_TBS2910=y
+CONFIG_PRE_CONSOLE_BUFFER=y
+CONFIG_PRE_CON_BUF_ADDR=0x7c000000
 CONFIG_FIT=y
 CONFIG_BOOTDELAY=3
 CONFIG_HUSH_PARSER=y
index dc4cbdb..e02863d 100644 (file)
@@ -45,7 +45,7 @@ typedef struct global_data {
        unsigned long board_type;
 #endif
        unsigned long have_console;     /* serial_init() was called */
-#ifdef CONFIG_PRE_CONSOLE_BUFFER
+#if CONFIG_IS_ENABLED(PRE_CONSOLE_BUFFER)
        unsigned long precon_buf_idx;   /* Pre-Console buffer index */
 #endif
        unsigned long env_addr;         /* Address  of Environment struct */
index 33f2ab7..634a4c7 100644 (file)
@@ -68,7 +68,6 @@
 #define CONFIG_SYS_SDRAM_BASE          0x20000000
 #define CONFIG_SYS_LOAD_ADDR           0x22000000 /* default load address */
 #define CONFIG_SYS_TEXT_BASE           0x2a000000
-#define CONFIG_PRE_CON_BUF_ADDR                0x2f000000
 /* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here 
  * since it needs to fit in with the other values. By also #defining it
  * we get warnings if the Kconfig value mismatches. */
@@ -79,7 +78,6 @@
 #define CONFIG_SYS_SDRAM_BASE          0x40000000
 #define CONFIG_SYS_LOAD_ADDR           0x42000000 /* default load address */
 #define CONFIG_SYS_TEXT_BASE           0x4a000000
-#define CONFIG_PRE_CON_BUF_ADDR                0x4f000000
 /* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here 
  * since it needs to fit in with the other values. By also #defining it
  * we get warnings if the Kconfig value mismatches. */
@@ -371,10 +369,6 @@ extern int soft_i2c_gpio_scl;
 #ifndef CONFIG_SPL_BUILD
 #include <config_distro_defaults.h>
 
-/* Enable pre-console buffer to get complete log on the VGA console */
-#define CONFIG_PRE_CONSOLE_BUFFER
-#define CONFIG_PRE_CON_BUF_SZ          4096 /* Aprox 2 80*25 screens */
-
 #ifdef CONFIG_ARM64
 /*
  * Boards seem to come with at least 512MB of DRAM.
index d877336..90e4982 100644 (file)
 #define CONFIG_CONSOLE_MUX
 #define CONFIG_CONS_INDEX              1
 
-#define CONFIG_PRE_CONSOLE_BUFFER
-#define CONFIG_PRE_CON_BUF_SZ          4096
-#define CONFIG_PRE_CON_BUF_ADDR                0x7C000000
-
 /* *** Command definition *** */
 #define CONFIG_CMD_BMODE
 #define CONFIG_CMD_PART
index 297a60b..64f21f1 100644 (file)
@@ -3719,9 +3719,6 @@ CONFIG_PQ_MDS_PIB
 CONFIG_PQ_MDS_PIB_ATM
 CONFIG_PRAM
 CONFIG_PREBOOT
-CONFIG_PRE_CONSOLE_BUFFER
-CONFIG_PRE_CON_BUF_ADDR
-CONFIG_PRE_CON_BUF_SZ
 CONFIG_PRIMEVIEW_V16C6448AC
 CONFIG_PRINTK
 CONFIG_PROC_FS