blob: 378f4fb3301d9de4ed868bd6045b5a15b243398c [file] [log] [blame]
Patrick Georgic49d7a32020-05-08 22:50:46 +02001# SPDX-License-Identifier: GPL-2.0-only
Lee Leahy47bd2d92016-07-24 18:12:16 -07002
Andrey Petrovb37fd672016-03-01 16:25:38 -08003config PLATFORM_USES_FSP2_0
4 bool
Subrata Banik74558812018-01-25 11:41:04 +05305 default n
Andrey Petrovb37fd672016-03-01 16:25:38 -08006 help
7 Include FSP 2.0 wrappers and functionality
8
Subrata Banik8a832822018-12-19 16:46:37 +05309config PLATFORM_USES_FSP2_1
10 bool
11 default n
12 select PLATFORM_USES_FSP2_0
13 select FSP_USES_CB_STACK
Subrata Banik8a832822018-12-19 16:46:37 +053014 help
15 Include FSP 2.1 wrappers and functionality.
Jonathan Zhang01e38552020-06-17 16:03:18 -070016 Feature added into FSP 2.1 specification that impacts coreboot is:
Subrata Banik8a832822018-12-19 16:46:37 +053017 1. Remove FSP stack switch and use the same stack with boot firmware
Subrata Banik8a832822018-12-19 16:46:37 +053018
Subrata Banik33d9c4a2020-05-26 18:26:54 +053019config PLATFORM_USES_FSP2_2
20 bool
21 default n
22 select PLATFORM_USES_FSP2_1
23 help
24 Include FSP 2.2 wrappers and functionality.
25 Features added into FSP 2.2 specification that impact coreboot are:
26 1. Added multi-phase silicon initialization to increase the modularity of the
27 FspSiliconInit() API
28 2. FSP_INFO_HEADER changes to add FspMultiPhaseSiInitEntryOffset
29 3. Added EnableMultiPhaseSiliconInit, bootloaders designed for FSP2.0/2.1 can disable
30 the FspMultiPhaseSiInit() API and continue to use FspSiliconInit() without change.
31
Anil Kumar57309d32021-11-11 18:56:21 -080032config PLATFORM_USES_FSP2_3
33 bool
34 default n
35 select PLATFORM_USES_FSP2_2
36 help
37 Include FSP 2.3 wrappers and functionality.
38 Features added into FSP 2.3 specification that impact coreboot are:
39 1. Added ExtendedImageRevision field in FSP_INFO_HEADER
40 2. Added FSP_NON_VOLATILE_STORAGE_HOB2
41
Andrey Petrov9be1a112016-05-14 16:32:39 -070042if PLATFORM_USES_FSP2_0
Andrey Petrovb37fd672016-03-01 16:25:38 -080043
Patrick Rudolph31218a42020-11-30 15:50:06 +010044config PLATFORM_USES_FSP2_X86_32
45 bool
46 default y
47 help
48 The FSP 2.0 runs in x86_32 protected mode.
49 Once there's a x86_64 FSP this needs to default to n.
50
Nico Hubera0e72c42020-04-03 23:38:17 +020051config HAVE_INTEL_FSP_REPO
52 bool
53 help
54 Select this, if the FSP binaries for the platform are public
55 and available in 3rdparty/fsp/. When selecting this option, the
56 platform must also set FSP_HEADER_PATH and FSP_FD_PATH correctly.
57
Nico Huber04da5d72020-03-27 20:34:54 +010058config FSP_USE_REPO
59 bool "Use binaries of the Intel FSP repository on GitHub"
60 depends on HAVE_INTEL_FSP_REPO
Michael Niewöhner59f06ad2020-11-25 13:55:42 +010061 select FSP_FULL_FD
Nico Huber04da5d72020-03-27 20:34:54 +010062 default y
Andrey Petrov9be1a112016-05-14 16:32:39 -070063 help
Nico Hubera0e72c42020-04-03 23:38:17 +020064 Select this option to use the default FSP headers and binaries
65 found in the IntelFsp GitHub repository at
66
67 https://github.com/IntelFsp/FSP/
68
69 If unsure, say Y.
70
71config FSP_HEADER_PATH
72 string "Location of FSP headers" if !FSP_USE_REPO
73 help
74 Include directory with the FSP ABI header files.
75
Nico Huber04da5d72020-03-27 20:34:54 +010076config ADD_FSP_BINARIES
77 bool "Add Intel FSP 2.0 binaries to CBFS" if !FSP_USE_REPO
78 default y if FSP_USE_REPO
79 help
80 Add the FSP-M and FSP-S binaries to CBFS.
Andrey Petrov9be1a112016-05-14 16:32:39 -070081
Brenton Dong0a5971c2016-10-18 11:35:15 -070082config FSP_T_CBFS
83 string "Name of FSP-T in CBFS"
84 depends on FSP_CAR
85 default "fspt.bin"
86
Arthur Heymans0f068a62021-05-03 10:59:45 +020087config FSP_T_LOCATION
88 hex
89 default 0xfffe0000
90 help
91 The location for FSP-T.
92
Andrey Petrov9be1a112016-05-14 16:32:39 -070093config FSP_S_CBFS
94 string "Name of FSP-S in CBFS"
95 default "fsps.bin"
96
97config FSP_M_CBFS
98 string "Name of FSP-M in CBFS"
99 default "fspm.bin"
100
Michael Niewöhner59f06ad2020-11-25 13:55:42 +0100101config FSP_FULL_FD
102 bool "Use a combined FSP FD file" if !FSP_USE_REPO
103 depends on ADD_FSP_BINARIES
104 help
105 Use a combined FSP FD file instead of specifying individual, already split
106 binaries and split the file at build-time.
107
Michael Niewöhner3044d702020-11-25 15:07:47 +0100108config FSP_FD_PATH
109 string "Location of FSP FD file" if FSP_FULL_FD && !FSP_USE_REPO
110 help
111 Path to the FSP FD file that contains the individual FSP-T, FSP-M
112 and FSP-S binaries. The file gets split at build-time.
113
Brenton Dong0a5971c2016-10-18 11:35:15 -0700114config FSP_T_FILE
Michael Niewöhner59f06ad2020-11-25 13:55:42 +0100115 string "Intel FSP-T (temp RAM init) binary path and filename" if !FSP_FULL_FD
Nico Huber04da5d72020-03-27 20:34:54 +0100116 depends on ADD_FSP_BINARIES
Brenton Dong0a5971c2016-10-18 11:35:15 -0700117 depends on FSP_CAR
Michael Niewöhner59f06ad2020-11-25 13:55:42 +0100118 default "\$(obj)/Fsp_T.fd" if FSP_FULL_FD
Brenton Dong0a5971c2016-10-18 11:35:15 -0700119 help
Nico Huber04da5d72020-03-27 20:34:54 +0100120 The path and filename of the Intel FSP-T binary for this platform.
Brenton Dong0a5971c2016-10-18 11:35:15 -0700121
Andrey Petrov9be1a112016-05-14 16:32:39 -0700122config FSP_M_FILE
Michael Niewöhner59f06ad2020-11-25 13:55:42 +0100123 string "Intel FSP-M (memory init) binary path and filename" if !FSP_FULL_FD
Andrey Petrov9be1a112016-05-14 16:32:39 -0700124 depends on ADD_FSP_BINARIES
Michael Niewöhner59f06ad2020-11-25 13:55:42 +0100125 default "\$(obj)/Fsp_M.fd" if FSP_FULL_FD
Andrey Petrov9be1a112016-05-14 16:32:39 -0700126 help
127 The path and filename of the Intel FSP-M binary for this platform.
128
129config FSP_S_FILE
Michael Niewöhner59f06ad2020-11-25 13:55:42 +0100130 string "Intel FSP-S (silicon init) binary path and filename" if !FSP_FULL_FD
Andrey Petrov9be1a112016-05-14 16:32:39 -0700131 depends on ADD_FSP_BINARIES
Michael Niewöhner59f06ad2020-11-25 13:55:42 +0100132 default "\$(obj)/Fsp_S.fd" if FSP_FULL_FD
Andrey Petrov9be1a112016-05-14 16:32:39 -0700133 help
134 The path and filename of the Intel FSP-S binary for this platform.
135
Brenton Dong0a5971c2016-10-18 11:35:15 -0700136config FSP_CAR
Arthur Heymansacc88f82019-10-20 14:29:59 +0200137 bool
Brenton Dong0a5971c2016-10-18 11:35:15 -0700138 default n
Arthur Heymans5fc2bed2021-01-23 15:09:48 +0100139 select NO_CBFS_MCACHE if !NO_FSP_TEMP_RAM_EXIT
Brenton Dong0a5971c2016-10-18 11:35:15 -0700140 help
141 Use FSP APIs to initialize & Tear Down the Cache-As-Ram
142
Arthur Heymans97896892021-01-04 12:22:57 +0100143config FSP_T_RESERVED_SIZE
144 hex
145 default 0x100 if FSP_CAR
146 default 0x0
147 help
148 This is the size of the area reserved by FSP-T. This is not
149 defined in the FSP specification but in the SOC integration
150 guides.
151
Arthur Heymans98cc7832020-12-08 12:49:38 +0100152config NO_FSP_TEMP_RAM_EXIT
153 bool
154 depends on FSP_CAR
155 help
156 Select this on a platform where you want to use FSP-T but use
157 coreboot code to tear down CAR.
158
Lee Leahy27cd96a2016-07-21 11:16:39 -0700159config FSP_M_XIP
Arthur Heymans585786b2019-10-20 14:32:57 +0200160 bool
Lee Leahy27cd96a2016-07-21 11:16:39 -0700161 default n
162 help
163 Select this value when FSP-M is execute-in-place.
164
praveen hodagatta pranesh6c965422018-10-10 22:48:00 +0800165config FSP_T_XIP
166 bool
167 default n
168 help
169 Select this value when FSP-T is execute-in-place.
170
Aamir Bohra6d569e0c2018-08-27 13:36:15 +0530171config FSP_USES_CB_STACK
172 bool
173 default n
174 help
175 Enable support for fsp to use same stack as coreboot.
176 This option allows fsp to continue using coreboot stack
177 without reinitializing stack pointer. This feature is
178 supported Icelake onwards.
179
Kyösti Mälkkic9871502019-09-03 07:03:39 +0300180config FSP_TEMP_RAM_SIZE
181 hex
Subrata Banik1d260e62019-09-09 13:55:42 +0530182 help
Felix Held414d7e42020-08-11 22:54:06 +0200183 The amount of memory coreboot reserves for the FSP to use. In the
184 case of FSP 2.1 and newer that share the stack with coreboot instead
185 of having its own stack, this is the amount of anticipated heap usage
186 in CAR by FSP to setup HOB and needs to be the recommended value from
187 the Platform FSP integration guide. In the case of the FSP having its
188 own stack that will be placed in DRAM and not in CAR, this is the
189 amount of memory the FSP needs for its stack and heap.
Kyösti Mälkkic9871502019-09-03 07:03:39 +0300190
Aaron Durbina3cecb22017-04-25 21:58:10 -0500191config FSP_PLATFORM_MEMORY_SETTINGS_VERSIONS
192 bool
193 help
194 This is selected by SoC or mainboard to supply their own
195 concept of a version for the memory settings respectively.
196 This allows deployed systems to bump their version number
197 with the same FSP which will trigger a retrain of the memory.
198
Wim Vervoornd1371502019-12-17 14:10:16 +0100199config HAVE_FSP_LOGO_SUPPORT
200 bool
201 default n
202
Kyösti Mälkki4949a3d2021-01-09 20:38:43 +0200203config BMP_LOGO
Wim Vervoorncbc878d22019-11-28 14:45:12 +0100204 bool "Enable logo"
205 default n
Wim Vervoornd1371502019-12-17 14:10:16 +0100206 depends on HAVE_FSP_LOGO_SUPPORT
Wim Vervoorncbc878d22019-11-28 14:45:12 +0100207 help
208 Uses the FSP to display the boot logo. This method supports a
209 BMP file only. The uncompressed size can be up to 1 MB. The logo can be compressed
210 using LZMA.
211
212config FSP2_0_LOGO_FILE_NAME
213 string "Logo file"
Kyösti Mälkki4949a3d2021-01-09 20:38:43 +0200214 depends on BMP_LOGO
Patrick Georgib8fba862020-06-17 21:06:53 +0200215 default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/logo.bmp"
Wim Vervoorncbc878d22019-11-28 14:45:12 +0100216
Aaron Durbina85febc2020-05-15 15:09:10 -0600217config FSP_COMPRESS_FSP_S_LZMA
218 bool
219
220config FSP_COMPRESS_FSP_S_LZ4
221 bool
222
Aaron Durbinecbfa992020-05-15 17:01:58 -0600223config FSP_COMPRESS_FSP_M_LZMA
224 bool
225 depends on !FSP_M_XIP
226
227config FSP_COMPRESS_FSP_M_LZ4
228 bool
229 depends on !FSP_M_XIP
230
Raul E Rangel82897c92021-11-05 10:29:24 -0600231config FSP_ALIGNMENT_FSP_S
232 int
233 help
234 Sets the CBFS alignment for FSP-S
235
236config FSP_ALIGNMENT_FSP_M
237 int
238 help
239 Sets the CBFS alignment for FSP-M
240
Aaron Durbinecbfa992020-05-15 17:01:58 -0600241config FSP_M_ADDR
242 hex
243 help
244 The address FSP-M will be relocated to during build time
245
Subrata Banik8f7a2482020-09-20 12:28:45 +0530246config FSP_STATUS_GLOBAL_RESET_REQUIRED_3
247 bool
248 help
249 FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2
250
251config FSP_STATUS_GLOBAL_RESET_REQUIRED_4
252 bool
253 help
254 FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2
255
256config FSP_STATUS_GLOBAL_RESET_REQUIRED_5
257 bool
258 help
259 FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2
260
261config FSP_STATUS_GLOBAL_RESET_REQUIRED_6
262 bool
263 help
264 FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2
265
266config FSP_STATUS_GLOBAL_RESET_REQUIRED_7
267 bool
268 help
269 FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2
270
271config FSP_STATUS_GLOBAL_RESET_REQUIRED_8
272 bool
273 help
274 FSP Reset Status code used for global reset as per FSP EAS v2.0 section 11.2.2
275
276config FSP_STATUS_GLOBAL_RESET
277 hex
Subrata Banik2b2ade92020-10-31 21:07:16 +0530278 depends on SOC_INTEL_COMMON_FSP_RESET
Subrata Banik8f7a2482020-09-20 12:28:45 +0530279 default 0x40000003 if FSP_STATUS_GLOBAL_RESET_REQUIRED_3
280 default 0x40000004 if FSP_STATUS_GLOBAL_RESET_REQUIRED_4
281 default 0x40000005 if FSP_STATUS_GLOBAL_RESET_REQUIRED_5
282 default 0x40000006 if FSP_STATUS_GLOBAL_RESET_REQUIRED_6
283 default 0x40000007 if FSP_STATUS_GLOBAL_RESET_REQUIRED_7
284 default 0x40000008 if FSP_STATUS_GLOBAL_RESET_REQUIRED_8
285 default 0xffffffff
286 help
287 If global reset is supported by SoC then select the correct status value for global
288 reset type from SoC Kconfig based on available Kconfig options
289 FSP_STATUS_GLOBAL_RESET_REQUIRED_X. Default is unsupported.
290
Subrata Banik2b2ade92020-10-31 21:07:16 +0530291config SOC_INTEL_COMMON_FSP_RESET
292 bool
293 help
294 Common code block to handle platform reset request raised by FSP. The FSP
295 will use the FSP EAS v2.0 section 12.2.2 (OEM Status Code) to indicate that
296 a reset is required.
Subrata Banik298b3592021-09-14 12:38:08 +0530297
298config FSPS_HAS_ARCH_UPD
299 bool
300 help
301 SoC users must select this Kconfig if the `FSPS_UPD` header has architecture
302 UPD structure as `FSPS_ARCH_UPD`. Typically, platform with FSP 2.2 specification
303 onwards has support for `FSPS_ARCH_UPD` section as part of `FSPS_UPD` structure.
304 But there are some exceptions as in TGL, JSL, XEON_SP FSP header doesn't have
305 support for FSPS_ARCH_UPD.
306
307config FSPS_USE_MULTI_PHASE_INIT
308 bool
309 help
310 SoC users to select this Kconfig to set EnableMultiPhaseSiliconInit to enable and
311 execute FspMultiPhaseSiInit() API.
312
Subrata Banik34f26b22022-02-10 12:38:02 +0530313config USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
Subrata Banike8feab02021-12-27 10:25:55 +0000314 bool
315 help
316 The FSP API is used to notify the FSP about different phases in the boot process.
317 The current FSP specification supports three notify phases:
318 - Post PCI enumeration
319 - Ready to Boot
320 - End of Firmware
Subrata Banik34f26b22022-02-10 12:38:02 +0530321 This option allows FSP to execute Notify Phase API (Post PCI enumeration).
322 SoC users can override this config to use coreboot native implementations
323 to perform the required lock down and chipset register configuration prior
324 to executing any 3rd-party code during PCI enumeration (i.e. Option ROM).
325
326 coreboot native implementation to skip FSP Notify Phase (Post PCI enumeration)
327 is still WIP.
328
329config USE_FSP_NOTIFY_PHASE_READY_TO_BOOT
330 bool
331 help
332 The FSP API is used to notify the FSP about different phases in the boot process.
333 The current FSP specification supports three notify phases:
334 - Post PCI enumeration
335 - Ready to Boot
336 - End of Firmware
337 This option allows FSP to execute Notify Phase API (Ready to Boot).
338 SoC users can override this config to use coreboot native implementations
Subrata Banike8feab02021-12-27 10:25:55 +0000339 to perform the required lock down and chipset register configuration prior
340 boot to payload.
341
Subrata Banik34f26b22022-02-10 12:38:02 +0530342config USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE
Subrata Banike8feab02021-12-27 10:25:55 +0000343 bool
344 help
345 The FSP API is used to notify the FSP about different phases in the boot process.
346 The current FSP specification supports three notify phases:
347 - Post PCI enumeration
348 - Ready to Boot
349 - End of Firmware
Subrata Banik34f26b22022-02-10 12:38:02 +0530350 This option allows FSP to execute Notify Phase API (End of Firmware).
351 SoC users can override this config to use coreboot native implementations
352 to perform the required lock down and chipset register configuration prior
353 boot to payload.
Subrata Banike8feab02021-12-27 10:25:55 +0000354
Subrata Banik3ba6f8c2022-03-23 03:22:28 +0530355config FSP_USES_CB_DEBUG_EVENT_HANDLER
356 bool
357 default n
358 help
359 This option allows to create `Debug Event Handler` to print FSP debug messages
360 to output device using coreboot native implementation.
361
Subrata Banik6de1d9f2022-03-20 19:50:38 +0530362config DISPLAY_FSP_TIMESTAMPS
363 bool "Display FSP Timestamps"
364 default n
365 help
366 Select this config to retrieve FSP timestamps from Firmware Performance Data Table
367 (FPDT) and display from ramstage after FSP-S is executed.
368
369 To be able to use this, FSP has to be compiled with `PcdFspPerformanceEnable` set to
370 `TRUE`.
371
Subrata Banik9bc5b002022-04-06 18:41:25 +0000372config FSP_ENABLE_SERIAL_DEBUG
373 bool "Output FSP debug messages on serial console"
374 default y
375 depends on FSP_USES_CB_DEBUG_EVENT_HANDLER
376 help
377 Output FSP debug messages on serial console.
378
379 The config option is selected based on your FSP configuration i.e., debug or
380 release. Enable this option from site-local to print FSP serial messages using
381 coreboot native debug driver when coreboot has integrated the debug FSP
382 binaries. coreboot disables serial messages when this config is not enabled.
383
Johnny Lin55bc2d32022-06-13 14:05:43 +0800384config SAVE_MRC_AFTER_FSPS
385 bool
386 default n
387 depends on XEON_SP_COMMON_BASE
388 help
389 Save MRC training data after FSP-S. Select this on platforms that generate MRC
390 cache HOB data as part of FSP-S rather than FSP-M.
391
Subrata Banikda7d00e2023-04-26 16:31:56 +0530392config FSP_MULTIPHASE_SI_INIT_RETURN_BROKEN
393 bool
394 default n
395 depends on PLATFORM_USES_FSP2_2
396 help
397 Select this config for Intel SoC platform where FSP MultiPhaseSiInit API is unable
398 to return ERROR status properly.
399
400 The config option will be selected based on the target SoC platform and if the
401 problem existed inside the FSP MultiPhaseSiInit. At present the problem has only
402 reported with Alder Lake and Raptor Lake FSP where MultiPhaseSiInit API is unable
403 to return any ERROR status.
404
Andrey Petrov9be1a112016-05-14 16:32:39 -0700405endif