soc/intel: Replace UART_BASE() and friends with a Kconfig

Re-add the Kconfig CONSOLE_UART_BASE_ADDRESS. It was lost by accident
on APL at least. It is used outside of soc/intel/ scope, e.g. to con-
figure SeaBIOS.

As we only ever configure a single UART for the coreboot console, we
don't need different addresses for each possible UART. Which saves
us a lot of code.

Change-Id: I28e1d98aa37a6acb57b98b8882fc4fa131d5d309
Signed-off-by: Nico Huber <nico.h@gmx.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/33098
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
This commit is contained in:
Nico Huber 2019-05-29 23:33:06 +02:00
parent 10ed374d7d
commit 9995418166
10 changed files with 25 additions and 37 deletions

View File

@ -361,6 +361,11 @@ config CPU_BCLK_MHZ
int int
default 100 default 100
config CONSOLE_UART_BASE_ADDRESS
hex
default 0xddffc000
depends on INTEL_LPSS_UART_FOR_CONSOLE
config APL_SKIP_SET_POWER_LIMITS config APL_SKIP_SET_POWER_LIMITS
bool bool
default n default n

View File

@ -58,12 +58,4 @@
#define EARLY_I2C_BASE_ADDRESS 0xfe020000 #define EARLY_I2C_BASE_ADDRESS 0xfe020000
#define EARLY_I2C_BASE(x) (EARLY_I2C_BASE_ADDRESS + (0x1000 * (x))) #define EARLY_I2C_BASE(x) (EARLY_I2C_BASE_ADDRESS + (0x1000 * (x)))
#define UART_BASE_SIZE 0x1000
#define UART_BASE_0_ADDRESS 0xddffc000
/* UART BARs are 4KB in size */
#define UART_BASE_0_ADDR(x) (UART_BASE_0_ADDRESS + (2 * \
UART_BASE_SIZE * (x)))
#define UART_BASE(x) UART_BASE_0_ADDR(x)
#endif /* _SOC_APOLLOLAKE_IOMAP_H_ */ #endif /* _SOC_APOLLOLAKE_IOMAP_H_ */

View File

@ -223,6 +223,11 @@ config SOC_INTEL_I2C_DEV_MAX
default 4 if SOC_INTEL_CANNONLAKE_PCH_H default 4 if SOC_INTEL_CANNONLAKE_PCH_H
default 6 default 6
config CONSOLE_UART_BASE_ADDRESS
hex
default 0xfe032000
depends on INTEL_LPSS_UART_FOR_CONSOLE
# Clock divider parameters for 115200 baud rate # Clock divider parameters for 115200 baud rate
config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
hex hex

View File

@ -29,14 +29,6 @@
#define PCH_TRACE_HUB_BASE_ADDRESS 0xfc800000 #define PCH_TRACE_HUB_BASE_ADDRESS 0xfc800000
#define PCH_TRACE_HUB_BASE_SIZE 0x00800000 #define PCH_TRACE_HUB_BASE_SIZE 0x00800000
#define UART_BASE_SIZE 0x1000
#define UART_BASE_0_ADDRESS 0xfe032000
/* Both UART BAR 0 and 1 are 4KB in size */
#define UART_BASE_0_ADDR(x) (UART_BASE_0_ADDRESS + (2 * \
UART_BASE_SIZE * (x)))
#define UART_BASE(x) UART_BASE_0_ADDR(x)
#define EARLY_I2C_BASE_ADDRESS 0xfe040000 #define EARLY_I2C_BASE_ADDRESS 0xfe040000
#define EARLY_I2C_BASE(x) (EARLY_I2C_BASE_ADDRESS + (0x1000 * (x))) #define EARLY_I2C_BASE(x) (EARLY_I2C_BASE_ADDRESS + (0x1000 * (x)))

View File

