src: Never overwrite `fadt->flags`
Instead, just flip the desired bits using bitwise operations. As this is initially zero, the resulting value is the same. This allows flags to be set from anywhere regardless of execution order. Tested on Asus P8Z77-V LX2 with Linux 5.7.6 and Windows 10 at the end of the patch train, both operating systems are able to boot successfully. Change-Id: Icfd580a20524936cd0adac574331b09fb2aea925 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/43387 Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
4b1b0efeda
commit
a208c6ce73
|
@ -119,7 +119,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0; /* 0x7f to make rtc alarm work */
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
fadt->res2 = 0; /* reserved, MUST be 0 ACPI 3.0 */
|
||||
fadt->flags = ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
fadt->flags |= ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_S4_RTC_WAKE |
|
||||
|
|
|
@ -91,7 +91,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0; /* 0x7f to make rtc alarm work */
|
||||
fadt->iapc_boot_arch = FADT_BOOT_ARCH; /* See table 5-10 */
|
||||
fadt->res2 = 0; /* reserved, MUST be 0 ACPI 3.0 */
|
||||
fadt->flags = ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
fadt->flags |= ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_S4_RTC_WAKE |
|
||||
|
|
|
@ -41,7 +41,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x00;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SEALED_CASE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
|
|
@ -41,7 +41,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x00;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SEALED_CASE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
|
|
@ -40,7 +40,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x00;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SEALED_CASE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
|
|
@ -119,10 +119,10 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->duty_offset = 1;
|
||||
fadt->day_alrm = 0xd;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SEALED_CASE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SEALED_CASE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
||||
fadt->reset_reg.space_id = 1;
|
||||
fadt->reset_reg.bit_width = 8;
|
||||
|
|
|
@ -140,10 +140,10 @@ void soc_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x00;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SLEEP_TYPE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SLEEP_TYPE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
||||
/* Reset Register */
|
||||
fadt->reset_reg.space_id = ACPI_ADDRESS_SPACE_IO;
|
||||
|
|
|
@ -25,7 +25,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
uint32_t pmbase = pci_read_config32(dev, R_QNC_LPC_PM1BLK)
|
||||
& B_QNC_LPC_PM1BLK_MASK;
|
||||
|
||||
fadt->flags = ACPI_FADT_RESET_REGISTER | ACPI_FADT_PLATFORM_CLOCK;
|
||||
fadt->flags |= ACPI_FADT_RESET_REGISTER | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
||||
/* PM1 Status: ACPI 4.8.3.1.1 */
|
||||
fadt->pm1a_evt_blk = pmbase + R_QNC_PM1BLK_PM1S;
|
||||
|
|
|
@ -46,7 +46,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
if (!CONFIG(NO_FADT_8042))
|
||||
fadt->iapc_boot_arch |= ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SEALED_CASE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
|
|
@ -298,7 +298,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->duty_offset = 1;
|
||||
fadt->day_alrm = 0xd;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED | ACPI_FADT_C2_MP_SUPPORTED |
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED | ACPI_FADT_C2_MP_SUPPORTED |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
||||
fadt->reset_reg.space_id = 1;
|
||||
|
|
|
@ -263,10 +263,10 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x00;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SLEEP_TYPE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER | ACPI_FADT_SLEEP_TYPE |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
||||
/* Reset Register */
|
||||
fadt->reset_reg.space_id = ACPI_ADDRESS_SPACE_IO;
|
||||
|
|
|
@ -55,7 +55,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0; /* 0x7f to make rtc alarm work */
|
||||
fadt->iapc_boot_arch = FADT_BOOT_ARCH; /* See table 5-10 */
|
||||
fadt->res2 = 0; /* reserved, MUST be 0 ACPI 3.0 */
|
||||
fadt->flags = ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
fadt->flags |= ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_S4_RTC_WAKE |
|
||||
|
|
|
@ -81,7 +81,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0; /* 0x7f to make rtc alarm work */
|
||||
fadt->iapc_boot_arch = FADT_BOOT_ARCH; /* See table 5-10 */
|
||||
fadt->res2 = 0; /* reserved, MUST be 0 ACPI 3.0 */
|
||||
fadt->flags = ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
fadt->flags |= ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_S4_RTC_WAKE |
|
||||
|
|
|
@ -55,7 +55,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0; /* 0x7f to make rtc alarm work */
|
||||
fadt->iapc_boot_arch = FADT_BOOT_ARCH; /* See table 5-10 */
|
||||
fadt->res2 = 0; /* reserved, MUST be 0 ACPI 3.0 */
|
||||
fadt->flags = ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
fadt->flags |= ACPI_FADT_WBINVD | /* See table 5-10 ACPI 3.0a spec */
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_S4_RTC_WAKE |
|
||||
|
|
|
@ -50,7 +50,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x00;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD |
|
||||
fadt->flags |= ACPI_FADT_WBINVD |
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER |
|
||||
|
|
|
@ -103,7 +103,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
* 18 FORCE_APIC_CLUSTER_MODEL
|
||||
* 19 FORCE_APIC_PHYSICAL_DESTINATION_MODE
|
||||
*/
|
||||
fadt->flags = 0xa5 | ACPI_FADT_RESET_REGISTER;
|
||||
fadt->flags |= 0xa5 | ACPI_FADT_RESET_REGISTER;
|
||||
|
||||
fadt->reset_reg.space_id = ACPI_ADDRESS_SPACE_IO;
|
||||
fadt->reset_reg.bit_width = 8;
|
||||
|
|
|
@ -50,7 +50,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x00;
|
||||
fadt->iapc_boot_arch = 0x03;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_RESET_REGISTER |
|
||||
ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
|
|
@ -49,7 +49,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->mon_alrm = 0x00;
|
||||
fadt->century = 0x32;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_8042 | ACPI_FADT_LEGACY_DEVICES;
|
||||
fadt->flags = (ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED
|
||||
fadt->flags |= (ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED
|
||||
| ACPI_FADT_SLEEP_BUTTON | ACPI_FADT_S4_RTC_WAKE
|
||||
| ACPI_FADT_PLATFORM_CLOCK | ACPI_FADT_RESET_REGISTER
|
||||
| ACPI_FADT_C2_MP_SUPPORTED);
|
||||
|
|
|
@ -42,7 +42,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->mon_alrm = 0x00;
|
||||
fadt->century = 0x32;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_FREE;
|
||||
fadt->flags = ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON | ACPI_FADT_S4_RTC_WAKE |
|
||||
ACPI_FADT_DOCKING_SUPPORTED | ACPI_FADT_RESET_REGISTER |
|
||||
ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
|
|
@ -45,7 +45,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->mon_alrm = 0x00;
|
||||
fadt->century = 0x32;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_8042 | ACPI_FADT_LEGACY_DEVICES;
|
||||
fadt->flags = (ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED
|
||||
fadt->flags |= (ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED
|
||||
| ACPI_FADT_SLEEP_BUTTON | ACPI_FADT_S4_RTC_WAKE
|
||||
| ACPI_FADT_PLATFORM_CLOCK | ACPI_FADT_RESET_REGISTER
|
||||
| ACPI_FADT_C2_MP_SUPPORTED);
|
||||
|
|
|
@ -50,7 +50,7 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x32;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD |
|
||||
fadt->flags |= ACPI_FADT_WBINVD |
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER |
|
||||
|
|
|
@ -55,14 +55,14 @@ void acpi_fill_fadt(acpi_fadt_t *fadt)
|
|||
fadt->century = 0x00;
|
||||
fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
|
||||
|
||||
fadt->flags = ACPI_FADT_WBINVD |
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER |
|
||||
ACPI_FADT_SEALED_CASE |
|
||||
ACPI_FADT_S4_RTC_WAKE |
|
||||
ACPI_FADT_PLATFORM_CLOCK;
|
||||
fadt->flags |= ACPI_FADT_WBINVD |
|
||||
ACPI_FADT_C1_SUPPORTED |
|
||||
ACPI_FADT_C2_MP_SUPPORTED |
|
||||
ACPI_FADT_SLEEP_BUTTON |
|
||||
ACPI_FADT_RESET_REGISTER |
|
||||
ACPI_FADT_SEALED_CASE |
|
||||
ACPI_FADT_S4_RTC_WAKE |
|
||||
ACPI_FADT_PLATFORM_CLOCK;
|
||||
|
||||
if (cfg->docking_supported)
|
||||
fadt->flags |= ACPI_FADT_DOCKING_SUPPORTED;
|
||||
|
|
Loading…
Reference in New Issue