libpayload: Change CONFIG_X86_SERIAL_CONSOLE to CONFIG_8250_SERIAL_CONSOLE

While the 8250 compatible serial port driver is primarily useful on x86
systems because it works with the legacy x86 com ports, some devices which
aren't x86 based have 8250 compatible UARTs as well. This change renames the
CONFIG_X86_SERIAL_CONSOLE option to the more general and direct
CONFIG_8250_SERIAL_CONSOLE and fixes up the dependencies so that non-x86
systems can enable the driver, although it will default to on on x86 and off
otherwise.

Also, the default IO port address that's added to the sysinfo structure on x86
and which is intended to be overwritten by a value in the coreboot tables is
not used on ARM. That variable is adjusted so that it's more clear it's a
default value, and made dependent on x86 since that's the only place its value
is actually used.

Change-Id: Ifeaade0e7bd76d382426e947275a9c933da4930e
Signed-off-by: Gabe Black <gabeblack@google.com>
Reviewed-on: https://chromium-review.googlesource.com/170834
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Commit-Queue: Gabe Black <gabeblack@chromium.org>
Tested-by: Gabe Black <gabeblack@chromium.org>
(cherry picked from commit 9a10e39a2da3cb0bfb316c0869cf5025078e287f)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6655
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
diff --git a/payloads/libpayload/Config.in b/payloads/libpayload/Config.in
index f28f9b8..e3e064e 100644
--- a/payloads/libpayload/Config.in
+++ b/payloads/libpayload/Config.in
@@ -162,14 +162,16 @@
 	bool "See output on the serial port console"
 	default y
 
-config X86_SERIAL_CONSOLE
-	bool
-	depends on ARCH_X86 && SERIAL_CONSOLE
-	default y
+config 8250_SERIAL_CONSOLE
+	bool "8250, 16450, 16550, 16550A compatible serial port driver"
+	depends on SERIAL_CONSOLE
+	default y if ARCH_X86
+	default n if !ARCH_X86
 
 config SERIAL_IOBASE
-	hex "I/O base for the serial port (default 0x3f8)"
-	depends on X86_SERIAL_CONSOLE
+	## This default is currently not used on non-x86 systems.
+	hex "Default I/O base for the serial port (default 0x3f8)"
+	depends on SERIAL_CONSOLE && ARCH_X86
 	default 0x3f8
 
 config SERIAL_SET_SPEED
diff --git a/payloads/libpayload/configs/defconfig b/payloads/libpayload/configs/defconfig
index 5804ed8..aef9fc3 100644
--- a/payloads/libpayload/configs/defconfig
+++ b/payloads/libpayload/configs/defconfig
@@ -36,7 +36,7 @@
 # CONFIG_LP_SKIP_CONSOLE_INIT is not set
 CONFIG_LP_CBMEM_CONSOLE=y
 CONFIG_LP_SERIAL_CONSOLE=y
-CONFIG_LP_X86_SERIAL_CONSOLE=y
+CONFIG_LP_8250_SERIAL_CONSOLE=y
 CONFIG_LP_SERIAL_IOBASE=0x3f8
 # CONFIG_LP_SERIAL_SET_SPEED is not set
 # CONFIG_LP_SERIAL_ACS_FALLBACK is not set
diff --git a/payloads/libpayload/drivers/Makefile.inc b/payloads/libpayload/drivers/Makefile.inc
index b31e341..881c801 100644
--- a/payloads/libpayload/drivers/Makefile.inc
+++ b/payloads/libpayload/drivers/Makefile.inc
@@ -33,7 +33,7 @@
 
 libc-$(CONFIG_LP_SPEAKER) += speaker.c
 
-libc-$(CONFIG_LP_X86_SERIAL_CONSOLE) += serial.c
+libc-$(CONFIG_LP_8250_SERIAL_CONSOLE) += serial.c
 
 libc-$(CONFIG_LP_PC_KEYBOARD) += keyboard.c
 
diff --git a/payloads/libpayload/tests/libpayload-config.h b/payloads/libpayload/tests/libpayload-config.h
index 68995b84..cce7c4c 100644
--- a/payloads/libpayload/tests/libpayload-config.h
+++ b/payloads/libpayload/tests/libpayload-config.h
@@ -15,7 +15,7 @@
 #define CONFIG_LP_STORAGE_ATA 1
 #define CONFIG_LP_ARCH_SPECIFIC_OPTIONS 1
 #define CONFIG_LP_STORAGE_AHCI_ONLY_TESTED 1
-#define CONFIG_LP_X86_SERIAL_CONSOLE 1
+#define CONFIG_LP_8250_SERIAL_CONSOLE 1
 #define CONFIG_LP_PDCURSES 1
 #define CONFIG_LP_NVRAM 1
 #define CONFIG_LP_PC_KEYBOARD_LAYOUT_US 1