@ -59,7 +59,7 @@ Method (APRT, 1, Serialized)
#if CONFIG(DRIVERS_UART_8250MEM_32) #if CONFIG(DRIVERS_UART_8250MEM_32)
OperationRegion (UBAR, SystemMemory, OperationRegion (UBAR, SystemMemory,
UART_BASE_0_ADDR(CONFIG_UART_FOR_CONSOLE), 24) CONFIG_CONSOLE_UART_BASE_ADDRESS, 24)
Field (UBAR, AnyAcc, NoLock, Preserve) Field (UBAR, AnyAcc, NoLock, Preserve)
{ {
TDR, 8, /* Transmit Data Register BAR + 0x000 */ TDR, 8, /* Transmit Data Register BAR + 0x000 */

View File

@ -47,7 +47,7 @@ static void uart_lpss_init(uintptr_t baseaddr)
uintptr_t uart_platform_base(int idx) uintptr_t uart_platform_base(int idx)
{ {
if (idx == CONFIG_UART_FOR_CONSOLE) if (idx == CONFIG_UART_FOR_CONSOLE)
return UART_BASE_0_ADDR(CONFIG_UART_FOR_CONSOLE); return CONFIG_CONSOLE_UART_BASE_ADDRESS;
return 0; return 0;
} }
#endif #endif
@ -137,8 +137,7 @@ static void uart_configure_gpio_pads(void)
void uart_bootblock_init(void) void uart_bootblock_init(void)
{ {
/* Program UART BAR0, command, reset and clock register */ /* Program UART BAR0, command, reset and clock register */
uart_common_init(uart_get_device(), uart_common_init(uart_get_device(), CONFIG_CONSOLE_UART_BASE_ADDRESS);
UART_BASE(CONFIG_UART_FOR_CONSOLE));
/* Configure the 2 pads per UART. */ /* Configure the 2 pads per UART. */
uart_configure_gpio_pads(); uart_configure_gpio_pads();
@ -155,8 +154,8 @@ static void uart_read_resources(struct device *dev)
uart_is_debug_controller(dev)) { uart_is_debug_controller(dev)) {
struct resource *res = find_resource(dev, PCI_BASE_ADDRESS_0); struct resource *res = find_resource(dev, PCI_BASE_ADDRESS_0);
/* Need to set the base and size for the resource allocator. */ /* Need to set the base and size for the resource allocator. */
res->base = UART_BASE(CONFIG_UART_FOR_CONSOLE); res->base = CONFIG_CONSOLE_UART_BASE_ADDRESS;
res->size = UART_BASE_SIZE; res->size = 0x1000;
res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | res->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED |
IORESOURCE_FIXED; IORESOURCE_FIXED;
} }

View File

@ -138,6 +138,11 @@ config SOC_INTEL_UART_DEV_MAX
int int
default 3 default 3
config CONSOLE_UART_BASE_ADDRESS
hex
default 0xfe032000
depends on INTEL_LPSS_UART_FOR_CONSOLE
# Clock divider parameters for 115200 baud rate # Clock divider parameters for 115200 baud rate
config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
hex hex

View File

@ -28,14 +28,6 @@
#define PCH_TRACE_HUB_BASE_ADDRESS 0xfc800000 #define PCH_TRACE_HUB_BASE_ADDRESS 0xfc800000
#define PCH_TRACE_HUB_BASE_SIZE 0x00800000 #define PCH_TRACE_HUB_BASE_SIZE 0x00800000
#define UART_BASE_SIZE 0x1000
#define UART_BASE_0_ADDRESS 0xfe032000
/* Both UART BAR 0 and 1 are 4KB in size */
#define UART_BASE_0_ADDR(x) (UART_BASE_0_ADDRESS + (2 * \
UART_BASE_SIZE * (x)))
#define UART_BASE(x) UART_BASE_0_ADDR(x)
#define EARLY_I2C_BASE_ADDRESS 0xfe040000 #define EARLY_I2C_BASE_ADDRESS 0xfe040000
#define EARLY_I2C_BASE(x) (EARLY_I2C_BASE_ADDRESS + (0x1000 * (x))) #define EARLY_I2C_BASE(x) (EARLY_I2C_BASE_ADDRESS + (0x1000 * (x)))

View File

@ -289,6 +289,11 @@ config CPU_BCLK_MHZ
int int
default 100 default 100
config CONSOLE_UART_BASE_ADDRESS
hex
default 0xfe030000
depends on INTEL_LPSS_UART_FOR_CONSOLE
# Clock divider parameters for 115200 baud rate # Clock divider parameters for 115200 baud rate
config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
hex hex

View File

@ -25,13 +25,6 @@
#define PCH_PRESERVED_BASE_ADDRESS 0xfc800000 #define PCH_PRESERVED_BASE_ADDRESS 0xfc800000
#define PCH_PRESERVED_BASE_SIZE 0x02000000 #define PCH_PRESERVED_BASE_SIZE 0x02000000
#define UART_BASE_SIZE 0x1000
#define UART_BASE_0_ADDRESS 0xfe030000
/* Both UART BAR 0 and 1 are 4KB in size */
#define UART_BASE_0_ADDR(x) (UART_BASE_0_ADDRESS + (2 * \
UART_BASE_SIZE * (x)))
#define UART_BASE(x) UART_BASE_0_ADDR(x)
#define EARLY_I2C_BASE_ADDRESS 0xfe040000 #define EARLY_I2C_BASE_ADDRESS 0xfe040000
#define EARLY_I2C_BASE(x) (EARLY_I2C_BASE_ADDRESS + (0x1000 * (x))) #define EARLY_I2C_BASE(x) (EARLY_I2C_BASE_ADDRESS + (0x1000 * (x)))