2 * This file is part of the coreboot project.
4 * Copyright (C) 2007-2009 coresystems GmbH
5 * Copyright (C) 2014 Google Inc.
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; version 2 of the License.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
20 void acpi_create_fadt(acpi_fadt_t
* fadt
, acpi_facs_t
* facs
, void *dsdt
)
22 acpi_header_t
*header
= &(fadt
->header
);
24 memset((void *) fadt
, 0, sizeof(acpi_fadt_t
));
25 memcpy(header
->signature
, "FACP", 4);
26 header
->length
= sizeof(acpi_fadt_t
);
28 memcpy(header
->oem_id
, OEM_ID
, 6);
29 memcpy(header
->oem_table_id
, ACPI_TABLE_CREATOR
, 8);
30 memcpy(header
->asl_compiler_id
, ASLC
, 4);
31 header
->asl_compiler_revision
= 1;
33 fadt
->firmware_ctrl
= (unsigned long) facs
;
34 fadt
->dsdt
= (unsigned long) dsdt
;
36 fadt
->preferred_pm_profile
= PM_MOBILE
;
38 fadt
->x_firmware_ctl_l
= (unsigned long)facs
;
39 fadt
->x_firmware_ctl_h
= 0;
40 fadt
->x_dsdt_l
= (unsigned long)dsdt
;
43 acpi_fill_in_fadt(fadt
);
46 acpi_checksum((void *) fadt
, header
->length
);