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.
 
                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;
 - 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 IDENT_STRING
        default " Allwinner Technology"
 
+config PRE_CONSOLE_BUFFER
+       default y
+
 config SPL_GPIO_SUPPORT
        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.
 
          (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
 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;
 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);
 }
 
        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)
 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
 
 #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)
 #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_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
 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 */
        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 */
        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_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. */
 /* 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_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. */
 /* 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>
 
 #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.
 #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_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
 /* *** 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_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
 CONFIG_PRIMEVIEW_V16C6448AC
 CONFIG_PRINTK
 CONFIG_PROC_FS