From 819b143925bc060b09ccb39b9a9395fd09f1b014 Mon Sep 17 00:00:00 2001 From: Subrata Banik Date: Fri, 28 Sep 2018 19:56:54 +0530 Subject: soc/intel/cannonlake: Ensure FSP don't override ITSS IPCx registers This patch save and restore ITSS IPCx register before and after FSP-S call. Change-Id: Iea9356b4404d2fa49ea62ef7bc2c72f125054ff3 Signed-off-by: Subrata Banik Reviewed-on: https://review.coreboot.org/28792 Reviewed-by: Aaron Durbin Reviewed-by: Furquan Shaikh Tested-by: build bot (Jenkins) --- src/soc/intel/cannonlake/chip.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/soc/intel/cannonlake/chip.c') diff --git a/src/soc/intel/cannonlake/chip.c b/src/soc/intel/cannonlake/chip.c index 6a3324b7fd..0529c5ca8c 100644 --- a/src/soc/intel/cannonlake/chip.c +++ b/src/soc/intel/cannonlake/chip.c @@ -21,9 +21,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -96,11 +98,18 @@ const char *soc_acpi_name(const struct device *dev) void soc_init_pre_device(void *chip_info) { + /* Snapshot the current GPIO IRQ polarities. FSP is setting a + * default policy that doesn't honor boards' requirements. */ + itss_snapshot_irq_polarities(GPIO_IRQ_START, GPIO_IRQ_END); + /* Perform silicon specific init. */ fsp_silicon_init(romstage_handoff_is_resume()); /* Display FIRMWARE_VERSION_INFO_HOB */ fsp_display_fvi_version_hob(); + + /* Restore GPIO IRQ polarities back to previous settings. */ + itss_restore_irq_polarities(GPIO_IRQ_START, GPIO_IRQ_END); } static void pci_domain_set_resources(struct device *dev) -- cgit v1.2.3