summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/broadwell/lpc.c14
-rw-r--r--src/soc/intel/common/block/acpi/acpi.c4
-rw-r--r--src/soc/intel/skylake/acpi.c4
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);
}