summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenny TC <jenny.tc@intel.com>2017-02-09 16:01:59 +0530
committerFurquan Shaikh <furquan@google.com>2017-02-14 00:51:21 +0100
commit2864f85725e517ece5d5ce985c51b4561f81dab6 (patch)
tree66dd376473dec35e2284fc6a8791bd907261f1ee
parentb3b453f93c675786479270ac8234d4cdad86ddf5 (diff)
intel/skylake: Disable FADT.8042 if NO_FADT_8042 is set
Kernel relies on FADT 8042 flag to enable/disable 8042 interface. If FADT reports 8042 capability and 8042 (/PS2) capability is actually disabled by coreboot, kernel would assume the presence of 8042 based on the FADT flag. This results in undesired system power off when kernel tries to access the 8042 memory region. To address this, CONFIG_NO_FADT_8042 was added to selectively disable 8042 on FADT. BUG=chrome-os-partner:61858 TEST=Boot OS and verify FADT 8042 flag Change-Id: Ic80b3835cb5cccdde1203e24a58e28746b0196fc Signed-off-by: Jenny TC <jenny.tc@intel.com> Reviewed-on: https://review.coreboot.org/18307 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r--src/soc/intel/skylake/Kconfig6
-rw-r--r--src/soc/intel/skylake/acpi.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/src/soc/intel/skylake/Kconfig b/src/soc/intel/skylake/Kconfig
index 24c2e303b3..090fa2a083 100644
--- a/src/soc/intel/skylake/Kconfig
+++ b/src/soc/intel/skylake/Kconfig
@@ -242,4 +242,10 @@ config MAX_ROOT_PORTS
default 24 if PLATFORM_USES_FSP2_0
default 20 if PLATFORM_USES_FSP1_1
+config NO_FADT_8042
+ bool
+ default n
+ help
+ Choose this option if you want to disable 8042 Keyboard
+
endif
diff --git a/src/soc/intel/skylake/acpi.c b/src/soc/intel/skylake/acpi.c
index 54468d29f6..2f8cf51fac 100644
--- a/src/soc/intel/skylake/acpi.c
+++ b/src/soc/intel/skylake/acpi.c
@@ -268,7 +268,9 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
fadt->day_alrm = 0xd;
fadt->mon_alrm = 0x00;
fadt->century = 0x00;
- fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
+ fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES;
+ if (!IS_ENABLED(CONFIG_NO_FADT_8042))
+ fadt->iapc_boot_arch |= ACPI_FADT_8042;
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |