Kyösti Mälkki has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/41922 )
Change subject: [WIP] Fix remaining acpi_create_fadt() ......................................................................
[WIP] Fix remaining acpi_create_fadt()
Change-Id: Iffdce450b1d4c9984ec5efe11eff62bf9184e314 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- M src/acpi/acpi.c M src/include/acpi/acpi.h M src/mainboard/aopen/dxplplusu/fadt.c M src/mainboard/emulation/qemu-q35/acpi_tables.c M src/mainboard/lenovo/t400/fadt.c M src/mainboard/lenovo/x200/fadt.c M src/mainboard/roda/rk9/fadt.c M src/southbridge/amd/agesa/hudson/fadt.c M src/southbridge/amd/cimx/sb800/fadt.c M src/southbridge/amd/pi/hudson/fadt.c M src/southbridge/intel/i82371eb/fadt.c 11 files changed, 22 insertions(+), 23 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/22/41922/1
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c index 2f4a2bb..c9bba36 100644 --- a/src/acpi/acpi.c +++ b/src/acpi/acpi.c @@ -1266,6 +1266,16 @@ header->checksum = acpi_checksum((void *) fadt, header->length); } +#else +void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt) +{ + acpi_header_t *header = &(fadt->header); + + acpi_mb_create_fadt(fadt, facs, dsdt); + + header->checksum = + acpi_checksum((void *) fadt, header->length); +} #endif
unsigned long __weak fw_cfg_acpi_tables(unsigned long start) diff --git a/src/include/acpi/acpi.h b/src/include/acpi/acpi.h index e8c699c5..202a55e 100644 --- a/src/include/acpi/acpi.h +++ b/src/include/acpi/acpi.h @@ -873,6 +873,9 @@ void soc_fill_fadt(acpi_fadt_t *fadt); void motherboard_fill_fadt(acpi_fadt_t *fadt);
+/* FIXME: transitional helper only */ +void acpi_mb_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt); + void update_ssdt(void *ssdt); void update_ssdtx(void *ssdtx, int i);
diff --git a/src/mainboard/aopen/dxplplusu/fadt.c b/src/mainboard/aopen/dxplplusu/fadt.c index ad522c4..994d039 100644 --- a/src/mainboard/aopen/dxplplusu/fadt.c +++ b/src/mainboard/aopen/dxplplusu/fadt.c @@ -17,7 +17,7 @@ #define S4_BIOS 0x77 #define GNVS_UPDATE 0xea
-void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) { acpi_header_t *header = &(fadt->header); u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe; @@ -145,6 +145,4 @@ fadt->x_gpe1_blk.access_size = 0; fadt->x_gpe1_blk.addrl = 0x0; fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); } diff --git a/src/mainboard/emulation/qemu-q35/acpi_tables.c b/src/mainboard/emulation/qemu-q35/acpi_tables.c index 9bf58a6..b606b48 100644 --- a/src/mainboard/emulation/qemu-q35/acpi_tables.c +++ b/src/mainboard/emulation/qemu-q35/acpi_tables.c @@ -24,7 +24,7 @@ }
-void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) { acpi_header_t *header = &(fadt->header); u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe; @@ -152,8 +152,6 @@ fadt->x_gpe1_blk.access_size = 0; fadt->x_gpe1_blk.addrl = 0x0; fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); }
unsigned long acpi_fill_madt(unsigned long current) diff --git a/src/mainboard/lenovo/t400/fadt.c b/src/mainboard/lenovo/t400/fadt.c index 257fb41..7376881 100644 --- a/src/mainboard/lenovo/t400/fadt.c +++ b/src/mainboard/lenovo/t400/fadt.c @@ -6,7 +6,7 @@ #include <cpu/x86/smm.h> #include <version.h>
-void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) { acpi_header_t *header = &(fadt->header); u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe; @@ -136,6 +136,4 @@ fadt->x_gpe1_blk.access_size = 0; fadt->x_gpe1_blk.addrl = 0x0; fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); } diff --git a/src/mainboard/lenovo/x200/fadt.c b/src/mainboard/lenovo/x200/fadt.c index 257fb41..7376881 100644 --- a/src/mainboard/lenovo/x200/fadt.c +++ b/src/mainboard/lenovo/x200/fadt.c @@ -6,7 +6,7 @@ #include <cpu/x86/smm.h> #include <version.h>
-void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) { acpi_header_t *header = &(fadt->header); u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe; @@ -136,6 +136,4 @@ fadt->x_gpe1_blk.access_size = 0; fadt->x_gpe1_blk.addrl = 0x0; fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); } diff --git a/src/mainboard/roda/rk9/fadt.c b/src/mainboard/roda/rk9/fadt.c index 5127545..35ce073 100644 --- a/src/mainboard/roda/rk9/fadt.c +++ b/src/mainboard/roda/rk9/fadt.c @@ -6,7 +6,7 @@ #include <cpu/x86/smm.h> #include <version.h>
-void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) { acpi_header_t *header = &(fadt->header); u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe; @@ -136,6 +136,4 @@ fadt->x_gpe1_blk.access_size = 0; fadt->x_gpe1_blk.addrl = 0x0; fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); } diff --git a/src/southbridge/amd/agesa/hudson/fadt.c b/src/southbridge/amd/agesa/hudson/fadt.c index a328a88..b98087a 100644 --- a/src/southbridge/amd/agesa/hudson/fadt.c +++ b/src/southbridge/amd/agesa/hudson/fadt.c @@ -27,7 +27,7 @@ * Reference section 5.2.9 Fixed ACPI Description Table (FADT) * in the ACPI 3.0b specification. */ -void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) { acpi_header_t *header = &(fadt->header);
@@ -186,5 +186,4 @@ fadt->x_gpe1_blk.addrl = 0; fadt->x_gpe1_blk.addrh = 0x0;
- header->checksum = acpi_checksum((void *)fadt, sizeof(acpi_fadt_t)); } diff --git a/src/southbridge/amd/cimx/sb800/fadt.c b/src/southbridge/amd/cimx/sb800/fadt.c index abb383d..23df308 100644 --- a/src/southbridge/amd/cimx/sb800/fadt.c +++ b/src/southbridge/amd/cimx/sb800/fadt.c @@ -31,7 +31,7 @@ * Reference section 5.2.9 Fixed ACPI Description Table (FADT) * in the ACPI 3.0b specification. */ -void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) { u16 val = 0; acpi_header_t *header = &(fadt->header); @@ -210,6 +210,5 @@ fadt->x_gpe1_blk.addrl = 0; fadt->x_gpe1_blk.addrh = 0x0;
- header->checksum = acpi_checksum((void *)fadt, sizeof(acpi_fadt_t));
} diff --git a/src/southbridge/amd/pi/hudson/fadt.c b/src/southbridge/amd/pi/hudson/fadt.c index 686b669..653c2bd 100644 --- a/src/southbridge/amd/pi/hudson/fadt.c +++ b/src/southbridge/amd/pi/hudson/fadt.c @@ -27,7 +27,7 @@ * Reference section 5.2.9 Fixed ACPI Description Table (FADT) * in the ACPI 3.0b specification. */ -void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) { acpi_header_t *header = &(fadt->header);
@@ -178,5 +178,4 @@ fadt->x_gpe1_blk.addrl = 0; fadt->x_gpe1_blk.addrh = 0x0;
- header->checksum = acpi_checksum((void *)fadt, sizeof(acpi_fadt_t)); } diff --git a/src/southbridge/intel/i82371eb/fadt.c b/src/southbridge/intel/i82371eb/fadt.c index 66781be..1c9fdb7 100644 --- a/src/southbridge/intel/i82371eb/fadt.c +++ b/src/southbridge/intel/i82371eb/fadt.c @@ -16,7 +16,7 @@ * Create the Fixed ACPI Description Tables (FADT) for any board with this SB. * Reference: ACPIspec40a, 5.2.9, page 118 */ -void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt) +void acpi_mb_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt) { acpi_header_t *header = &(fadt->header);
@@ -198,5 +198,4 @@ fadt->x_gpe1_blk.addrl = fadt->gpe1_blk; fadt->x_gpe1_blk.addrh = 0x0;
- header->checksum = acpi_checksum((void *) fadt, sizeof(acpi_fadt_t)); }
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/41922 )
Change subject: [WIP] Fix remaining acpi_create_fadt() ......................................................................
Patch Set 1:
(16 comments)
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/aopen/dxplplu... File src/mainboard/aopen/dxplplusu/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/aopen/dxplplu... PS1, Line 20: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/aopen/dxplplu... PS1, Line 20: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/emulation/qem... File src/mainboard/emulation/qemu-q35/acpi_tables.c:
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/emulation/qem... PS1, Line 27: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/emulation/qem... PS1, Line 27: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/lenovo/t400/f... File src/mainboard/lenovo/t400/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/lenovo/t400/f... PS1, Line 9: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/lenovo/t400/f... PS1, Line 9: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/lenovo/x200/f... File src/mainboard/lenovo/x200/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/lenovo/x200/f... PS1, Line 9: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/lenovo/x200/f... PS1, Line 9: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/roda/rk9/fadt... File src/mainboard/roda/rk9/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/roda/rk9/fadt... PS1, Line 9: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/mainboard/roda/rk9/fadt... PS1, Line 9: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/agesa/h... File src/southbridge/amd/agesa/hudson/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/agesa/h... PS1, Line 30: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/agesa/h... PS1, Line 30: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/cimx/sb... File src/southbridge/amd/cimx/sb800/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/cimx/sb... PS1, Line 34: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/cimx/sb... PS1, Line 34: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/pi/huds... File src/southbridge/amd/pi/hudson/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/pi/huds... PS1, Line 30: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
https://review.coreboot.org/c/coreboot/+/41922/1/src/southbridge/amd/pi/huds... PS1, Line 30: void acpi_mb_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) "foo * bar" should be "foo *bar"
Hello build bot (Jenkins), Alexander Couzens, Patrick Rudolph,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/41922
to look at the new patch set (#2).
Change subject: [WIP] sb/intel/i82801ix: Select COMMON_FADT ......................................................................
[WIP] sb/intel/i82801ix: Select COMMON_FADT
Change-Id: Iffdce450b1d4c9984ec5efe11eff62bf9184e314 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- M src/mainboard/emulation/qemu-q35/acpi_tables.c D src/mainboard/lenovo/x200/fadt.c D src/mainboard/roda/rk9/fadt.c M src/southbridge/intel/i82801ix/Kconfig M src/southbridge/intel/i82801ix/Makefile.inc R src/southbridge/intel/i82801ix/fadt.c 6 files changed, 4 insertions(+), 428 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/22/41922/2
Hello build bot (Jenkins), Nico Huber, Patrick Georgi, Martin Roth, Alexander Couzens, Patrick Rudolph,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/41922
to look at the new patch set (#4).
Change subject: sb/intel/i82801ix: Select COMMON_FADT ......................................................................
sb/intel/i82801ix: Select COMMON_FADT
Change-Id: Iffdce450b1d4c9984ec5efe11eff62bf9184e314 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com --- M src/mainboard/emulation/qemu-q35/acpi_tables.c D src/mainboard/lenovo/x200/fadt.c D src/mainboard/roda/rk9/fadt.c M src/southbridge/intel/i82801ix/Kconfig M src/southbridge/intel/i82801ix/Makefile.inc R src/southbridge/intel/i82801ix/fadt.c 6 files changed, 8 insertions(+), 434 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/22/41922/4
HAOUAS Elyes has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/41922 )
Change subject: sb/intel/i82801ix: Select COMMON_FADT ......................................................................
Patch Set 5: Code-Review+1
(1 comment)
https://review.coreboot.org/c/coreboot/+/41922/5/src/southbridge/intel/i8280... File src/southbridge/intel/i82801ix/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/5/src/southbridge/intel/i8280... PS5, Line 13: fadt->preferred_pm_profile = PM_MOBILE; isn't this already done #if CONFIG(COMMON_FADT) here src/acpi/acpi.c (line 1257) ?
Kyösti Mälkki has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/41922 )
Change subject: sb/intel/i82801ix: Select COMMON_FADT ......................................................................
Patch Set 5:
(1 comment)
https://review.coreboot.org/c/coreboot/+/41922/5/src/southbridge/intel/i8280... File src/southbridge/intel/i82801ix/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/5/src/southbridge/intel/i8280... PS5, Line 13: fadt->preferred_pm_profile = PM_MOBILE;
isn't this already done #if CONFIG(COMMON_FADT) here src/acpi/acpi. […]
There are followups to deal with some of the redundancy on these.
Patrick Rudolph has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/41922 )
Change subject: sb/intel/i82801ix: Select COMMON_FADT ......................................................................
Patch Set 5: Code-Review+2
HAOUAS Elyes has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/41922 )
Change subject: sb/intel/i82801ix: Select COMMON_FADT ......................................................................
Patch Set 5: Code-Review+2
(1 comment)
Thank you
https://review.coreboot.org/c/coreboot/+/41922/5/src/southbridge/intel/i8280... File src/southbridge/intel/i82801ix/fadt.c:
https://review.coreboot.org/c/coreboot/+/41922/5/src/southbridge/intel/i8280... PS5, Line 13: fadt->preferred_pm_profile = PM_MOBILE;
There are followups to deal with some of the redundancy on these.
Done
Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/41922 )
Change subject: sb/intel/i82801ix: Select COMMON_FADT ......................................................................
sb/intel/i82801ix: Select COMMON_FADT
Change-Id: Iffdce450b1d4c9984ec5efe11eff62bf9184e314 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/41922 Reviewed-by: Patrick Rudolph siro@das-labor.org Reviewed-by: HAOUAS Elyes ehaouas@noos.fr Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/mainboard/emulation/qemu-q35/acpi_tables.c D src/mainboard/lenovo/x200/fadt.c D src/mainboard/roda/rk9/fadt.c M src/southbridge/intel/i82801ix/Kconfig M src/southbridge/intel/i82801ix/Makefile.inc R src/southbridge/intel/i82801ix/fadt.c 6 files changed, 8 insertions(+), 434 deletions(-)
Approvals: build bot (Jenkins): Verified HAOUAS Elyes: Looks good to me, approved Patrick Rudolph: Looks good to me, approved
diff --git a/src/mainboard/emulation/qemu-q35/acpi_tables.c b/src/mainboard/emulation/qemu-q35/acpi_tables.c index 9bf58a6..d3492f7 100644 --- a/src/mainboard/emulation/qemu-q35/acpi_tables.c +++ b/src/mainboard/emulation/qemu-q35/acpi_tables.c @@ -23,137 +23,12 @@ gnvs->cmbp = 0x01; }
- -void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void mainboard_fill_fadt(acpi_fadt_t *fadt) { - acpi_header_t *header = &(fadt->header); - u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe; - memset((void *) fadt, 0, sizeof(acpi_fadt_t)); - memcpy(header->signature, "FACP", 4); - header->length = sizeof(acpi_fadt_t); - header->revision = get_acpi_table_revision(FADT); - memcpy(header->oem_id, OEM_ID, 6); - memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8); - memcpy(header->asl_compiler_id, ASLC, 4); - header->asl_compiler_revision = asl_revision; - - fadt->firmware_ctrl = (unsigned long) facs; - fadt->dsdt = (unsigned long) dsdt; - fadt->reserved = 0x00; - fadt->preferred_pm_profile = PM_MOBILE; - fadt->sci_int = 0x9; - - if (permanent_smi_handler()) { - /* Do not advertise SMI even if installed. */ - fadt->smi_cmd = 0; - fadt->acpi_enable = 0; - fadt->acpi_disable = 0; - } - - fadt->pm1a_evt_blk = pmbase; - fadt->pm1b_evt_blk = 0x0; - fadt->pm1a_cnt_blk = pmbase + 0x4; - fadt->pm1b_cnt_blk = 0x0; - fadt->pm2_cnt_blk = pmbase + 0x50; - fadt->pm_tmr_blk = pmbase + 0x8; - fadt->gpe0_blk = pmbase + 0x20; - fadt->gpe1_blk = 0; - - fadt->pm1_evt_len = 4; - fadt->pm1_cnt_len = 2; /* Upper word is reserved and - Linux complains about 32 bit. */ - fadt->pm2_cnt_len = 1; - fadt->pm_tmr_len = 4; - fadt->gpe0_blk_len = 16; - fadt->gpe1_blk_len = 0; - fadt->gpe1_base = 0; - fadt->p_lvl2_lat = 1; - fadt->p_lvl3_lat = 0x39; - fadt->flush_size = 0; - fadt->flush_stride = 0; - fadt->duty_offset = 1; - fadt->duty_width = 3; - fadt->day_alrm = 0xd; - fadt->mon_alrm = 0x00; - fadt->century = 0x32; - fadt->iapc_boot_arch = ACPI_FADT_LEGACY_FREE; - 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; - - fadt->reset_reg.space_id = ACPI_ADDRESS_SPACE_IO; - fadt->reset_reg.bit_width = 8; - fadt->reset_reg.bit_offset = 0; - fadt->reset_reg.access_size = ACPI_ACCESS_SIZE_BYTE_ACCESS; - fadt->reset_reg.addrl = 0xcf9; - fadt->reset_reg.addrh = 0; - fadt->reset_value = 0x06; - - fadt->x_firmware_ctl_l = 0; /* Set X_FIRMWARE_CTRL only if FACS is */ - fadt->x_firmware_ctl_h = 0; /* above 4GB. If X_FIRMWARE_CTRL is set, */ - /* then FIRMWARE_CTRL must be zero. */ - fadt->x_dsdt_l = (unsigned long)dsdt; - fadt->x_dsdt_h = 0; - - fadt->x_pm1a_evt_blk.space_id = 1; - fadt->x_pm1a_evt_blk.bit_width = 32; - fadt->x_pm1a_evt_blk.bit_offset = 0; - fadt->x_pm1a_evt_blk.access_size = ACPI_ACCESS_SIZE_DWORD_ACCESS; - fadt->x_pm1a_evt_blk.addrl = pmbase; - fadt->x_pm1a_evt_blk.addrh = 0x0; - - fadt->x_pm1b_evt_blk.space_id = 0; - fadt->x_pm1b_evt_blk.bit_width = 0; - fadt->x_pm1b_evt_blk.bit_offset = 0; - fadt->x_pm1b_evt_blk.access_size = 0; - fadt->x_pm1b_evt_blk.addrl = 0x0; - fadt->x_pm1b_evt_blk.addrh = 0x0; - - fadt->x_pm1a_cnt_blk.space_id = 1; - fadt->x_pm1a_cnt_blk.bit_width = 16; /* Upper word is reserved and - Linux complains about 32 bit. */ - fadt->x_pm1a_cnt_blk.bit_offset = 0; - fadt->x_pm1a_cnt_blk.access_size = ACPI_ACCESS_SIZE_WORD_ACCESS; - fadt->x_pm1a_cnt_blk.addrl = pmbase + 0x4; - fadt->x_pm1a_cnt_blk.addrh = 0x0; - - fadt->x_pm1b_cnt_blk.space_id = 0; - fadt->x_pm1b_cnt_blk.bit_width = 0; - fadt->x_pm1b_cnt_blk.bit_offset = 0; - fadt->x_pm1b_cnt_blk.access_size = 0; - fadt->x_pm1b_cnt_blk.addrl = 0x0; - fadt->x_pm1b_cnt_blk.addrh = 0x0; - - fadt->x_pm2_cnt_blk.space_id = 1; - fadt->x_pm2_cnt_blk.bit_width = 8; - fadt->x_pm2_cnt_blk.bit_offset = 0; - fadt->x_pm2_cnt_blk.access_size = ACPI_ACCESS_SIZE_BYTE_ACCESS; - fadt->x_pm2_cnt_blk.addrl = pmbase + 0x50; - fadt->x_pm2_cnt_blk.addrh = 0x0; - - fadt->x_pm_tmr_blk.space_id = 1; - fadt->x_pm_tmr_blk.bit_width = 32; - fadt->x_pm_tmr_blk.bit_offset = 0; - fadt->x_pm_tmr_blk.access_size = ACPI_ACCESS_SIZE_DWORD_ACCESS; - fadt->x_pm_tmr_blk.addrl = pmbase + 0x8; - fadt->x_pm_tmr_blk.addrh = 0x0; - - fadt->x_gpe0_blk.space_id = 1; - fadt->x_gpe0_blk.bit_width = 128; - fadt->x_gpe0_blk.bit_offset = 0; - fadt->x_gpe0_blk.access_size = 0; - fadt->x_gpe0_blk.addrl = pmbase + 0x20; - fadt->x_gpe0_blk.addrh = 0x0; - - fadt->x_gpe1_blk.space_id = 0; - fadt->x_gpe1_blk.bit_width = 0; - fadt->x_gpe1_blk.bit_offset = 0; - fadt->x_gpe1_blk.access_size = 0; - fadt->x_gpe1_blk.addrl = 0x0; - fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); + /* Do not advertise SMI even if installed. */ + fadt->smi_cmd = 0; + fadt->acpi_enable = 0; + fadt->acpi_disable = 0; }
unsigned long acpi_fill_madt(unsigned long current) diff --git a/src/mainboard/lenovo/x200/fadt.c b/src/mainboard/lenovo/x200/fadt.c deleted file mode 100644 index 257fb41..0000000 --- a/src/mainboard/lenovo/x200/fadt.c +++ /dev/null @@ -1,141 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include <string.h> -#include <device/pci_ops.h> -#include <acpi/acpi.h> -#include <cpu/x86/smm.h> -#include <version.h> - -void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) -{ - acpi_header_t *header = &(fadt->header); - u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe; - - memset((void *) fadt, 0, sizeof(acpi_fadt_t)); - memcpy(header->signature, "FACP", 4); - header->length = sizeof(acpi_fadt_t); - header->revision = get_acpi_table_revision(FADT); - memcpy(header->oem_id, OEM_ID, 6); - memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8); - memcpy(header->asl_compiler_id, ASLC, 4); - header->asl_compiler_revision = asl_revision; - - fadt->firmware_ctrl = (unsigned long) facs; - fadt->dsdt = (unsigned long) dsdt; - fadt->reserved = 0x00; - fadt->preferred_pm_profile = PM_MOBILE; - fadt->sci_int = 0x9; - - if (permanent_smi_handler()) { - fadt->smi_cmd = APM_CNT; - fadt->acpi_enable = APM_CNT_ACPI_ENABLE; - fadt->acpi_disable = APM_CNT_ACPI_DISABLE; - fadt->pstate_cnt = APM_CNT_PST_CONTROL; - fadt->cst_cnt = APM_CNT_CST_CONTROL; - } - - fadt->pm1a_evt_blk = pmbase; - fadt->pm1b_evt_blk = 0x0; - fadt->pm1a_cnt_blk = pmbase + 0x4; - fadt->pm1b_cnt_blk = 0x0; - fadt->pm2_cnt_blk = pmbase + 0x50; - fadt->pm_tmr_blk = pmbase + 0x8; - fadt->gpe0_blk = pmbase + 0x20; - fadt->gpe1_blk = 0; - - fadt->pm1_evt_len = 4; - fadt->pm1_cnt_len = 2; /* Upper word is reserved and - Linux complains about 32 bit. */ - fadt->pm2_cnt_len = 1; - fadt->pm_tmr_len = 4; - fadt->gpe0_blk_len = 16; - fadt->gpe1_blk_len = 0; - fadt->gpe1_base = 0; - fadt->p_lvl2_lat = 1; - fadt->p_lvl3_lat = 0x39; - fadt->flush_size = 0; - fadt->flush_stride = 0; - fadt->duty_offset = 1; - fadt->duty_width = 3; - fadt->day_alrm = 0xd; - fadt->mon_alrm = 0x00; - fadt->century = 0x32; - fadt->iapc_boot_arch = ACPI_FADT_LEGACY_FREE; - 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; - - fadt->reset_reg.space_id = ACPI_ADDRESS_SPACE_IO; - fadt->reset_reg.bit_width = 8; - fadt->reset_reg.bit_offset = 0; - fadt->reset_reg.access_size = ACPI_ACCESS_SIZE_BYTE_ACCESS; - fadt->reset_reg.addrl = 0xcf9; - fadt->reset_reg.addrh = 0; - fadt->reset_value = 0x06; - - fadt->x_firmware_ctl_l = 0; /* Set X_FIRMWARE_CTRL only if FACS is */ - fadt->x_firmware_ctl_h = 0; /* above 4GB. If X_FIRMWARE_CTRL is set, */ - /* then FIRMWARE_CTRL must be zero. */ - fadt->x_dsdt_l = (unsigned long)dsdt; - fadt->x_dsdt_h = 0; - - fadt->x_pm1a_evt_blk.space_id = 1; - fadt->x_pm1a_evt_blk.bit_width = 32; - fadt->x_pm1a_evt_blk.bit_offset = 0; - fadt->x_pm1a_evt_blk.access_size = ACPI_ACCESS_SIZE_DWORD_ACCESS; - fadt->x_pm1a_evt_blk.addrl = pmbase; - fadt->x_pm1a_evt_blk.addrh = 0x0; - - fadt->x_pm1b_evt_blk.space_id = 0; - fadt->x_pm1b_evt_blk.bit_width = 0; - fadt->x_pm1b_evt_blk.bit_offset = 0; - fadt->x_pm1b_evt_blk.access_size = 0; - fadt->x_pm1b_evt_blk.addrl = 0x0; - fadt->x_pm1b_evt_blk.addrh = 0x0; - - fadt->x_pm1a_cnt_blk.space_id = 1; - fadt->x_pm1a_cnt_blk.bit_width = 16; /* Upper word is reserved and - Linux complains about 32 bit. */ - fadt->x_pm1a_cnt_blk.bit_offset = 0; - fadt->x_pm1a_cnt_blk.access_size = ACPI_ACCESS_SIZE_WORD_ACCESS; - fadt->x_pm1a_cnt_blk.addrl = pmbase + 0x4; - fadt->x_pm1a_cnt_blk.addrh = 0x0; - - fadt->x_pm1b_cnt_blk.space_id = 0; - fadt->x_pm1b_cnt_blk.bit_width = 0; - fadt->x_pm1b_cnt_blk.bit_offset = 0; - fadt->x_pm1b_cnt_blk.access_size = 0; - fadt->x_pm1b_cnt_blk.addrl = 0x0; - fadt->x_pm1b_cnt_blk.addrh = 0x0; - - fadt->x_pm2_cnt_blk.space_id = 1; - fadt->x_pm2_cnt_blk.bit_width = 8; - fadt->x_pm2_cnt_blk.bit_offset = 0; - fadt->x_pm2_cnt_blk.access_size = ACPI_ACCESS_SIZE_BYTE_ACCESS; - fadt->x_pm2_cnt_blk.addrl = pmbase + 0x50; - fadt->x_pm2_cnt_blk.addrh = 0x0; - - fadt->x_pm_tmr_blk.space_id = 1; - fadt->x_pm_tmr_blk.bit_width = 32; - fadt->x_pm_tmr_blk.bit_offset = 0; - fadt->x_pm_tmr_blk.access_size = ACPI_ACCESS_SIZE_DWORD_ACCESS; - fadt->x_pm_tmr_blk.addrl = pmbase + 0x8; - fadt->x_pm_tmr_blk.addrh = 0x0; - - fadt->x_gpe0_blk.space_id = 1; - fadt->x_gpe0_blk.bit_width = 128; - fadt->x_gpe0_blk.bit_offset = 0; - fadt->x_gpe0_blk.access_size = ACPI_ACCESS_SIZE_BYTE_ACCESS; - fadt->x_gpe0_blk.addrl = pmbase + 0x20; - fadt->x_gpe0_blk.addrh = 0x0; - - fadt->x_gpe1_blk.space_id = 0; - fadt->x_gpe1_blk.bit_width = 0; - fadt->x_gpe1_blk.bit_offset = 0; - fadt->x_gpe1_blk.access_size = 0; - fadt->x_gpe1_blk.addrl = 0x0; - fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); -} diff --git a/src/mainboard/roda/rk9/fadt.c b/src/mainboard/roda/rk9/fadt.c deleted file mode 100644 index 5127545..0000000 --- a/src/mainboard/roda/rk9/fadt.c +++ /dev/null @@ -1,141 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include <string.h> -#include <device/pci_ops.h> -#include <acpi/acpi.h> -#include <cpu/x86/smm.h> -#include <version.h> - -void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) -{ - acpi_header_t *header = &(fadt->header); - u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe; - - memset((void *) fadt, 0, sizeof(acpi_fadt_t)); - memcpy(header->signature, "FACP", 4); - header->length = sizeof(acpi_fadt_t); - header->revision = get_acpi_table_revision(FADT); - memcpy(header->oem_id, OEM_ID, 6); - memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8); - memcpy(header->asl_compiler_id, ASLC, 4); - header->asl_compiler_revision = asl_revision; - - fadt->firmware_ctrl = (unsigned long) facs; - fadt->dsdt = (unsigned long) dsdt; - fadt->reserved = 0x00; - fadt->preferred_pm_profile = PM_MOBILE; - fadt->sci_int = 0x9; - - if (permanent_smi_handler()) { - fadt->smi_cmd = APM_CNT; - fadt->acpi_enable = APM_CNT_ACPI_ENABLE; - fadt->acpi_disable = APM_CNT_ACPI_DISABLE; - fadt->pstate_cnt = APM_CNT_PST_CONTROL; - fadt->cst_cnt = APM_CNT_CST_CONTROL; - } - - fadt->pm1a_evt_blk = pmbase; - fadt->pm1b_evt_blk = 0x0; - fadt->pm1a_cnt_blk = pmbase + 0x4; - fadt->pm1b_cnt_blk = 0x0; - fadt->pm2_cnt_blk = pmbase + 0x50; - fadt->pm_tmr_blk = pmbase + 0x8; - fadt->gpe0_blk = pmbase + 0x20; - fadt->gpe1_blk = 0; - - fadt->pm1_evt_len = 4; - fadt->pm1_cnt_len = 2; /* Upper word is reserved and - Linux complains about 32 bit. */ - fadt->pm2_cnt_len = 1; - fadt->pm_tmr_len = 4; - fadt->gpe0_blk_len = 16; - fadt->gpe1_blk_len = 0; - fadt->gpe1_base = 0; - fadt->p_lvl2_lat = 1; - fadt->p_lvl3_lat = 0x39; - fadt->flush_size = 0; - fadt->flush_stride = 0; - fadt->duty_offset = 1; - fadt->duty_width = 3; - fadt->day_alrm = 0xd; - fadt->mon_alrm = 0x00; - fadt->century = 0x32; - fadt->iapc_boot_arch = ACPI_FADT_LEGACY_FREE; - 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; - - fadt->reset_reg.space_id = ACPI_ADDRESS_SPACE_IO; - fadt->reset_reg.bit_width = 8; - fadt->reset_reg.bit_offset = 0; - fadt->reset_reg.access_size = 0; - fadt->reset_reg.addrl = 0xcf9; - fadt->reset_reg.addrh = 0; - fadt->reset_value = 0x06; - - fadt->x_firmware_ctl_l = 0; /* Set X_FIRMWARE_CTRL only if FACS is */ - fadt->x_firmware_ctl_h = 0; /* above 4GB. If X_FIRMWARE_CTRL is set, */ - /* then FIRMWARE_CTRL must be zero. */ - fadt->x_dsdt_l = (unsigned long)dsdt; - fadt->x_dsdt_h = 0; - - fadt->x_pm1a_evt_blk.space_id = 1; - fadt->x_pm1a_evt_blk.bit_width = 32; - fadt->x_pm1a_evt_blk.bit_offset = 0; - fadt->x_pm1a_evt_blk.access_size = ACPI_ACCESS_SIZE_DWORD_ACCESS; - fadt->x_pm1a_evt_blk.addrl = pmbase; - fadt->x_pm1a_evt_blk.addrh = 0x0; - - fadt->x_pm1b_evt_blk.space_id = 0; - fadt->x_pm1b_evt_blk.bit_width = 0; - fadt->x_pm1b_evt_blk.bit_offset = 0; - fadt->x_pm1b_evt_blk.access_size = 0; - fadt->x_pm1b_evt_blk.addrl = 0x0; - fadt->x_pm1b_evt_blk.addrh = 0x0; - - fadt->x_pm1a_cnt_blk.space_id = 1; - fadt->x_pm1a_cnt_blk.bit_width = 16; /* Upper word is reserved and - Linux complains about 32 bit. */ - fadt->x_pm1a_cnt_blk.bit_offset = 0; - fadt->x_pm1a_cnt_blk.access_size = ACPI_ACCESS_SIZE_WORD_ACCESS; - fadt->x_pm1a_cnt_blk.addrl = pmbase + 0x4; - fadt->x_pm1a_cnt_blk.addrh = 0x0; - - fadt->x_pm1b_cnt_blk.space_id = 0; - fadt->x_pm1b_cnt_blk.bit_width = 0; - fadt->x_pm1b_cnt_blk.bit_offset = 0; - fadt->x_pm1b_cnt_blk.access_size = 0; - fadt->x_pm1b_cnt_blk.addrl = 0x0; - fadt->x_pm1b_cnt_blk.addrh = 0x0; - - fadt->x_pm2_cnt_blk.space_id = 1; - fadt->x_pm2_cnt_blk.bit_width = 8; - fadt->x_pm2_cnt_blk.bit_offset = 0; - fadt->x_pm2_cnt_blk.access_size = ACPI_ACCESS_SIZE_BYTE_ACCESS; - fadt->x_pm2_cnt_blk.addrl = pmbase + 0x50; - fadt->x_pm2_cnt_blk.addrh = 0x0; - - fadt->x_pm_tmr_blk.space_id = 1; - fadt->x_pm_tmr_blk.bit_width = 32; - fadt->x_pm_tmr_blk.bit_offset = 0; - fadt->x_pm_tmr_blk.access_size = ACPI_ACCESS_SIZE_DWORD_ACCESS; - fadt->x_pm_tmr_blk.addrl = pmbase + 0x8; - fadt->x_pm_tmr_blk.addrh = 0x0; - - fadt->x_gpe0_blk.space_id = 1; - fadt->x_gpe0_blk.bit_width = 128; - fadt->x_gpe0_blk.bit_offset = 0; - fadt->x_gpe0_blk.access_size = ACPI_ACCESS_SIZE_BYTE_ACCESS; - fadt->x_gpe0_blk.addrl = pmbase + 0x20; - fadt->x_gpe0_blk.addrh = 0x0; - - fadt->x_gpe1_blk.space_id = 0; - fadt->x_gpe1_blk.bit_width = 0; - fadt->x_gpe1_blk.bit_offset = 0; - fadt->x_gpe1_blk.access_size = 0; - fadt->x_gpe1_blk.addrl = 0x0; - fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); -} diff --git a/src/southbridge/intel/i82801ix/Kconfig b/src/southbridge/intel/i82801ix/Kconfig index 9e71ff5..4997a0b 100644 --- a/src/southbridge/intel/i82801ix/Kconfig +++ b/src/southbridge/intel/i82801ix/Kconfig @@ -8,6 +8,7 @@ select SOUTHBRIDGE_INTEL_COMMON_PMBASE select SOUTHBRIDGE_INTEL_COMMON_RTC select SOUTHBRIDGE_INTEL_COMMON_RESET + select COMMON_FADT select IOAPIC select USE_WATCHDOG_ON_BOOT select HAVE_SMI_HANDLER diff --git a/src/southbridge/intel/i82801ix/Makefile.inc b/src/southbridge/intel/i82801ix/Makefile.inc index cbc1780..5844b91 100644 --- a/src/southbridge/intel/i82801ix/Makefile.inc +++ b/src/southbridge/intel/i82801ix/Makefile.inc @@ -3,6 +3,7 @@ ifeq ($(CONFIG_SOUTHBRIDGE_INTEL_I82801IX),y)
ramstage-y += i82801ix.c +ramstage-y += fadt.c ramstage-y += pci.c ramstage-y += lpc.c ramstage-y += pcie.c diff --git a/src/mainboard/lenovo/t400/fadt.c b/src/southbridge/intel/i82801ix/fadt.c similarity index 80% rename from src/mainboard/lenovo/t400/fadt.c rename to src/southbridge/intel/i82801ix/fadt.c index 257fb41..75d056f 100644 --- a/src/mainboard/lenovo/t400/fadt.c +++ b/src/southbridge/intel/i82801ix/fadt.c @@ -6,23 +6,10 @@ #include <cpu/x86/smm.h> #include <version.h>
-void acpi_create_fadt(acpi_fadt_t * fadt, acpi_facs_t * facs, void *dsdt) +void acpi_fill_fadt(acpi_fadt_t *fadt) { - acpi_header_t *header = &(fadt->header); u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe;
- memset((void *) fadt, 0, sizeof(acpi_fadt_t)); - memcpy(header->signature, "FACP", 4); - header->length = sizeof(acpi_fadt_t); - header->revision = get_acpi_table_revision(FADT); - memcpy(header->oem_id, OEM_ID, 6); - memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, 8); - memcpy(header->asl_compiler_id, ASLC, 4); - header->asl_compiler_revision = asl_revision; - - fadt->firmware_ctrl = (unsigned long) facs; - fadt->dsdt = (unsigned long) dsdt; - fadt->reserved = 0x00; fadt->preferred_pm_profile = PM_MOBILE; fadt->sci_int = 0x9;
@@ -74,12 +61,6 @@ fadt->reset_reg.addrh = 0; fadt->reset_value = 0x06;
- fadt->x_firmware_ctl_l = 0; /* Set X_FIRMWARE_CTRL only if FACS is */ - fadt->x_firmware_ctl_h = 0; /* above 4GB. If X_FIRMWARE_CTRL is set, */ - /* then FIRMWARE_CTRL must be zero. */ - fadt->x_dsdt_l = (unsigned long)dsdt; - fadt->x_dsdt_h = 0; - fadt->x_pm1a_evt_blk.space_id = 1; fadt->x_pm1a_evt_blk.bit_width = 32; fadt->x_pm1a_evt_blk.bit_offset = 0; @@ -136,6 +117,4 @@ fadt->x_gpe1_blk.access_size = 0; fadt->x_gpe1_blk.addrl = 0x0; fadt->x_gpe1_blk.addrh = 0x0; - - header->checksum = acpi_checksum((void *) fadt, header->length); }