[coreboot-gerrit] Patch set updated for coreboot: soc/intel/apollolake: use common FADT infrastructure

Aaron Durbin (adurbin@chromium.org) gerrit at coreboot.org
Wed May 11 18:58:09 CEST 2016


Aaron Durbin (adurbin at chromium.org) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14779

-gerrit

commit bc5a669620f100a5d2dbb459a20ffbbf4818d0c2
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Wed May 11 10:35:49 2016 -0500

    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 at chromium.org>
---
 src/mainboard/intel/amenia/Kconfig               |  1 +
 src/mainboard/intel/amenia/acpi_tables.c         | 41 +++---------------------
 src/mainboard/intel/apollolake_rvp/acpi_tables.c | 41 +++---------------------
 src/soc/intel/apollolake/Kconfig                 |  1 +
 src/soc/intel/apollolake/acpi.c                  |  5 ++-
 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 f5460c7..e83b151 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 9a9cc3a..8d4d1cf 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 at 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 a410184..8d4d1cf 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 at 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 3e46a0e..41a96c9 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 a5d1dfa..4d610f8 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 3605cc3..ba3b8fc 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);
 



More information about the coreboot-gerrit mailing list