2 * This file is part of the coreboot project.
4 * Copyright (C) 2011 Advanced Micro Devices, Inc.
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 #ifndef _BIOS_CALLOUT_H_
21 #define _BIOS_CALLOUT_H_
26 #define BIOS_HEAP_START_ADDRESS 0x00010000
27 #define BIOS_HEAP_SIZE 0x20000 /* 64MB */
29 typedef struct _BIOS_HEAP_MANAGER {
30 //UINT32 AvailableSize;
31 UINT32 StartOfAllocatedNodes;
32 UINT32 StartOfFreedNodes;
35 typedef struct _BIOS_BUFFER_NODE {
38 UINT32 NextNodeOffset;
43 AGESA_STATUS GetBiosCallout (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
46 * AGESA ADVANCED CALLOUTS - CPU
48 AGESA_STATUS BiosAllocateBuffer (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
49 AGESA_STATUS BiosDeallocateBuffer (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
50 AGESA_STATUS BiosLocateBuffer (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
51 AGESA_STATUS BiosRunFuncOnAp (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
52 AGESA_STATUS BiosReset (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
53 AGESA_STATUS BiosGetIdsInitData (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
55 /* AGESA ADVANCED CALLOUTS - MEMORY */
56 AGESA_STATUS BiosReadSpd (UINT32 Func,UINT32 Data,VOID *ConfigPtr);
58 /* BIOS DEFAULT RET */
59 AGESA_STATUS BiosDefaultRet (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
61 /* Call the host environment interface to provide a user hook opportunity. */
62 AGESA_STATUS BiosHookBeforeDQSTraining (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
63 /* Call the host environment interface to provide a user hook opportunity. */
64 AGESA_STATUS BiosHookBeforeDramInit (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
65 /* Call the host environment interface to provide a user hook opportunity. */
66 AGESA_STATUS BiosHookBeforeDramInitRecovery (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
67 /* Call the host environment interface to provide a user hook opportunity. */
68 AGESA_STATUS BiosHookBeforeExitSelfRefresh (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
69 /* PCIE slot reset control */
70 AGESA_STATUS BiosGnbPcieSlotReset (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
71 #define SB_GPIO_REG02 2
72 #define SB_GPIO_REG09 9
73 #define SB_GPIO_REG10 10
74 #define SB_GPIO_REG15 15
75 #define SB_GPIO_REG17 17
76 #define SB_GPIO_REG21 21
77 #define SB_GPIO_REG25 25
78 #define SB_GPIO_REG28 28
79 #endif //_BIOS_CALLOUT_H_