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 REQUIRED_CALLOUTS 12
27 #define BIOS_HEAP_START_ADDRESS 0x00010000
28 #define BIOS_HEAP_SIZE 0x20000 /* 64MB */
30 typedef struct _BIOS_HEAP_MANAGER {
31 //UINT32 AvailableSize;
32 UINT32 StartOfAllocatedNodes;
33 UINT32 StartOfFreedNodes;
36 typedef struct _BIOS_BUFFER_NODE {
39 UINT32 NextNodeOffset;
44 AGESA_STATUS GetBiosCallout (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
47 * AGESA ADVANCED CALLOUTS - CPU
49 AGESA_STATUS BiosAllocateBuffer (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
50 AGESA_STATUS BiosDeallocateBuffer (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
51 AGESA_STATUS BiosLocateBuffer (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
52 AGESA_STATUS BiosRunFuncOnAp (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
53 AGESA_STATUS BiosReset (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
54 AGESA_STATUS BiosGetIdsInitData (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
56 /* AGESA ADVANCED CALLOUTS - MEMORY */
57 AGESA_STATUS BiosReadSpd (UINT32 Func,UINT32 Data,VOID *ConfigPtr);
59 /* BIOS DEFAULT RET */
60 AGESA_STATUS BiosDefaultRet (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
62 /* Call the host environment interface to provide a user hook opportunity. */
63 AGESA_STATUS BiosHookBeforeDQSTraining (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
64 /* Call the host environment interface to provide a user hook opportunity. */
65 AGESA_STATUS BiosHookBeforeDramInit (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
66 /* Call the host environment interface to provide a user hook opportunity. */
67 AGESA_STATUS BiosHookBeforeExitSelfRefresh (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
68 /* PCIE slot reset control */
69 AGESA_STATUS BiosGnbPcieSlotReset (UINT32 Func, UINT32 Data, VOID *ConfigPtr);
70 #define SB_GPIO_REG02 2
71 #define SB_GPIO_REG09 9
72 #define SB_GPIO_REG10 10
73 #define SB_GPIO_REG15 15
74 #define SB_GPIO_REG17 17
75 #define SB_GPIO_REG21 21
76 #define SB_GPIO_REG25 25
77 #define SB_GPIO_REG28 28
78 #endif //_BIOS_CALLOUT_H_