summaryrefslogtreecommitdiff
path: root/src/mainboard/amd/inagua/buildOpts.c
blob: 512c22446b2b8bf9f7d9fb8bbe3bcb61dfc19e9a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
/* SPDX-License-Identifier: GPL-2.0-only */
/* This file is part of the coreboot project. */

/**
 * @file
 *
 * AMD User options selection for a Brazos platform solution system
 *
 * This file is placed in the user's platform directory and contains the
 * build option selections desired for that platform.
 *
 * For Information about this file, see @ref platforminstall.
 *
 */

#include <stdlib.h>


/* Select the CPU family. */
#define INSTALL_FAMILY_10_SUPPORT		FALSE
#define INSTALL_FAMILY_12_SUPPORT		FALSE
#define INSTALL_FAMILY_14_SUPPORT		TRUE
#define INSTALL_FAMILY_15_SUPPORT		FALSE

/* Select the CPU socket type. */
#define INSTALL_G34_SOCKET_SUPPORT		FALSE
#define INSTALL_C32_SOCKET_SUPPORT		FALSE
#define INSTALL_S1G3_SOCKET_SUPPORT		FALSE
#define INSTALL_S1G4_SOCKET_SUPPORT		FALSE
#define INSTALL_ASB2_SOCKET_SUPPORT		FALSE
#define INSTALL_FS1_SOCKET_SUPPORT		FALSE
#define INSTALL_FM1_SOCKET_SUPPORT		FALSE
#define INSTALL_FP1_SOCKET_SUPPORT		FALSE
#define INSTALL_FT1_SOCKET_SUPPORT		TRUE
#define INSTALL_AM3_SOCKET_SUPPORT		FALSE

/*
 * Agesa optional capabilities selection.
 * Uncomment and mark FALSE those features you wish to include in the build.
 * Comment out or mark TRUE those features you want to REMOVE from the build.
 */

#define BLDOPT_REMOVE_FAMILY_10_SUPPORT		TRUE
#define BLDOPT_REMOVE_FAMILY_12_SUPPORT		TRUE
#define BLDOPT_REMOVE_FAMILY_14_SUPPORT		FALSE
#define BLDOPT_REMOVE_FAMILY_15_SUPPORT		TRUE

#define BLDOPT_REMOVE_AM3_SOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_ASB2_SOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_C32_SOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_FM1_SOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_FP1_SOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_FS1_SOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_FT1_SOCKET_SUPPORT	FALSE
#define BLDOPT_REMOVE_G34_SOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_S1G3_SOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_S1G4_SOCKET_SUPPORT	TRUE

#define BLDOPT_REMOVE_UDIMMS_SUPPORT		FALSE
#define BLDOPT_REMOVE_RDIMMS_SUPPORT		TRUE
#define BLDOPT_REMOVE_LRDIMMS_SUPPORT		FALSE
#define BLDOPT_REMOVE_ECC_SUPPORT		FALSE
//#define BLDOPT_REMOVE_DCT_INTERLEAVE		TRUE
#define BLDOPT_REMOVE_BANK_INTERLEAVE		FALSE
#define BLDOPT_REMOVE_NODE_INTERLEAVE		TRUE
#define BLDOPT_REMOVE_PARALLEL_TRAINING		FALSE
#define BLDOPT_REMOVE_DQS_TRAINING		FALSE
#define BLDOPT_REMOVE_ONLINE_SPARE_SUPPORT	TRUE
#define BLDOPT_REMOVE_MULTISOCKET_SUPPORT	TRUE
#define BLDOPT_REMOVE_ACPI_PSTATES		FALSE
#define BLDCFG_REMOVE_ACPI_PSTATES_PPC		FALSE
#define BLDCFG_REMOVE_ACPI_PSTATES_PCT		FALSE
#define BLDCFG_REMOVE_ACPI_PSTATES_PSD		FALSE
#define BLDCFG_REMOVE_ACPI_PSTATES_PSS		FALSE
#define BLDCFG_REMOVE_ACPI_PSTATES_XPSS		FALSE
#define BLDCFG_FORCE_INDEPENDENT_PSD_OBJECT	FALSE
#define BLDOPT_REMOVE_SRAT			FALSE
#define BLDOPT_REMOVE_SLIT			FALSE
#define BLDOPT_REMOVE_WHEA			FALSE
#define BLDOPT_REMOVE_DMI			TRUE
#define BLDOPT_REMOVE_HT_ASSIST			TRUE
#define BLDOPT_REMOVE_ATM_MODE			TRUE
//#define BLDOPT_REMOVE_MSG_BASED_C1E		TRUE
//#define BLDOPT_REMOVE_LOW_POWER_STATE_FOR_PROCHOT	TRUE
#define BLDOPT_REMOVE_MEM_RESTORE_SUPPORT	FALSE
//#define BLDOPT_REMOVE_C6_STATE		TRUE
#define BLDOPT_REMOVE_GFX_RECOVERY		TRUE
#define BLDOPT_REMOVE_EARLY_SAMPLES		TRUE


