summaryrefslogtreecommitdiff
path: root/src/soc/amd/common/block
diff options
context:
space:
mode:
authorRichard Spiegel <richard.spiegel@silverbackltd.com>2017-12-08 16:53:29 -0700
committerMartin Roth <martinroth@google.com>2017-12-12 16:24:38 +0000
commit0ad74ace8b908cd1c4b7db559b693001ef94ebd4 (patch)
treefef4f2eadc3893b5b8b87bace930fc1aa02c40e9 /src/soc/amd/common/block
parentf6f4ba9e4579e2c6ce5bda375c0f3b7cd7595bd7 (diff)
downloadcoreboot-0ad74ace8b908cd1c4b7db559b693001ef94ebd4.tar.xz
soc/amd/common: Move Agesa related headers
Move AGESA related headers in soc/amd/common to soc/amd/common/block/include/amdblocks. BUG=b:69262110 TEST=Build with no error gardenia and kahlee (no code change, headers moved). Change-Id: I5d3064625ddf8caaf370aabaf93165c6817f1ca0 Signed-off-by: Richard Spiegel <richard.spiegel@silverbackltd.com> Reviewed-on: https://review.coreboot.org/22772 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src/soc/amd/common/block')
-rw-r--r--src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h75
-rw-r--r--src/soc/amd/common/block/include/amdblocks/agesawrapper.h61
-rw-r--r--src/soc/amd/common/block/include/amdblocks/agesawrapper_call.h59
-rw-r--r--src/soc/amd/common/block/include/amdblocks/dimm_spd.h2
-rw-r--r--src/soc/amd/common/block/include/amdblocks/psp.h2
5 files changed, 197 insertions, 2 deletions
diff --git a/src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h b/src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h
new file mode 100644
index 0000000000..2302889e6b
--- /dev/null
+++ b/src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h
@@ -0,0 +1,75 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2011,2012 Advanced Micro Devices, Inc.
+ * Copyright (C) 2013 Sage Electronic Engineering, LLC
+ *
+ * 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.
+ */
+
+#ifndef __CALLOUTS_AMD_AGESA_H__
+#define __CALLOUTS_AMD_AGESA_H__
+
+#include <amdblocks/agesawrapper.h>
+
+#define BIOS_HEAP_START_ADDRESS 0x010000000
+#define BIOS_HEAP_SIZE 0x30000
+#define BSP_STACK_BASE_ADDR 0x30000
+
+typedef struct _BIOS_HEAP_MANAGER {
+ UINT32 StartOfAllocatedNodes;
+ UINT32 StartOfFreedNodes;
+} BIOS_HEAP_MANAGER;
+
+typedef struct _BIOS_BUFFER_NODE {
+ UINT32 BufferHandle;
+ UINT32 BufferSize;
+ UINT32 NextNodeOffset;
+} BIOS_BUFFER_NODE;
+
+AGESA_STATUS agesa_AllocateBuffer(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_DeallocateBuffer(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_LocateBuffer(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+
+AGESA_STATUS agesa_NoopUnsupported(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_NoopSuccess(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_EmptyIdsInitData(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_Reset(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_RunFuncOnAp(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_GfxGetVbiosImage(UINT32 Func, UINTN FchData,
+ VOID *ConfigPrt);
+
+AGESA_STATUS agesa_ReadSpd(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_RunFcnOnAllAps(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+AGESA_STATUS agesa_PcieSlotResetControl(UINT32 Func, UINTN Data,
+ VOID *ConfigPtr);
+AGESA_STATUS agesa_WaitForAllApsFinished(UINT32 Func, UINTN Data,
+ VOID *ConfigPtr);
+AGESA_STATUS agesa_IdleAnAp(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+
+AGESA_STATUS GetBiosCallout(UINT32 Func, UINTN Data, VOID *ConfigPtr);
+
+AGESA_STATUS agesa_fch_initreset(UINT32 Func, UINTN FchData, VOID *ConfigPtr);
+AGESA_STATUS agesa_fch_initenv(UINT32 Func, UINTN FchData, VOID *ConfigPtr);
+
+void platform_FchParams_reset(FCH_RESET_DATA_BLOCK *FchParams_reset);
+void platform_FchParams_env(FCH_DATA_BLOCK *FchParams_env);
+void oem_fan_control(FCH_DATA_BLOCK *FchParams);
+AGESA_STATUS platform_PcieSlotResetControl(UINT32 Func, UINTN Data,
+ VOID *ConfigPtr);
+typedef struct {
+ UINT32 CalloutName;
+ CALLOUT_ENTRY CalloutPtr;
+} BIOS_CALLOUT_STRUCT;
+
+extern const BIOS_CALLOUT_STRUCT BiosCallouts[];
+extern const int BiosCalloutsLen;
+
+#endif /* __CALLOUTS_AMD_AGESA_H__ */
diff --git a/src/soc/amd/common/block/include/amdblocks/agesawrapper.h b/src/soc/amd/common/block/include/amdblocks/agesawrapper.h
new file mode 100644
index 0000000000..08ac5968ca
--- /dev/null
+++ b/src/soc/amd/common/block/include/amdblocks/agesawrapper.h
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2012 - 2017 Advanced Micro Devices, Inc.
+ *
+ * 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.
+ */
+
+#ifndef __AGESAWRAPPER_H__
+#define __AGESAWRAPPER_H__
+
+#include <stdint.h>
+#include <agesa_headers.h>
+
+enum {
+ PICK_DMI, /* DMI Interface */
+ PICK_PSTATE, /* Acpi Pstate SSDT Table */
+ PICK_SRAT, /* SRAT Table */
+ PICK_SLIT, /* SLIT Table */
+ PICK_WHEA_MCE, /* WHEA MCE table */
+ PICK_WHEA_CMC, /* WHEA CMV table */
+ PICK_ALIB, /* SACPI SSDT table with ALIB implementation */
+ PICK_IVRS, /* IOMMU ACPI IVRS (I/O Virt. Reporting Structure) */
+ PICK_CRAT,
+};
+
+/* Return current dispatcher or NULL on error. */
+MODULE_ENTRY agesa_get_dispatcher(void);
+
+AGESA_STATUS agesawrapper_amdinitreset(void);
+AGESA_STATUS agesawrapper_amdinitearly(void);
+AGESA_STATUS agesawrapper_amdinitenv(void);
+AGESA_STATUS agesawrapper_amdinitlate(void);
+AGESA_STATUS agesawrapper_amdinitpost(void);
+AGESA_STATUS agesawrapper_amdinitmid(void);
+AGESA_STATUS agesawrapper_amdreadeventlog(UINT8 HeapStatus);
+void *agesawrapper_getlateinitptr(int pick);
+AGESA_STATUS agesawrapper_amdlaterunaptask(UINT32 Func, UINTN Data,
+ void *ConfigPtr);
+AGESA_STATUS agesawrapper_amdS3Save(void);
+AGESA_STATUS agesawrapper_amdinitresume(void);
+AGESA_STATUS agesawrapper_amds3laterestore(void);
+
+AGESA_STATUS agesawrapper_fchs3earlyrestore(void);
+AGESA_STATUS agesawrapper_fchs3laterestore(void);
+
+VOID OemCustomizeInitEarly(IN OUT AMD_EARLY_PARAMS *InitEarly);
+VOID amd_initcpuio(void);
+const void *agesawrapper_locate_module(const CHAR8 name[8]);
+
+void OemPostParams(AMD_POST_PARAMS *PostParams);
+void SetMemParams(AMD_POST_PARAMS *PostParams);
+
+#endif /* __AGESAWRAPPER_H__ */
diff --git a/src/soc/amd/common/block/include/amdblocks/agesawrapper_call.h b/src/soc/amd/common/block/include/amdblocks/agesawrapper_call.h
new file mode 100644
index 0000000000..4854bee80d
--- /dev/null
+++ b/src/soc/amd/common/block/include/amdblocks/agesawrapper_call.h
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * 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.
+ */
+
+#ifndef __AGESAWRAPPER_CALL_H__
+#define __AGESAWRAPPER_CALL_H__
+
+#include <amdblocks/agesawrapper.h>
+#include <stdint.h>
+#include <console/console.h>
+
+/*
+ * Possible AGESA_STATUS values:
+ *
+ * 0x0 = AGESA_SUCCESS
+ * 0x1 = AGESA_UNSUPPORTED
+ * 0x2 = AGESA_BOUNDS_CHK
+ * 0x3 = AGESA_ALERT
+ * 0x4 = AGESA_WARNING
+ * 0x5 = AGESA_ERROR
+ * 0x6 = AGESA_CRITICAL
+ * 0x7 = AGESA_FATAL
+ */
+static const char *decodeAGESA_STATUS(AGESA_STATUS sret)
+{
+ const char *statusStrings[] = { "AGESA_SUCCESS", "AGESA_UNSUPPORTED",
+ "AGESA_BOUNDS_CHK", "AGESA_ALERT",
+ "AGESA_WARNING", "AGESA_ERROR",
+ "AGESA_CRITICAL", "AGESA_FATAL"
+ };
+ if (sret > 7)
+ return "unknown"; /* Non-AGESA error code */
+ return statusStrings[sret];
+}
+
+static inline u32 do_agesawrapper(AGESA_STATUS (*func)(void), const char *name)
+{
+ AGESA_STATUS ret;
+ printk(BIOS_DEBUG, "agesawrapper_%s() entry\n", name);
+ ret = func();
+ printk(BIOS_DEBUG, "agesawrapper_%s() returned %s\n",
+ name, decodeAGESA_STATUS(ret));
+ return (u32)ret;
+}
+
+#define AGESAWRAPPER(func) do_agesawrapper(agesawrapper_ ## func, #func)
+
+#define AGESAWRAPPER_PRE_CONSOLE(func) agesawrapper_ ## func()
+
+#endif /* __AGESAWRAPPER_CALL_H__ */
diff --git a/src/soc/amd/common/block/include/amdblocks/dimm_spd.h b/src/soc/amd/common/block/include/amdblocks/dimm_spd.h
index e29edc59b7..60107c9ba4 100644
--- a/src/soc/amd/common/block/include/amdblocks/dimm_spd.h
+++ b/src/soc/amd/common/block/include/amdblocks/dimm_spd.h
@@ -16,7 +16,7 @@
#ifndef __DIMMSPD_H__
#define __DIMMSPD_H__
-#include <agesawrapper.h>
+#include <amdblocks/agesawrapper.h>
#include <stddef.h>
#include <stdint.h>
diff --git a/src/soc/amd/common/block/include/amdblocks/psp.h b/src/soc/amd/common/block/include/amdblocks/psp.h
index 57ba64945b..4c9878a53e 100644
--- a/src/soc/amd/common/block/include/amdblocks/psp.h
+++ b/src/soc/amd/common/block/include/amdblocks/psp.h
@@ -16,7 +16,7 @@
#ifndef __AMD_PSP_H__
#define __AMD_PSP_H__
-#include <agesawrapper.h>
+#include <amdblocks/agesawrapper.h>
#include <soc/pci_devs.h>
#include <stdint.h>
#include <compiler.h>