diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2017-07-27 06:15:02 +0300 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2017-08-02 04:39:29 +0000 |
commit | 0e01c4841ddcd2216ab21d3f009024bfc8879908 (patch) | |
tree | 9a5549784be1f764864151bc5458acb11e627b55 /src/northbridge/amd/agesa/acpi_tables.c | |
parent | 6cb4ee31edf0e89f8a4fa01322e90d56194091b4 (diff) |
AGESA: Use common handler for ACPI tables
Change-Id: I2d6ab1026f1105f1fea97682442a169409248c39
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/20815
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/northbridge/amd/agesa/acpi_tables.c')
-rw-r--r-- | src/northbridge/amd/agesa/acpi_tables.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/northbridge/amd/agesa/acpi_tables.c b/src/northbridge/amd/agesa/acpi_tables.c new file mode 100644 index 0000000000..7edf43b126 --- /dev/null +++ b/src/northbridge/amd/agesa/acpi_tables.c @@ -0,0 +1,76 @@ +/* + * This file is part of the coreboot project. + * + * Copyright (C) 2011-2012 Advanced Micro Devices, Inc. + * Copyright (C) 2016 Kyösti Mälkki + * + * 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; 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 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <northbridge/amd/agesa/agesa_helper.h> + +#include "AGESA.h" + +/* Fields were removed from the structure and we cannot add them back + * without new builds of the binaryPI blobs. + */ +#if !IS_ENABLED(CONFIG_CPU_AMD_AGESA_BINARY_PI) || \ + IS_ENABLED(CONFIG_NORTHBRIDGE_AMD_PI_00630F01) || \ + IS_ENABLED(CONFIG_NORTHBRIDGE_AMD_PI_00730F01) + +#define HAS_ACPI_SRAT TRUE +#define HAS_ACPI_SLIT TRUE +#else +#define HAS_ACPI_SRAT FALSE +#define HAS_ACPI_SLIT FALSE +#endif + +/* We will reference AmdLateParams later to copy ACPI tables. */ +static AMD_LATE_PARAMS *AmdLateParams; + +void agesawrapper_setlateinitptr(void *Late) +{ + AmdLateParams = Late; +} + +void *agesawrapper_getlateinitptr(int pick) +{ + ASSERT(AmdLateParams != NULL); + + switch (pick) { + case PICK_DMI: + return AmdLateParams->DmiTable; + case PICK_PSTATE: + return AmdLateParams->AcpiPState; +#if HAS_ACPI_SRAT + case PICK_SRAT: + return AmdLateParams->AcpiSrat; +#endif +#if HAS_ACPI_SLIT + case PICK_SLIT: + return AmdLateParams->AcpiSlit; +#endif + case PICK_WHEA_MCE: + return AmdLateParams->AcpiWheaMce; + case PICK_WHEA_CMC: + return AmdLateParams->AcpiWheaCmc; + case PICK_ALIB: + return AmdLateParams->AcpiAlib; + case PICK_IVRS: + return AmdLateParams->AcpiIvrs; + case PICK_CRAT: + return AmdLateParams->AcpiCrat; + case PICK_CDIT: + return AmdLateParams->AcpiCdit; + default: + return NULL; + } + return NULL; +} |