#define BLDCFG_PCI_MMIO_BASE			CONFIG_MMCONF_BASE_ADDRESS
#define BLDCFG_PCI_MMIO_SIZE			CONFIG_MMCONF_BUS_NUMBER

#define BLDCFG_VRM_CURRENT_LIMIT		24000
//#define BLDCFG_VRM_NB_CURRENT_LIMIT		0
#define BLDCFG_VRM_LOW_POWER_THRESHOLD		24000
#define BLDCFG_VRM_NB_LOW_POWER_THRESHOLD	1
#define BLDCFG_VRM_SLEW_RATE			5000
//#define BLDCFG_VRM_NB_SLEW_RATE		5000
//#define BLDCFG_VRM_ADDITIONAL_DELAY		0
//#define BLDCFG_VRM_NB_ADDITIONAL_DELAY	0
#define BLDCFG_VRM_HIGH_SPEED_ENABLE		TRUE
//#define BLDCFG_VRM_NB_HIGH_SPEED_ENABLE	FALSE
#define BLDCFG_VRM_INRUSH_CURRENT_LIMIT		6000
//#define BLDCFG_VRM_NB_INRUSH_CURRENT_LIMIT	0

//#define BLDCFG_PROCESSOR_SCOPE_NAME0		'C'
//#define BLDCFG_PROCESSOR_SCOPE_NAME1		'0'
//#define BLDCFG_PROCESSOR_SCOPE_IN_SB		FALSE
#define BLDCFG_PLAT_NUM_IO_APICS		3
//#define BLDCFG_PLATFORM_C1E_MODE		C1eModeDisabled
//#define BLDCFG_PLATFORM_C1E_OPDATA		0
//#define BLDCFG_PLATFORM_C1E_MODE_OPDATA1	0
//#define BLDCFG_PLATFORM_C1E_MODE_OPDATA2	0
#define BLDCFG_PLATFORM_CSTATE_MODE		CStateModeC6
#define BLDCFG_PLATFORM_CSTATE_OPDATA		0x840
#define BLDCFG_PLATFORM_CSTATE_IO_BASE_ADDRESS	0x840
//#define BLDCFG_PLATFORM_CPB_MODE		CpbModeAuto
#define BLDCFG_CORE_LEVELING_MODE		CORE_LEVEL_LOWEST
#define BLDCFG_AP_MTRR_SETTINGS_LIST		&OntarioApMtrrSettingsList
#define BLDCFG_AMD_PLATFORM_TYPE		AMD_PLATFORM_MOBILE
//#define BLDCFG_STARTING_BUSNUM		0
//#define BLDCFG_MAXIMUM_BUSNUM			0xf8
//#define BLDCFG_ALLOCATED_BUSNUMS		0x20
//#define BLDCFG_PLATFORM_DEEMPHASIS_LIST	0
//#define BLDCFG_BUID_SWAP_LIST			0
//#define BLDCFG_HTDEVICE_CAPABILITIES_OVERRIDE_LIST	0
//#define BLDCFG_HTFABRIC_LIMITS_LIST		0
//#define BLDCFG_HTCHAIN_LIMITS_LIST		0
//#define BLDCFG_BUS_NUMBERS_LIST		0
//#define BLDCFG_IGNORE_LINK_LIST		0
//#define BLDCFG_LINK_SKIP_REGANG_LIST		0
//#define BLDCFG_ADDITIONAL_TOPOLOGIES_LIST	0
//#define BLDCFG_USE_HT_ASSIST			TRUE
//#define BLDCFG_USE_ATM_MODE			TRUE
//#define BLDCFG_PLATFORM_CONTROL_FLOW_MODE	Nfcm
#define BLDCFG_S3_LATE_RESTORE			FALSE
//#define BLDCFG_USE_32_BYTE_REFRESH		FALSE
//#define BLDCFG_USE_VARIABLE_MCT_ISOC_PRIORITY	FALSE
//#define BLDCFG_PLATFORM_POWER_POLICY_MODE	Performance
//#define BLDCFG_SET_HTCRC_SYNC_FLOOD		FALSE
//#define BLDCFG_USE_UNIT_ID_CLUMPING		FALSE
//#define BLDCFG_SYSTEM_PHYSICAL_SOCKET_MAP	0
#define BLDCFG_CFG_GNB_HD_AUDIO			TRUE
//#define BLDCFG_CFG_ABM_SUPPORT		FALSE
//#define BLDCFG_CFG_DYNAMIC_REFRESH_RATE	0
//#define BLDCFG_CFG_LCD_BACK_LIGHT_CONTROL	0
//#define BLDCFG_MEM_INIT_PSTATE		0
//#define BLDCFG_AMD_PSTATE_CAP_VALUE		0
#define BLDCFG_MEMORY_BUS_FREQUENCY_LIMIT	DDR1333_FREQUENCY
#define BLDCFG_MEMORY_MODE_UNGANGED		TRUE
//#define BLDCFG_MEMORY_QUAD_RANK_CAPABLE	TRUE
//#define BLDCFG_MEMORY_QUADRANK_TYPE		QUADRANK_UNBUFFERED
#define BLDCFG_MEMORY_SODIMM_CAPABLE		TRUE
#define BLDCFG_MEMORY_LRDIMM_CAPABLE		FALSE
#define BLDCFG_MEMORY_ENABLE_BANK_INTERLEAVING	TRUE
#define BLDCFG_MEMORY_ENABLE_NODE_INTERLEAVING	FALSE
#define BLDCFG_MEMORY_CHANNEL_INTERLEAVING	FALSE
#define BLDCFG_MEMORY_POWER_DOWN		TRUE
#define BLDCFG_POWER_DOWN_MODE			POWER_DOWN_BY_CHIP_SELECT
//#define BLDCFG_ONLINE_SPARE			FALSE
//#define BLDCFG_MEMORY_PARITY_ENABLE		FALSE
#define BLDCFG_BANK_SWIZZLE			TRUE
#define BLDCFG_TIMING_MODE_SELECT		TIMING_MODE_AUTO
#define BLDCFG_MEMORY_CLOCK_SELECT		DDR1333_FREQUENCY
#define BLDCFG_DQS_TRAINING_CONTROL		TRUE
#define BLDCFG_IGNORE_SPD_CHECKSUM		FALSE
#define BLDCFG_USE_BURST_MODE			FALSE
#define BLDCFG_MEMORY_ALL_CLOCKS_ON		FALSE
//#define BLDCFG_ENABLE_ECC_FEATURE		TRUE
//#define BLDCFG_ECC_REDIRECTION		FALSE
//#define BLDCFG_SCRUB_DRAM_RATE		0
//#define BLDCFG_SCRUB_L2_RATE			0
//#define BLDCFG_SCRUB_L3_RATE			0
//#define BLDCFG_SCRUB_IC_RATE			0
//#define BLDCFG_SCRUB_DC_RATE			0
//#define BLDCFG_ECC_SYNC_FLOOD			0
//#define BLDCFG_ECC_SYMBOL_SIZE		0
//#define BLDCFG_1GB_ALIGN			FALSE
#define BLDCFG_UMA_ALLOCATION_MODE		UMA_AUTO
#define BLDCFG_UMA_ALLOCATION_SIZE		0
#define BLDCFG_UMA_ABOVE4G_SUPPORT		FALSE
#define BLDCFG_UMA_ALIGNMENT			NO_UMA_ALIGNED
#define BLDCFG_HEAP_DRAM_ADDRESS		0xB0000
#define BLDCFG_CFG_TEMP_PCIE_MMIO_BASE_ADDRESS	0xD0000000

