soc/intel/fsp_broadwell_de: Add ACPI HPET table

Tested on Mono Lake
TEST=Note the kernel log:
hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
hpet0: 8 comparators, 64-bit 14.318180 MHz counter

Change-Id: Idae9a7d3d4233037214d6203996bf44fe5f3a845
Signed-off-by: Johnny Lin <johnny_lin@wiwynn.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35027
Reviewed-by: Johnny Lin
Reviewed-by: Andrey Petrov <anpetrov@fb.com>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Johnny Lin 2019-08-22 09:21:34 +08:00 committed by Patrick Georgi
parent 1799011dc6
commit eb6cac2f16
4 changed files with 20 additions and 2 deletions

View File

@ -92,6 +92,10 @@ config DIMM_SPD_SIZE
int int
default 512 default 512
config HPET_MIN_TICKS
hex
default 0x80
## Broadwell-DE Specific FSP Kconfig ## Broadwell-DE Specific FSP Kconfig
source src/soc/intel/fsp_broadwell_de/fsp/Kconfig source src/soc/intel/fsp_broadwell_de/fsp/Kconfig

View File

@ -566,3 +566,14 @@ unsigned long acpi_madt_irq_overrides(unsigned long current)
return current; return current;
} }
unsigned long southcluster_write_acpi_tables(struct device *device,
unsigned long current,
acpi_rsdp_t *rsdp)
{
current = acpi_write_hpet(device, current, rsdp);
current = acpi_align_current(current);
printk(BIOS_DEBUG, "current = %lx\n", current);
return current;
}

View File

@ -27,5 +27,7 @@ uint16_t get_pmbase(void);
unsigned long vtd_write_acpi_tables(struct device *const dev, unsigned long vtd_write_acpi_tables(struct device *const dev,
unsigned long current, unsigned long current,
struct acpi_rsdp *const rsdp); struct acpi_rsdp *const rsdp);
unsigned long southcluster_write_acpi_tables(struct device *device,
unsigned long start,
acpi_rsdp_t *rsdp);
#endif /* _SOC_ACPI_H_ */ #endif /* _SOC_ACPI_H_ */

View File

@ -32,7 +32,7 @@
#include <soc/lpc.h> #include <soc/lpc.h>
#include <soc/pci_devs.h> #include <soc/pci_devs.h>
#include <soc/ramstage.h> #include <soc/ramstage.h>
#include <soc/acpi.h>
#include "chip.h" #include "chip.h"
typedef struct soc_intel_fsp_broadwell_de_config config_t; typedef struct soc_intel_fsp_broadwell_de_config config_t;
@ -277,6 +277,7 @@ static struct device_operations device_ops = {
.read_resources = sc_read_resources, .read_resources = sc_read_resources,
.set_resources = pci_dev_set_resources, .set_resources = pci_dev_set_resources,
.enable_resources = NULL, .enable_resources = NULL,
.write_acpi_tables = southcluster_write_acpi_tables,
.init = sc_init, .init = sc_init,
.enable = southcluster_enable_dev, .enable = southcluster_enable_dev,
.scan_bus = scan_lpc_bus, .scan_bus = scan_lpc_bus,