blob: c4a4e183e811077119c7d3e38543c422809c1a90 [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 */
Arthur Heymans81a4fef2022-11-01 23:33:45 +010011#if CONFIG(NORTHBRIDGE_AMD_PI_00730F01)
Kyösti Mälkki0e01c482017-07-27 06:15:02 +030012
Elyes HAOUAS0d8f1da2018-05-28 15:48:04 +020013#define HAS_ACPI_SRAT TRUE
14#define HAS_ACPI_SLIT TRUE
Kyösti Mälkki0e01c482017-07-27 06:15:02 +030015#else
Elyes HAOUAS0d8f1da2018-05-28 15:48:04 +020016#define HAS_ACPI_SRAT FALSE
17#define HAS_ACPI_SLIT FALSE
Kyösti Mälkki0e01c482017-07-27 06:15:02 +030018#endif
19
20/* We will reference AmdLateParams later to copy ACPI tables. */
21static AMD_LATE_PARAMS *AmdLateParams;
22
23void agesawrapper_setlateinitptr(void *Late)
24{
25 AmdLateParams = Late;
26}
27
Kyösti Mälkki28c4d2f2016-11-25 11:21:02 +020028void completion_InitLate(struct sysinfo *cb, AMD_LATE_PARAMS *Late)
29{
30 AmdLateParams = Late;
31}
32
Kyösti Mälkki0e01c482017-07-27 06:15:02 +030033void *agesawrapper_getlateinitptr(int pick)
34{
35 ASSERT(AmdLateParams != NULL);
36
37 switch (pick) {
38 case PICK_DMI:
39 return AmdLateParams->DmiTable;
40 case PICK_PSTATE:
41 return AmdLateParams->AcpiPState;
42#if HAS_ACPI_SRAT
43 case PICK_SRAT:
44 return AmdLateParams->AcpiSrat;
45#endif
46#if HAS_ACPI_SLIT
47 case PICK_SLIT:
48 return AmdLateParams->AcpiSlit;
49#endif
50 case PICK_WHEA_MCE:
51 return AmdLateParams->AcpiWheaMce;
52 case PICK_WHEA_CMC:
53 return AmdLateParams->AcpiWheaCmc;
54 case PICK_ALIB:
55 return AmdLateParams->AcpiAlib;
56 case PICK_IVRS:
57 return AmdLateParams->AcpiIvrs;
58 case PICK_CRAT:
59 return AmdLateParams->AcpiCrat;
60 case PICK_CDIT:
61 return AmdLateParams->AcpiCdit;
62 default:
63 return NULL;
64 }
65 return NULL;
66}