/*
 * Agesa configuration values selection.
 * Uncomment and specify the value for the configuration options
 * needed by the system.
 */
#include <AGESA.h>

/* The fixed MTRR values to be set after memory initialization. */
CONST AP_MTRR_SETTINGS ROMDATA OntarioApMtrrSettingsList[] =
{
	{ AMD_AP_MTRR_FIX64k_00000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX16k_80000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX16k_A0000, 0x0000000000000000ull },
	{ AMD_AP_MTRR_FIX4k_C0000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX4k_C8000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX4k_D0000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX4k_D8000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX4k_E0000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX4k_E8000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX4k_F0000, 0x1E1E1E1E1E1E1E1Eull },
	{ AMD_AP_MTRR_FIX4k_F8000, 0x1E1E1E1E1E1E1E1Eull },
	{ CPU_LIST_TERMINAL }
};

/*  Include the files that instantiate the configuration definitions.  */

#include "cpuRegisters.h"
#include "cpuFamRegisters.h"
#include "cpuFamilyTranslation.h"
#include "AdvancedApi.h"
#include "heapManager.h"
#include "CreateStruct.h"
#include "cpuFeatures.h"
#include "Table.h"
#include "cpuEarlyInit.h"
#include "cpuLateInit.h"
#include "GnbInterface.h"

