diff options
-rw-r--r-- | src/soc/intel/broadwell/lpc.c | 14 | ||||
-rw-r--r-- | src/soc/intel/common/block/acpi/acpi.c | 4 | ||||
-rw-r--r-- | src/soc/intel/skylake/acpi.c | 4 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/soc/intel/broadwell/lpc.c b/src/soc/intel/broadwell/lpc.c index d502e956e3..d1c42423ae 100644 --- a/src/soc/intel/broadwell/lpc.c +++ b/src/soc/intel/broadwell/lpc.c @@ -601,12 +601,24 @@ static void southcluster_inject_dsdt(device_t device) } } +static unsigned long broadwell_write_acpi_tables(device_t device, + unsigned long current, + struct acpi_rsdp *rsdp) +{ + if (IS_ENABLED(CONFIG_INTEL_PCH_UART_CONSOLE)) + current = acpi_write_dbg2_pci_uart(rsdp, current, + (CONFIG_INTEL_PCH_UART_CONSOLE_NUMBER == 1) ? + PCH_DEV_UART1 : PCH_DEV_UART0, + ACPI_ACCESS_SIZE_BYTE_ACCESS); + return acpi_write_hpet(device, current, rsdp); +} + static struct device_operations device_ops = { .read_resources = &pch_lpc_read_resources, .set_resources = &pci_dev_set_resources, .enable_resources = &pci_dev_enable_resources, .acpi_inject_dsdt_generator = southcluster_inject_dsdt, - .write_acpi_tables = acpi_write_hpet, + .write_acpi_tables = broadwell_write_acpi_tables, .init = &lpc_init, .scan_bus = &scan_lpc_bus, .ops_pci = &broadwell_pci_ops, diff --git a/src/soc/intel/common/block/acpi/acpi.c b/src/soc/intel/common/block/acpi/acpi.c index e216f2e001..3db96a030d 100644 --- a/src/soc/intel/common/block/acpi/acpi.c +++ b/src/soc/intel/common/block/acpi/acpi.c @@ -25,6 +25,7 @@ #include <intelblocks/acpi.h> #include <intelblocks/msr.h> #include <intelblocks/pmclib.h> +#include <intelblocks/uart.h> #include <soc/gpio.h> #include <soc/iomap.h> #include <soc/nvs.h> @@ -166,6 +167,9 @@ unsigned long southbridge_write_acpi_tables(device_t device, unsigned long current, struct acpi_rsdp *rsdp) { + current = acpi_write_dbg2_pci_uart(rsdp, current, + pch_uart_get_debug_controller(), + ACPI_ACCESS_SIZE_DWORD_ACCESS); return acpi_write_hpet(device, current, rsdp); } diff --git a/src/soc/intel/skylake/acpi.c b/src/soc/intel/skylake/acpi.c index 12036617c5..61360dafae 100644 --- a/src/soc/intel/skylake/acpi.c +++ b/src/soc/intel/skylake/acpi.c @@ -33,6 +33,7 @@ #include <intelblocks/cpulib.h> #include <intelblocks/lpc_lib.h> #include <intelblocks/sgx.h> +#include <intelblocks/uart.h> #include <soc/intel/common/acpi.h> #include <soc/acpi.h> #include <soc/cpu.h> @@ -564,6 +565,9 @@ unsigned long southbridge_write_acpi_tables(device_t device, unsigned long current, struct acpi_rsdp *rsdp) { + current = acpi_write_dbg2_pci_uart(rsdp, current, + pch_uart_get_debug_controller(), + ACPI_ACCESS_SIZE_DWORD_ACCESS); current = acpi_write_hpet(device, current, rsdp); return acpi_align_current(current); } |