AGESA F15: AMD family15 AGESA code
[coreboot.git] / src / vendorcode / amd / agesa / f15 / Include / OptionMultiSocketInstall.h
1 /* $NoKeywords:$ */
2 /**
3  * @file
4  *
5  * Install of build option: Multiple Socket Support
6  *
7  * Contains AMD AGESA install macros and test conditions. Output is the
8  * defaults tables reflecting the User's build options selection.
9  *
10  * @xrefitem bom "File Content Label" "Release Content"
11  * @e project:      AGESA
12  * @e sub-project:  Options
13  * @e \$Revision: 51891 $   @e \$Date: 2011-04-28 12:39:55 -0600 (Thu, 28 Apr 2011) $
14  */
15 /*****************************************************************************
16  *
17  * Copyright (C) 2012 Advanced Micro Devices, Inc.
18  * All rights reserved.
19  *
20  * Redistribution and use in source and binary forms, with or without
21  * modification, are permitted provided that the following conditions are met:
22  *     * Redistributions of source code must retain the above copyright
23  *       notice, this list of conditions and the following disclaimer.
24  *     * Redistributions in binary form must reproduce the above copyright
25  *       notice, this list of conditions and the following disclaimer in the
26  *       documentation and/or other materials provided with the distribution.
27  *     * Neither the name of Advanced Micro Devices, Inc. nor the names of
28  *       its contributors may be used to endorse or promote products derived
29  *       from this software without specific prior written permission.
30  *
31  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
32  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
33  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
34  * DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
35  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
36  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
37  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
38  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
39  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
40  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41  *
42  *
43  ***************************************************************************/
44
45 #ifndef _OPTION_MULTISOCKET_INSTALL_H_
46 #define _OPTION_MULTISOCKET_INSTALL_H_
47
48 /*  This option is designed to be included into the platform solution install
49  *  file. The platform solution install file will define the options status.
50  *  Check to validate the definition
51  */
52 #ifndef OPTION_MULTISOCKET
53   #error  BLDOPT: Option not defined: "OPTION_MULTISOCKET"
54 #endif
55
56 #if OPTION_MULTISOCKET == TRUE
57   OPTION_MULTISOCKET_PM_STEPS GetNumberOfSystemPmStepsPtrMulti;
58   #define GET_NUM_PM_STEPS    GetNumberOfSystemPmStepsPtrMulti
59   OPTION_MULTISOCKET_PM_CORE0_TASK RunCodeOnAllSystemCore0sMulti;
60   #define CORE0_PM_TASK       RunCodeOnAllSystemCore0sMulti
61   OPTION_MULTISOCKET_PM_NB_COF GetSystemNbCofMulti;
62   #define GET_SYS_NB_COF      GetSystemNbCofMulti
63   OPTION_MULTISOCKET_PM_NB_COF_UPDATE GetSystemNbCofVidUpdateMulti;
64   #define GET_SYS_NB_COF_UPDATE GetSystemNbCofVidUpdateMulti
65   OPTION_MULTISOCKET_PM_GET_EVENTS GetEarlyPmErrorsMulti;
66   #define GET_EARLY_PM_ERRORS GetEarlyPmErrorsMulti
67   OPTION_MULTISOCKET_PM_NB_MIN_COF GetMinNbCofMulti;
68   #define GET_MIN_NB_COF GetMinNbCofMulti
69   OPTION_MULTISOCKET_GET_PCI_ADDRESS GetCurrPciAddrMulti;
70   #define GET_PCI_ADDRESS GetCurrPciAddrMulti
71   OPTION_MULTISOCKET_MODIFY_CURR_SOCKET_PCI ModifyCurrSocketPciMulti;
72   #define MODIFY_CURR_SOCKET_PCI ModifyCurrSocketPciMulti
73 #else
74   OPTION_MULTISOCKET_PM_STEPS GetNumberOfSystemPmStepsPtrSingle;
75   #define GET_NUM_PM_STEPS    GetNumberOfSystemPmStepsPtrSingle
76   OPTION_MULTISOCKET_PM_CORE0_TASK RunCodeOnAllSystemCore0sSingle;
77   #define CORE0_PM_TASK       RunCodeOnAllSystemCore0sSingle
78   OPTION_MULTISOCKET_PM_NB_COF GetSystemNbCofSingle;
79   #define GET_SYS_NB_COF      GetSystemNbCofSingle
80   OPTION_MULTISOCKET_PM_NB_COF_UPDATE GetSystemNbCofVidUpdateSingle;
81   #define GET_SYS_NB_COF_UPDATE GetSystemNbCofVidUpdateSingle
82   OPTION_MULTISOCKET_PM_GET_EVENTS GetEarlyPmErrorsSingle;
83   #define GET_EARLY_PM_ERRORS GetEarlyPmErrorsSingle
84   OPTION_MULTISOCKET_PM_NB_MIN_COF GetMinNbCofSingle;
85   #define GET_MIN_NB_COF GetMinNbCofSingle
86   OPTION_MULTISOCKET_GET_PCI_ADDRESS GetCurrPciAddrSingle;
87   #define GET_PCI_ADDRESS GetCurrPciAddrSingle
88   OPTION_MULTISOCKET_MODIFY_CURR_SOCKET_PCI ModifyCurrSocketPciSingle;
89   #define MODIFY_CURR_SOCKET_PCI ModifyCurrSocketPciSingle
90 #endif
91
92 /*  Declare the instance of the multisocket option configuration structure  */
93 OPTION_MULTISOCKET_CONFIGURATION  OptionMultiSocketConfiguration = {
94   MULTISOCKET_STRUCT_VERSION,
95   GET_NUM_PM_STEPS,
96   CORE0_PM_TASK,
97   GET_SYS_NB_COF,
98   GET_SYS_NB_COF_UPDATE,
99   GET_EARLY_PM_ERRORS,
100   GET_MIN_NB_COF,
101   GET_PCI_ADDRESS,
102   MODIFY_CURR_SOCKET_PCI
103 };
104
105 #endif  // _OPTION_MULTISOCKET_INSTALL_H_