diff options
author | Aaron Durbin <adurbin@chromium.org> | 2016-05-11 10:35:49 -0500 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2016-05-12 20:06:06 +0200 |
commit | c3ee3f6d7efaeba91be2a04e694577f061c3668a (patch) | |
tree | fb43632bccd75f5b1a6ac916b96a66cd94c07e89 | |
parent | d867b7d87c5bd86244966ed93881a1b71128dd1c (diff) |
soc/intel/apollolake: use common FADT infrastructure
Instead of having the mainboards duplicate the same boilerplate
code utilize the common FADT infrastructure to reduce duplication.
Change-Id: If824619fd619433974e588050a933d2c19b97ec8
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/14779
Tested-by: build bot (Jenkins)
Reviewed-by: Duncan Laurie <dlaurie@google.com>
Reviewed-by: Andrey Petrov <andrey.petrov@intel.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
-rw-r--r-- | src/mainboard/intel/amenia/Kconfig | 1 | ||||
-rw-r--r-- | src/mainboard/intel/amenia/acpi_tables.c | 41 | ||||
-rw-r--r-- | src/mainboard/intel/apollolake_rvp/acpi_tables.c | 41 | ||||
-rw-r--r-- | src/soc/intel/apollolake/Kconfig | 1 | ||||
-rw-r--r-- | src/soc/intel/apollolake/acpi.c | 5 | ||||
-rw-r--r-- | src/soc/intel/apollolake/include/soc/acpi.h | 2 |
6 files changed, 14 insertions, 77 deletions
diff --git a/src/mainboard/intel/amenia/Kconfig b/src/mainboard/intel/amenia/Kconfig index f5460c7b64..e83b151440 100644 --- a/src/mainboard/intel/amenia/Kconfig +++ b/src/mainboard/intel/amenia/Kconfig @@ -12,6 +12,7 @@ config BOARD_SPECIFIC_OPTIONS select MAINBOARD_HAS_LPC_TPM select HAVE_ACPI_RESUME select MAINBOARD_HAS_CHROMEOS + select SYSTEM_TYPE_LAPTOP select TPM_ON_FAST_SPI config CHROMEOS diff --git a/src/mainboard/intel/amenia/acpi_tables.c b/src/mainboard/intel/amenia/acpi_tables.c index 9a9cc3a895..8d4d1cf7e7 100644 --- a/src/mainboard/intel/amenia/acpi_tables.c +++ b/src/mainboard/intel/amenia/acpi_tables.c @@ -1,13 +1,7 @@ /* - * This file is part of the coreboot project. - * - * Copyright (C) 2015 Intel Corp. - * (Written by Lance Zhao <lijian.zhao@intel.com> for Intel Corp.) - * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,33 +9,6 @@ * GNU General Public License for more details. */ -#include <string.h> -#include <soc/acpi.h> - -void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt) -{ - acpi_header_t *header = &(fadt->header); - - memset(fadt, 0, sizeof(acpi_fadt_t)); - memcpy(header->signature, "FACP", 4); - header->length = sizeof(acpi_fadt_t); - header->revision = 5; - memcpy(header->oem_id, OEM_ID, ARRAY_SIZE(header->oem_id)); - memcpy(header->oem_table_id, ACPI_TABLE_CREATOR, ARRAY_SIZE(header->oem_table_id)); - memcpy(header->asl_compiler_id, ASLC, ARRAY_SIZE(header->asl_compiler_id)); - header->asl_compiler_revision = 1; - - fadt->firmware_ctrl = (uintptr_t)facs; - fadt->dsdt = (uintptr_t)dsdt; - fadt->model = 1; - fadt->preferred_pm_profile = PM_MOBILE; - - fadt->x_firmware_ctl_l = (uintptr_t)facs; - fadt->x_firmware_ctl_h = 0; - fadt->x_dsdt_l = (uintptr_t)dsdt; - fadt->x_dsdt_h = 0; - - soc_fill_common_fadt(fadt); - - header->checksum = acpi_checksum((void *)fadt, header->length); -} +/* + * Blank file required by build system assumptions of this file being present. + */ diff --git a/src/mainboard/intel/apollolake_rvp/acpi_tables.c b/src/mainboard/intel/apollolake_rvp/acpi_tables.c index a410184d91..8d4d1cf7e7 100644 --- a/src/mainboard/intel/apollolake_rvp/acpi_tables.c +++ b/src/mainboard/intel/apollolake_rvp/acpi_tables.c @@ -1,13 +1,7 @@ /* - * This file is part of the coreboot project. - * - * Copyright (C) 2016 Intel Corp. - * (Written by Lance Zhao <lijian.zhao@intel.com> for Intel Corp.) - * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * the Free Software Foundation; version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -15,33 +9,6 @@ * GNU General Public License for more details. */ -#include <string.h> -#include <soc/acpi.h> - -void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt) -{ - acpi_header_t *header = &(fadt->header); - - memset(fadt, 0, sizeof(acpi_fadt_t)); - memcpy(header->signature, "FACP", 4); - header->length = sizeof(acpi_fadt_t); - header->revision = 5; /* Major Revision of ACPI5.0 */ - 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 = 20150717; /* iASL verison */ - - fadt->firmware_ctrl = (uintptr_t)facs; - fadt->dsdt = (uintptr_t)dsdt; - fadt->model = 1; /* compatibilty with ACPI1.0 */ - fadt->preferred_pm_profile = PM_MOBILE; - - fadt->x_firmware_ctl_l = (uintptr_t)facs; - fadt->x_firmware_ctl_h = 0; /* 32bit physical address */ - fadt->x_dsdt_l = (uintptr_t)dsdt; - fadt->x_dsdt_h = 0; /* 32bit physical address */ - - soc_fill_common_fadt(fadt); - - header->checksum = acpi_checksum((void *)fadt, header->length); -} +/* + * Blank file required by build system assumptions of this file being present. + */ diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig index 3e46a0e115..41a96c97c4 100644 --- a/src/soc/intel/apollolake/Kconfig +++ b/src/soc/intel/apollolake/Kconfig @@ -20,6 +20,7 @@ config CPU_SPECIFIC_OPTIONS # Misc options select C_ENVIRONMENT_BOOTBLOCK select COLLECT_TIMESTAMPS + select COMMON_FADT select HAVE_INTEL_FIRMWARE select MMCONF_SUPPORT select MMCONF_SUPPORT_DEFAULT diff --git a/src/soc/intel/apollolake/acpi.c b/src/soc/intel/apollolake/acpi.c index a5d1dfa080..4d610f85bd 100644 --- a/src/soc/intel/apollolake/acpi.c +++ b/src/soc/intel/apollolake/acpi.c @@ -67,10 +67,13 @@ unsigned long acpi_fill_madt(unsigned long current) return acpi_madt_irq_overrides(current); } -void soc_fill_common_fadt(acpi_fadt_t * fadt) +void acpi_fill_fadt(acpi_fadt_t * fadt) { const uint16_t pmbase = ACPI_PMIO_BASE; + /* Use ACPI 5.0 revision. */ + fadt->header.revision = ACPI_FADT_REV_ACPI_5_0; + fadt->sci_int = acpi_sci_irq(); fadt->smi_cmd = 0; /* No Smi Handler as SMI_CMD is 0*/ diff --git a/src/soc/intel/apollolake/include/soc/acpi.h b/src/soc/intel/apollolake/include/soc/acpi.h index 3605cc3256..ba3b8fc9b5 100644 --- a/src/soc/intel/apollolake/include/soc/acpi.h +++ b/src/soc/intel/apollolake/include/soc/acpi.h @@ -20,8 +20,6 @@ #include <arch/acpi.h> -void soc_fill_common_fadt(acpi_fadt_t * fadt); - unsigned long southbridge_write_acpi_tables(device_t device, unsigned long current, struct acpi_rsdp *rsdp); |