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>
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
| @@ -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. | ||||
|  */ | ||||
|   | ||||
| @@ -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. | ||||
|  */ | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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*/ | ||||
|  | ||||
|   | ||||
| @@ -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); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user