Hi, I encountered the same issue on a new T480s as reported here: https://marc.info/?l=openbsd-bugs&m=152022260714390&w=2
I am posting this to misc because the bug appears to be with Lenovo's ACPI tables, not OpenBSD. I just wanted to provide some updated information for anyone else who has this machine and might be experiencing the same issues. Lenovo just released another UEFI update: "<1.12> UEFI: 1.12 / ECP: 1.07 - (Fix) Fix an issue where the "Configuration changed - restart the system" message might be displayed 2 or 3 times on Non-Smart Card model when power on the computer. <1.11> UEFI: 1.11 / ECP: 1.07 - (Fix) Fix an issue where system may become hot by system interrupts when Thundrebolt is disabled in ThinkPad Setup - Security - I/O Port Access." These sound promising because the changelog addresses both issues. I never encountered the message "configuration changed - restart the system" in the first place, so I can't really confirm or deny whether that fix works. Ironically, I did see that message for the first time ever - immediately after applying the UEFI update that claims to fix it. Thankfully I haven't seen it again since. Unfortunately, the thunderbolt interrupt issue has only been fixed for the "disabled" state. With thunderbolt enabled, the ACPI interrupt storm still happens as usual. It occurs on every cold-boot, and is always resolved by a reboot. I compared the old and new DSDT tables to see how they modified the thunderbolt code. I don't know much about the ASL language, so I can't really comment on the specifics of what they've done, but to my untrained eye, and given that it doesn't work, it may have been unnecessary. I have a hunch that the bug is actually in these sections: ... If ((TBTS == 0x01)) { Acquire (OSUM, 0xFFFF) \_GPE.TINI (TBSE) If ((TBMP == 0x01)) { \_GPE.TINI (TBS1) } Release (OSUM) } ... If ((TBTS == 0x01)) { Acquire (OSUM, 0xFFFF) \_GPE.TINI (TBSE) Release (OSUM) If ((TBMP == 0x01)) { Acquire (OSUM, 0xFFFF) \_GPE.TINI (TBS1) Release (OSUM) } ... The first block appears in a "wake" section, and the second block appears in an "initialize" section. This fits the problem description; When I cold-boot the system, the interrupt problem always exists. When I reboot the system, the interrupt problem never exists. Therefore, one of these sections must not be acquiring and releasing mutexes properly. I believe the second section is correct, and the first section should be rewritten to match (contrary to my expectations, this implies a cold-boot is considered to be a "wake" event rather than an "initialization" event). As an aside, I noticed the list of operating systems in the "initialize" section is missing OpenBSD. How inconsiderate! ... If (\_OSI ("Linux")) { \LNUX = 0x01 OSYS = 0x03E8 } If (\_OSI ("FreeBSD")) { \LNUX = 0x01 OSYS = 0x03E8 } ... Solutions, from worst to best: 1) After powering on the machine, type "reboot" at the OpenBSD bootloader. 2) Update to the latest UEFI firmware and then disable thunderbolt. 3) Report the bug to Lenovo so they can investigate and fix it at the source. Anybody have a contact within Lenovo for option 3?