Hello Kyösti Mälkki, Piotr Król, Stefan Reinauer, build bot (Jenkins), Michał Żygowski,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/27496
to look at the new patch set (#5).
Change subject: sb/amd/cimx/sb800: Get rid of power button device in coreboot ......................................................................
sb/amd/cimx/sb800: Get rid of power button device in coreboot
Apply commit d7b88dcb (mb/google/x86-boards: Get rid of power button device in coreboot) to AMD Brazos boards [1]:
As per the ACPI specification, there are two types of power button devices:
- Fixed hardware power button
- 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 all google mainboards and relies completely on the fixed hardware power button.
The same problem exists with the AMD Hudson devices in coreboot.
For AMD Hudson (2) and Yangtze based devices this was removed in commit 44f2fab8 (AMD hudson and yangtze boards: Let mainboard declare power button) [2].
Two devices are detected.
$ dmesg | grep Button [ 0.209213] input: Power Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0 [ 0.209254] ACPI: Power Button [PWRB] [ 0.209332] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input1 [ 0.209349] ACPI: Power Button [PWRF] $ sudo evtest No device specified, trying to scan all of /dev/input/event* Available devices: /dev/input/event0: Power Button /dev/input/event1: Power Button /dev/input/event2: AT Translated Set 2 keyboard /dev/input/event3: HD-Audio Generic HDMI/DP,pcm=3 /dev/input/event4: HDA ATI SB Rear Mic /dev/input/event5: HDA ATI SB Front Mic /dev/input/event6: HDA ATI SB Line /dev/input/event7: HDA ATI SB Line Out Front /dev/input/event8: HDA ATI SB Line Out Surround /dev/input/event9: HDA ATI SB Line Out CLFE /dev/input/event10: HDA ATI SB Line Out Side /dev/input/event11: HDA ATI SB Front Headphone /dev/input/event12: HID 1241:1122
Enumerating these devices also takes time in user space programs.
$ journalctl -o short-precise -u systemd-logind.service -b -- Logs begin at Sat 2017-12-16 23:28:06 CET, end at Mon 2018-07-16 08:23:11 CEST. -- Jul 16 08:22:54.006190 kodi systemd[1]: Starting Login Service... Jul 16 08:22:54.103445 kodi systemd-logind[169]: New seat seat0. Jul 16 08:22:54.163713 kodi systemd[1]: Started Login Service. Jul 16 08:22:54.312955 kodi systemd-logind[169]: Watching system buttons on /dev/input/event1 (Power Button) Jul 16 08:22:54.514965 kodi systemd-logind[169]: Watching system buttons on /dev/input/event0 (Power Button) Jul 16 08:22:54.781082 kodi systemd-logind[169]: Watching system buttons on /dev/input/event2 (AT Translated Set 2 keyboard)
With this commit, only one button device needs to be dealt with.
$ journalctl -o short-precise -u systemd-logind.service -b -- Logs begin at Sat 2017-12-16 23:28:06 CET, end at Mon 2018-07-16 09:11:03 CEST. -- Jul 16 09:10:23.998910 kodi systemd[1]: Starting Login Service... Jul 16 09:10:24.069152 kodi systemd-logind[168]: New seat seat0. Jul 16 09:10:24.196628 kodi systemd[1]: Started Login Service. Jul 16 09:10:24.470667 kodi systemd-logind[168]: Watching system buttons on /dev/input/event0 (Power Button) Jul 16 09:10:24.853909 kodi systemd-logind[168]: Watching system buttons on /dev/input/event1 (AT Translated Set 2 keyboard)
[1]: https://review.coreboot.org/5546 [2]: https://review.coreboot.org/27272
Change-Id: I0cbecb72f7e1bf3d051d3b7656c6af4d6f43b497 Signed-off-by: Paul Menzel paulepanter@users.sourceforge.net --- M src/mainboard/amd/inagua/acpi/gpe.asl M src/mainboard/amd/persimmon/acpi/gpe.asl M src/mainboard/amd/south_station/acpi/gpe.asl M src/mainboard/amd/union_station/acpi/gpe.asl M src/mainboard/asrock/e350m1/acpi/gpe.asl M src/mainboard/elmex/pcm205400/acpi/gpe.asl M src/mainboard/gizmosphere/gizmo/acpi/gpe.asl M src/mainboard/jetway/nf81-t56n-lf/acpi/gpe.asl M src/mainboard/pcengines/apu1/acpi/gpe.asl M src/southbridge/amd/cimx/sb800/acpi/fch.asl 10 files changed, 0 insertions(+), 90 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/96/27496/5