coreboot-kgpe-d16/src
Furquan Shaikh 9c462c617e soc/intel/apollolake: Get rid of power button device in coreboot
As per the ACPI specification, there are two types of power button
devices:
1. Fixed hardware power button
2. Generic hardware power button

Fixed hardware power button is added by the OSPM if POWER_BUTTON flag
is not set in FADT by the BIOS. This device has its programming model
in PM1x_EVT_BLK. All ACPI compliant OSes are expected to add this
power button device by default if the power button FADT flag is not
set.

On the other hand, generic hardware power button can be used by
platforms if fixed register space cannot be used for the power button
device. In order to support this, power button device object with HID
PNP0C0C is expected to be added to ACPI tables. Additionally,
POWER_BUTTON flag should be set to indicate the presence of control
method for power button.

Chrome EC mainboards implemented the generic hardware power button in
a broken manner i.e. power button object with HID PNP0C0C is added to
ACPI however none of the boards set POWER_BUTTON flag in FADT. This
results in Linux kernel adding both fixed hardware power button as
well as generic hardware power button to the list of devices present
on the system. Though this is mostly harmless, it is logically
incorrect and can confuse any userspace utilities scanning the ACPI
devices.

This change gets rid of the generic hardware power button from APL
and relies completely on the fixed hardware power button.

BUG=b:110913245
TEST=Verified that fixed hardware power button still works as expected
on octopus.

Change-Id: I86259465c6cfaf579dd7dc3560b4c9e676b80b55
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/27273
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2018-07-25 18:52:47 +00:00
..
acpi arch/x86: Add common AMD ACPI hardware definitions 2017-11-10 19:15:38 +00:00
arch arch/x86/smbios: Add support for table 38 2018-07-19 13:50:28 +00:00
commonlib src/{arch,commonlib,cpu}: Use "foo *bar" instead of "foo* bar" 2018-07-09 09:26:18 +00:00
console arch/x86: Drop leftover ROMCC console support 2018-06-08 03:31:12 +00:00
cpu drivers/tpm: Add TPM ramstage driver for devices without vboot. 2018-07-25 15:53:35 +00:00
device device/pci: Add MSI-X helper functions 2018-07-19 13:52:28 +00:00
drivers drivers/tpm: Add TPM ramstage driver for devices without vboot. 2018-07-25 15:53:35 +00:00
ec ec/lenovo/h8/acpi: Apply state on wake 2018-07-19 16:49:18 +00:00
include cpu/x86/mtrr.h: Rename MSR SMRR_PHYS_x to IA32_SMRR_PHYSx 2018-07-24 18:34:37 +00:00
lib write_tables: return a pointer to the table 2018-07-20 03:26:46 +00:00
mainboard mb/google/x86-boards: Get rid of power button device in coreboot 2018-07-25 18:52:40 +00:00
northbridge drivers/tpm: Add TPM ramstage driver for devices without vboot. 2018-07-25 15:53:35 +00:00
security security/vboot: fix typo 2018-07-18 12:20:13 +00:00
soc soc/intel/apollolake: Get rid of power button device in coreboot 2018-07-25 18:52:47 +00:00
southbridge Kconfig: Make the EM100 config option common 2018-07-16 07:41:14 +00:00
superio superio/winbond: remove LDN-specific ops overrides 2018-07-25 09:28:20 +00:00
vendorcode vendorcode/intel: Update GLK FSP Header files w.r.t FSP v2.0.5 2018-07-25 18:38:39 +00:00
Kconfig Kconfig: Make the EM100 config option common 2018-07-16 07:41:14 +00:00