blob: 0b21f8bda3ad2e21e3b498b671d66e9429787628 [file] [log] [blame]
Kyösti Mälkki7b73e8522022-11-08 04:43:41 +00001/* SPDX-License-Identifier: GPL-2.0-only */
2
Kyösti Mälkki7b73e8522022-11-08 04:43:41 +00003#include <acpi/acpi.h>
Kyösti Mälkki560c3f52022-01-18 04:25:48 +02004#include <device/pci_ops.h>
Kyösti Mälkki7b73e8522022-11-08 04:43:41 +00005
6void acpi_fill_fadt(acpi_fadt_t *fadt)
7{
8 u16 pmbase = pci_read_config16(pcidev_on_root(0x1f, 0), 0x40) & 0xfffe;
9
Kyösti Mälkki7b73e8522022-11-08 04:43:41 +000010
11 fadt->pm1a_evt_blk = pmbase;
12 fadt->pm1a_cnt_blk = pmbase + 0x4;
13 fadt->pm_tmr_blk = pmbase + 0x8;
14 fadt->gpe0_blk = pmbase + 0x28;
15
16 fadt->pm1_evt_len = 4;
17 fadt->pm1_cnt_len = 2;
18 fadt->pm_tmr_len = 4;
19 fadt->gpe0_blk_len = 8;
Kyösti Mälkki79b864952023-04-14 12:24:59 +030020
Kyösti Mälkki88decca2023-04-28 07:04:34 +030021 fill_fadt_extended_pm_io(fadt);
22
Kyösti Mälkki7b73e8522022-11-08 04:43:41 +000023 fadt->iapc_boot_arch = ACPI_FADT_LEGACY_DEVICES | ACPI_FADT_8042;
24
Kyösti Mälkki79b864952023-04-14 12:24:59 +030025 fadt->flags |= ACPI_FADT_WBINVD | ACPI_FADT_C1_SUPPORTED | ACPI_FADT_SLEEP_BUTTON |
Kyösti Mälkki7b73e8522022-11-08 04:43:41 +000026 ACPI_FADT_S4_RTC_WAKE | ACPI_FADT_PLATFORM_CLOCK;
Kyösti Mälkki7b73e8522022-11-08 04:43:41 +000027}