summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhao, Lijian <lijian.zhao@intel.com>2015-12-01 09:14:20 -0800
committerMartin Roth <martinroth@google.com>2016-04-11 18:22:30 +0200
commit30461a91977d6770bb3ec6c378a21afe2616f3d7 (patch)
treec8f2ab7f59753127312aa44947094690c67cb4c0
parenta7ff9c59a1e71da0ab956395dfa92287a81d7ac3 (diff)
soc/apollolake/acpi: Fill ACPI HPET table
HPET table is required to report integrated HPET timer to kernel. Without HPET table added,Linux kernel will panic when loading timer driver. Change-Id: I7368bc29f4e03d5882dcfc4a770fa7bfbc6c26a0 Signed-off-by: Zhao, Lijian <lijian.zhao@intel.com> Reviewed-on: https://review.coreboot.org/13374 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
-rw-r--r--src/soc/intel/apollolake/acpi.c7
-rw-r--r--src/soc/intel/apollolake/include/soc/acpi.h3
-rw-r--r--src/soc/intel/apollolake/lpc.c2
3 files changed, 12 insertions, 0 deletions
diff --git a/src/soc/intel/apollolake/acpi.c b/src/soc/intel/apollolake/acpi.c
index 93602b9e8c..3b50bf2116 100644
--- a/src/soc/intel/apollolake/acpi.c
+++ b/src/soc/intel/apollolake/acpi.c
@@ -113,3 +113,10 @@ void soc_fill_common_fadt(acpi_fadt_t * fadt)
fadt->x_gpe1_blk.space_id = 1;
}
+
+unsigned long southbridge_write_acpi_tables(device_t device,
+ unsigned long current,
+ struct acpi_rsdp *rsdp)
+{
+ return acpi_write_hpet(device, current, rsdp);
+}
diff --git a/src/soc/intel/apollolake/include/soc/acpi.h b/src/soc/intel/apollolake/include/soc/acpi.h
index f21b379cee..6546662d13 100644
--- a/src/soc/intel/apollolake/include/soc/acpi.h
+++ b/src/soc/intel/apollolake/include/soc/acpi.h
@@ -17,4 +17,7 @@
void soc_fill_common_fadt(acpi_fadt_t * fadt);
+unsigned long southbridge_write_acpi_tables(device_t device,
+ unsigned long current, struct acpi_rsdp *rsdp);
+
#endif /* _SOC_APOLLOLAKE_ACPI_H_ */
diff --git a/src/soc/intel/apollolake/lpc.c b/src/soc/intel/apollolake/lpc.c
index abc5245376..d0cae3d906 100644
--- a/src/soc/intel/apollolake/lpc.c
+++ b/src/soc/intel/apollolake/lpc.c
@@ -13,6 +13,7 @@
#include <device/device.h>
#include <device/pci.h>
#include <device/pci_ids.h>
+#include <soc/acpi.h>
#include <soc/pci_ids.h>
static void soc_lpc_add_io_resources(device_t dev)
@@ -39,6 +40,7 @@ static struct device_operations device_ops = {
.read_resources = &soc_lpc_read_resources,
.set_resources = &pci_dev_set_resources,
.enable_resources = &pci_dev_enable_resources,
+ .write_acpi_tables = southbridge_write_acpi_tables,
};
static const struct pci_driver soc_lpc __pci_driver = {