xref: /aosp_15_r20/external/coreboot/src/soc/amd/common/block/include/amdblocks/BiosCallOuts.h (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef AMD_BLOCK_CALLOUTS_AGESA_H
4 #define AMD_BLOCK_CALLOUTS_AGESA_H
5 
6 #include <amdblocks/agesawrapper.h>
7 #include <stdint.h>
8 
9 #define BIOS_HEAP_SIZE			0x30000
10 #define BSP_STACK_BASE_ADDR		0x30000
11 
12 typedef struct _BIOS_HEAP_MANAGER {
13 	uint32_t StartOfAllocatedNodes;
14 	uint32_t StartOfFreedNodes;
15 } BIOS_HEAP_MANAGER;
16 
17 typedef struct _BIOS_BUFFER_NODE {
18 	uint32_t BufferHandle;
19 	uint32_t BufferSize;
20 	uint32_t NextNodeOffset;
21 } BIOS_BUFFER_NODE;
22 
23 AGESA_STATUS agesa_GetTempHeapBase(uint32_t Func, uintptr_t Data,
24 							void *ConfigPtr);
25 AGESA_STATUS agesa_HeapRebase(uint32_t Func, uintptr_t Data, void *ConfigPtr);
26 
27 AGESA_STATUS agesa_AllocateBuffer(uint32_t Func, uintptr_t Data,
28 							void *ConfigPtr);
29 AGESA_STATUS agesa_DeallocateBuffer(uint32_t Func, uintptr_t Data,
30 							void *ConfigPtr);
31 AGESA_STATUS agesa_LocateBuffer(uint32_t Func, uintptr_t Data, void *ConfigPtr);
32 
33 AGESA_STATUS agesa_NoopUnsupported(uint32_t Func, uintptr_t Data,
34 							void *ConfigPtr);
35 AGESA_STATUS agesa_NoopSuccess(uint32_t Func, uintptr_t Data, void *ConfigPtr);
36 AGESA_STATUS agesa_EmptyIdsInitData(uint32_t Func, uintptr_t Data,
37 							void *ConfigPtr);
38 AGESA_STATUS agesa_Reset(uint32_t Func, uintptr_t Data, void *ConfigPtr);
39 AGESA_STATUS agesa_RunFuncOnAp(uint32_t Func, uintptr_t Data, void *ConfigPtr);
40 AGESA_STATUS agesa_GfxGetVbiosImage(uint32_t Func, uintptr_t FchData,
41 							void *ConfigPrt);
42 
43 AGESA_STATUS agesa_ReadSpd(uint32_t Func, uintptr_t Data, void *ConfigPtr);
44 AGESA_STATUS agesa_RunFcnOnAllAps(uint32_t Func, uintptr_t Data,
45 							void *ConfigPtr);
46 AGESA_STATUS agesa_PcieSlotResetControl(uint32_t Func, uintptr_t Data,
47 							void *ConfigPtr);
48 AGESA_STATUS agesa_WaitForAllApsFinished(uint32_t Func, uintptr_t Data,
49 							void *ConfigPtr);
50 AGESA_STATUS agesa_IdleAnAp(uint32_t Func, uintptr_t Data, void *ConfigPtr);
51 
52 AGESA_STATUS GetBiosCallout(uint32_t Func, uintptr_t Data, void *ConfigPtr);
53 
54 AGESA_STATUS agesa_fch_initreset(uint32_t Func, uintptr_t FchData,
55 							void *ConfigPtr);
56 AGESA_STATUS agesa_fch_initenv(uint32_t Func, uintptr_t FchData,
57 							void *ConfigPtr);
58 AGESA_STATUS agesa_HaltThisAp(uint32_t Func, uintptr_t Data, void *ConfigPtr);
59 
60 void platform_FchParams_reset(FCH_RESET_DATA_BLOCK *FchParams_reset);
61 void platform_FchParams_env(FCH_DATA_BLOCK *FchParams_env);
62 AGESA_STATUS platform_PcieSlotResetControl(uint32_t Func, uintptr_t Data,
63 	void *ConfigPtr);
64 typedef struct {
65 	uint32_t CalloutName;
66 	CALLOUT_ENTRY CalloutPtr;
67 } BIOS_CALLOUT_STRUCT;
68 
69 extern const BIOS_CALLOUT_STRUCT BiosCallouts[];
70 extern const int BiosCalloutsLen;
71 
72 #endif /* AMD_BLOCK_CALLOUTS_AGESA_H */
73