| /* |
| * 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/state_machine.h> |
| #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 completion_InitLate(struct sysinfo *cb, AMD_LATE_PARAMS *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; |
| } |