/*****************************************************************************
 * Define the RELEASE VERSION string
 *
 * The Release Version string should identify the next planned release.
 * When a branch is made in preparation for a release, the release manager
 * should change/confirm that the branch version of this file contains the
 * string matching the desired version for the release. The trunk version of
 * the file should always contain a trailing 'X'. This will make sure that a
 * development build from trunk will not be confused for a released version.
 * The release manager will need to remove the trailing 'X' and update the
 * version string as appropriate for the release. The trunk copy of this file
 * should also be updated/incremented for the next expected version, + trailing 'X'
 ****************************************************************************/
// This is the delivery package title, "BrazosPI"
// This string MUST be exactly 8 characters long
#define AGESA_PACKAGE_STRING  {'c', 'b', '_', 'A', 'g', 'e', 's', 'a'}

// This is the release version number of the AGESA component
// This string MUST be exactly 12 characters long
#define AGESA_VERSION_STRING	{'V', '1', '.', '1', '.', '0', '.', '3', ' ', ' ', ' ', ' '}

/* MEMORY_BUS_SPEED */
#define DDR400_FREQUENCY				200 ///< DDR 400
#define DDR533_FREQUENCY				266 ///< DDR 533
#define DDR667_FREQUENCY				333 ///< DDR 667
#define DDR800_FREQUENCY				400 ///< DDR 800
#define DDR1066_FREQUENCY				533 ///< DDR 1066
#define DDR1333_FREQUENCY				667 ///< DDR 1333
#define DDR1600_FREQUENCY				800 ///< DDR 1600
#define DDR1866_FREQUENCY				933 ///< DDR 1866
#define UNSUPPORTED_DDR_FREQUENCY			934 ///< Highest limit of DDR frequency

/* QUANDRANK_TYPE*/
#define QUADRANK_REGISTERED				0 ///< Quadrank registered DIMM
#define QUADRANK_UNBUFFERED				1 ///< Quadrank unbuffered DIMM

/* USER_MEMORY_TIMING_MODE */
#define TIMING_MODE_AUTO				0 ///< Use best rate possible
#define TIMING_MODE_LIMITED				1 ///< Set user top limit
#define TIMING_MODE_SPECIFIC				2 ///< Set user specified speed

/* POWER_DOWN_MODE */
#define POWER_DOWN_BY_CHANNEL				0 ///< Channel power down mode
#define POWER_DOWN_BY_CHIP_SELECT			1 ///< Chip select power down mode

// The following definitions specify the default values for various parameters in which there are
// no clearly defined defaults to be used in the common file.  The values below are based on product
// and BKDG content, please consult the AGESA Memory team for consultation.
#define DFLT_SCRUB_DRAM_RATE		(0)
#define DFLT_SCRUB_L2_RATE		(0)
#define DFLT_SCRUB_L3_RATE		(0)
#define DFLT_SCRUB_IC_RATE		(0)
#define DFLT_SCRUB_DC_RATE		(0)
#define DFLT_MEMORY_QUADRANK_TYPE	QUADRANK_UNBUFFERED
#define DFLT_VRM_SLEW_RATE		(5000)

// Instantiate all solution relevant data.
#include <PlatformInstall.h>