soc/amd/picasso: fix build if PICASSO_UART is unset
This change includes uart.c in bootblock, romstage, ramstage and verstage unconditionally because this file is handling more than just the UART console configuration. This allows boards to take advantage of picasso_uart_mmio_ops even if PICASSO_UART is not selected. uart_platform_base and uart_platform_refclk mustn't be provided if PICASSO_UART is unset, so add an #if around those functions. BUG=b:158346697 TEST=Mandolin builds again. Change-Id: If1173034b0d2ed32f77241768e1e8abb208aac3a Signed-off-by: Furquan Shaikh <furquan@google.com> Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/42339 Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
4c466c9c96
commit
ca481ee87f
|
@ -15,7 +15,7 @@ bootblock-y += bootblock/bootblock.c
|
|||
bootblock-y += aoac.c
|
||||
bootblock-y += southbridge.c
|
||||
bootblock-y += i2c.c
|
||||
bootblock-$(CONFIG_PICASSO_UART) += uart.c
|
||||
bootblock-y += uart.c
|
||||
bootblock-y += tsc_freq.c
|
||||
bootblock-y += gpio.c
|
||||
bootblock-y += smi_util.c
|
||||
|
@ -26,7 +26,7 @@ romstage-y += romstage.c
|
|||
romstage-y += gpio.c
|
||||
romstage-y += pmutil.c
|
||||
romstage-y += memmap.c
|
||||
romstage-$(CONFIG_PICASSO_UART) += uart.c
|
||||
romstage-y += uart.c
|
||||
romstage-y += tsc_freq.c
|
||||
romstage-y += aoac.c
|
||||
romstage-y += southbridge.c
|
||||
|
@ -40,7 +40,7 @@ verstage-y += i2c.c
|
|||
verstage-y += pmutil.c
|
||||
verstage-y += config.c
|
||||
verstage-y += aoac.c
|
||||
verstage-$(CONFIG_PICASSO_UART) += uart.c
|
||||
verstage-y += uart.c
|
||||
verstage-y += tsc_freq.c
|
||||
|
||||
ramstage-y += i2c.c
|
||||
|
@ -60,7 +60,7 @@ ramstage-y += sata.c
|
|||
ramstage-y += memmap.c
|
||||
ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c
|
||||
ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi_util.c
|
||||
ramstage-$(CONFIG_PICASSO_UART) += uart.c
|
||||
ramstage-y += uart.c
|
||||
ramstage-y += usb.c
|
||||
ramstage-y += tsc_freq.c
|
||||
ramstage-y += finalize.c
|
||||
|
|
|
@ -30,6 +30,16 @@ static const struct _uart_info {
|
|||
} },
|
||||
};
|
||||
|
||||
/*
|
||||
* Don't provide uart_platform_base and uart_platform_refclk functions if PICASSO_UART
|
||||
* isn't selected. Those two functions are used by the console UART driver and need to be
|
||||
* provided exactly once and only by the UART that is used for console.
|
||||
*
|
||||
* TODO: Replace the #if block by factoring out the two functions into a different compilation
|
||||
* unit.
|
||||
*/
|
||||
#if CONFIG(PICASSO_UART)
|
||||
|
||||
uintptr_t uart_platform_base(int idx)
|
||||
{
|
||||
if (idx < 0 || idx >= ARRAY_SIZE(uart_info))
|
||||
|
@ -38,6 +48,13 @@ uintptr_t uart_platform_base(int idx)
|
|||
return uart_info[idx].base;
|
||||
}
|
||||
|
||||
unsigned int uart_platform_refclk(void)
|
||||
{
|
||||
return CONFIG(PICASSO_UART_48MZ) ? 48000000 : 115200 * 16;
|
||||
}
|
||||
|
||||
#endif /* PICASSO_UART */
|
||||
|
||||
void clear_uart_legacy_config(void)
|
||||
{
|
||||
write16((void *)FCH_UART_LEGACY_DECODE, 0);
|
||||
|
@ -75,11 +92,6 @@ void set_uart_config(int idx)
|
|||
}
|
||||
}
|
||||
|
||||
unsigned int uart_platform_refclk(void)
|
||||
{
|
||||
return CONFIG(PICASSO_UART_48MZ) ? 48000000 : 115200 * 16;
|
||||
}
|
||||
|
||||
static const char *uart_acpi_name(const struct device *dev)
|
||||
{
|
||||
switch (dev->path.mmio.addr) {
|
||||
|
|
Loading…
Reference in New Issue