summaryrefslogtreecommitdiff
path: root/src/soc/intel/common/block
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/common/block')
-rw-r--r--src/soc/intel/common/block/uart/Kconfig11
-rw-r--r--src/soc/intel/common/block/uart/uart.c12
2 files changed, 17 insertions, 6 deletions
diff --git a/src/soc/intel/common/block/uart/Kconfig b/src/soc/intel/common/block/uart/Kconfig
index f4a0e4e4b9..e731465b3b 100644
--- a/src/soc/intel/common/block/uart/Kconfig
+++ b/src/soc/intel/common/block/uart/Kconfig
@@ -15,3 +15,14 @@ config SOC_INTEL_COMMON_BLOCK_UART_LPSS_CLK_N_VAL
hex
help
Clock m-divisor value for m/n divider
+
+config INTEL_LPSS_UART_FOR_CONSOLE
+ bool
+ depends on SOC_INTEL_COMMON_BLOCK_UART
+ select DRIVERS_UART_8250MEM_32
+ select FIXED_UART_FOR_CONSOLE
+ help
+ Selected by mainboards that use one of the SoC's LPSS UARTS
+ for the coreboot console.
+ WARNING: UART_FOR_CONSOLE has to be set to a correct value,
+ otherwise wrong pad configurations might be selected.
diff --git a/src/soc/intel/common/block/uart/uart.c b/src/soc/intel/common/block/uart/uart.c
index f7235cfe92..f0b6b24b70 100644
--- a/src/soc/intel/common/block/uart/uart.c
+++ b/src/soc/intel/common/block/uart/uart.c
@@ -88,12 +88,11 @@ void uart_common_init(struct device *device, uintptr_t baseaddr)
struct device *uart_get_device(void)
{
/*
- * This function will get called even if UART_DEBUG config options is
- * not selected.
- * By default returning NULL in case CONFIG_UART_DEBUG option is not
- * selected to avoid compilation errors.
+ * This function will get called even if INTEL_LPSS_UART_FOR_CONSOLE
+ * config option is not selected.
+ * By default return NULL in this case to avoid compilation errors.
*/
- if (!IS_ENABLED(CONFIG_UART_DEBUG))
+ if (!IS_ENABLED(CONFIG_INTEL_LPSS_UART_FOR_CONSOLE))
return NULL;
int console_index = uart_get_valid_index();
@@ -157,7 +156,8 @@ static void uart_read_resources(struct device *dev)
pci_dev_read_resources(dev);
/* Set the configured UART base address for the debug port */
- if (IS_ENABLED(CONFIG_UART_DEBUG) && uart_is_debug_controller(dev)) {
+ if (IS_ENABLED(CONFIG_INTEL_LPSS_UART_FOR_CONSOLE) &&
+ uart_is_debug_controller(dev)) {
struct resource *res = find_resource(dev, PCI_BASE_ADDRESS_0);
/* Need to set the base and size for the resource allocator. */
res->base = UART_BASE(CONFIG_UART_FOR_CONSOLE);