blob: 1c09d3f546bac216c7ae9d9a1ef43dde6a5e7eba [file] [log] [blame]
Angel Pons8a3453f2020-04-02 23:48:19 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Kyösti Mälkki0e01c482017-07-27 06:15:02 +03002
Kyösti Mälkki28c4d2f2016-11-25 11:21:02 +02003#include <northbridge/amd/agesa/state_machine.h>
Kyösti Mälkki0e01c482017-07-27 06:15:02 +03004#include <northbridge/amd/agesa/agesa_helper.h>
5
Elyes HAOUAS19f5ba82018-10-14 14:52:06 +02006#include <AGESA.h>
Kyösti Mälkki0e01c482017-07-27 06:15:02 +03007
8/* Fields were removed from the structure and we cannot add them back
9 * without new builds of the binaryPI blobs.
10 */
Julius Wernercd49cce2019-03-05 16:53:33 -080011#if !CONFIG(CPU_AMD_AGESA_BINARY_PI) || \
Julius Wernercd49cce2019-03-05 16:53:33 -080012 CONFIG(NORTHBRIDGE_AMD_PI_00730F01)
Kyösti Mälkki0e01c482017-07-27 06:15:02 +030013
Elyes HAOUAS0d8f1da2018-05-28 15:48:04 +020014#define HAS_ACPI_SRAT TRUE
15#define HAS_ACPI_SLIT TRUE
Kyösti Mälkki0e01c482017-07-27 06:15:02 +030016#else
Elyes HAOUAS0d8f1da2018-05-28 15:48:04 +020017#define HAS_ACPI_SRAT FALSE
18#define HAS_ACPI_SLIT FALSE
Kyösti Mälkki0e01c482017-07-27 06:15:02 +030019#endif
20
21/* We will reference AmdLateParams later to copy ACPI tables. */
22static AMD_LATE_PARAMS *AmdLateParams;
23
24void agesawrapper_setlateinitptr(void *Late)
25{
26 AmdLateParams = Late;
27}
28
Kyösti Mälkki28c4d2f2016-11-25 11:21:02 +020029void completion_InitLate(struct sysinfo *cb, AMD_LATE_PARAMS *Late)
30{
31 AmdLateParams = Late;
32}
33
Kyösti Mälkki0e01c482017-07-27 06:15:02 +030034void *agesawrapper_getlateinitptr(int pick)
35{
36 ASSERT(AmdLateParams != NULL);
37
38 switch (pick) {
39 case PICK_DMI:
40 return AmdLateParams->DmiTable;
41 case PICK_PSTATE:
42 return AmdLateParams->AcpiPState;
43#if HAS_ACPI_SRAT
44 case PICK_SRAT:
45 return AmdLateParams->AcpiSrat;
46#endif
47#if HAS_ACPI_SLIT
48 case PICK_SLIT:
49 return AmdLateParams->AcpiSlit;
50#endif
51 case PICK_WHEA_MCE:
52 return AmdLateParams->AcpiWheaMce;
53 case PICK_WHEA_CMC:
54 return AmdLateParams->AcpiWheaCmc;
55 case PICK_ALIB:
56 return AmdLateParams->AcpiAlib;
57 case PICK_IVRS:
58 return AmdLateParams->AcpiIvrs;
59 case PICK_CRAT:
60 return AmdLateParams->AcpiCrat;
61 case PICK_CDIT:
62 return AmdLateParams->AcpiCdit;
63 default:
64 return NULL;
65 }
66 return NULL;
67}