payloads/edk2: Disable the CPU Timer Lib unless supported
[coreboot.git] / src / soc / intel / alderlake / Kconfig
blob92a8c06840cff0abab23cd92487fcf8ae4f8dc4b
1 config SOC_INTEL_ALDERLAKE
2         bool
3         help
4           Intel Alderlake support. Mainboards should specify the PCH
5           type using the `SOC_INTEL_ALDERLAKE_PCH_*` options instead
6           of selecting this option directly.
8 config SOC_INTEL_RAPTORLAKE
9         bool
10         help
11          Intel Raptorlake support. Mainboards using RPL should select
12          SOC_INTEL_RAPTORLAKE and SOC_INTEL_ALDERLAKE_PCH_* together.
14 config SOC_INTEL_ALDERLAKE_PCH_M
15         bool
16         select SOC_INTEL_ALDERLAKE
17         help
18           Choose this option if your mainboard has a PCH-M chipset.
20 config SOC_INTEL_ALDERLAKE_PCH_N
21         bool
22         select SOC_INTEL_ALDERLAKE
23         select MICROCODE_BLOB_UNDISCLOSED
24         help
25           Choose this option if your mainboard has a PCH-N chipset.
27 config SOC_INTEL_ALDERLAKE_PCH_P
28         bool
29         select SOC_INTEL_ALDERLAKE
30         select HAVE_INTEL_FSP_REPO
31         select PLATFORM_USES_FSP2_3
32         help
33           Choose this option if your mainboard has a PCH-P chipset.
35 config SOC_INTEL_ALDERLAKE_PCH_S
36         bool
37         select SOC_INTEL_ALDERLAKE
38         select HAVE_INTEL_FSP_REPO
39         select PLATFORM_USES_FSP2_3
40         help
41           Choose this option if your mainboard has a PCH-S chipset.
43 if SOC_INTEL_ALDERLAKE
45 config CPU_SPECIFIC_OPTIONS
46         def_bool y
47         select ACPI_INTEL_HARDWARE_SLEEP_VALUES
48         select ACPI_ADL_IPU_ES_SUPPORT
49         select ARCH_X86
50         select BOOT_DEVICE_SUPPORTS_WRITES
51         select CACHE_MRC_SETTINGS
52         select CPU_INTEL_COMMON
53         select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
54         select CPU_SUPPORTS_INTEL_TME
55         select CPU_SUPPORTS_PM_TIMER_EMULATION
56         select DISPLAY_FSP_VERSION_INFO
57         select DRIVERS_USB_ACPI
58         select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2
59         select FSP_COMPRESS_FSP_S_LZ4
60         select FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW
61         select FSP_M_XIP
62         select FSP_STATUS_GLOBAL_RESET_REQUIRED_3
63         select FSP_USES_CB_DEBUG_EVENT_HANDLER
64         select FSPS_HAS_ARCH_UPD
65         select GENERIC_GPIO_LIB
66         select HAVE_DEBUG_RAM_SETUP
67         select HAVE_FSP_GOP
68         select HAVE_HYPERTHREADING
69         select INTEL_DESCRIPTOR_MODE_CAPABLE
70         select HAVE_SMI_HANDLER
71         select IDT_IN_EVERY_STAGE
72         select INTEL_GMA_ACPI
73         select INTEL_GMA_ADD_VBT if RUN_FSP_GOP
74         select INTEL_GMA_OPREGION_2_1
75         select MRC_SETTINGS_PROTECT
76         select PARALLEL_MP_AP_WORK
77         select PLATFORM_USES_FSP2_2
78         select PMC_GLOBAL_RESET_ENABLE_LOCK
79         select SOC_INTEL_COMMON
80         select CPU_INTEL_COMMON_VOLTAGE
81         select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
82         select SOC_INTEL_COMMON_BLOCK
83         select SOC_INTEL_COMMON_BLOCK_ACPI
84         select SOC_INTEL_COMMON_BLOCK_ACPI_CPPC
85         select SOC_INTEL_COMMON_BLOCK_ACPI_CPU_HYBRID
86         select SOC_INTEL_COMMON_BLOCK_ACPI_GPIO
87         select SOC_INTEL_COMMON_BLOCK_ACPI_LPIT
88         select SOC_INTEL_COMMON_BLOCK_ACPI_PEP
89         select SOC_INTEL_COMMON_BLOCK_ACPI_PEP_LPM_REQ
90         select SOC_INTEL_COMMON_BLOCK_CAR
91         select SOC_INTEL_COMMON_BLOCK_CHIP_CONFIG
92         select SOC_INTEL_COMMON_BLOCK_CNVI
93         select SOC_INTEL_COMMON_BLOCK_CPU
94         select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
95         select SOC_INTEL_COMMON_BLOCK_CPU_SMMRELOCATE
96         select SOC_INTEL_COMMON_BLOCK_DTT
97         select SOC_INTEL_COMMON_BLOCK_GPIO_DUAL_ROUTE_SUPPORT
98         select SOC_INTEL_COMMON_BLOCK_GPIO_LOCK_USING_SBI
99         select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2
100         select SOC_INTEL_COMMON_BLOCK_SCS if SOC_INTEL_ALDERLAKE_PCH_N
101         select SOC_INTEL_COMMON_BLOCK_HDA
102         select SOC_INTEL_COMMON_BLOCK_HECI1_DISABLE_USING_PMC_IPC
103         select SOC_INTEL_COMMON_BLOCK_IPU if !SOC_INTEL_ALDERLAKE_PCH_S
104         select SOC_INTEL_COMMON_BLOCK_IRQ
105         select SOC_INTEL_COMMON_BLOCK_MEMINIT
106         select SOC_INTEL_COMMON_BLOCK_PCIE_RTD3
107         select SOC_INTEL_COMMON_BLOCK_PMC_EPOC
108         select SOC_INTEL_COMMON_BLOCK_POWER_LIMIT
109         select SOC_INTEL_COMMON_BLOCK_SA
110         select SOC_INTEL_COMMON_BLOCK_SMM
111         select SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP
112         select SOC_INTEL_COMMON_BLOCK_THERMAL_BEHIND_PMC
113         select SOC_INTEL_COMMON_BLOCK_XHCI
114         select SOC_INTEL_COMMON_BLOCK_XHCI_ELOG
115         select SOC_INTEL_COMMON_BASECODE
116         select SOC_INTEL_COMMON_FSP_RESET
117         select SOC_INTEL_COMMON_PCH_CLIENT
118         select SOC_INTEL_COMMON_RESET
119         select SOC_INTEL_CSE_SEND_EOP_EARLY
120         select SOC_INTEL_CSE_SET_EOP
121         select SOC_INTEL_MEM_MAPPED_PM_CONFIGURATION
122         select HAVE_INTEL_COMPLIANCE_TEST_MODE
123         select SSE2
124         select SUPPORT_CPU_UCODE_IN_CBFS
125         select TSC_MONOTONIC_TIMER
126         select UDELAY_TSC
127         select UDK_202005_BINDING
128         select VBOOT_LIB
130 config SOC_INTEL_ALDERLAKE_TCSS_USB4_SUPPORT
131         bool
132         default y if !SOC_INTEL_ALDERLAKE_PCH_S
133         default n if SOC_INTEL_ALDERLAKE_PCH_S
134         select SOC_INTEL_COMMON_BLOCK_TCSS
135         select SOC_INTEL_COMMON_BLOCK_USB4
136         select SOC_INTEL_COMMON_BLOCK_USB4_PCIE
137         select SOC_INTEL_COMMON_BLOCK_USB4_XHCI
139 config ALDERLAKE_CONFIGURE_DESCRIPTOR
140         bool
141         help
142           Select this if the descriptor needs to be updated at runtime. This
143           can only be done if the descriptor region is writable, and should only
144           be used as a temporary workaround.
146 config ALDERLAKE_CAR_ENHANCED_NEM
147         bool
148         default y if !INTEL_CAR_NEM
149         select INTEL_CAR_NEM_ENHANCED
150         select CAR_HAS_SF_MASKS
151         select COS_MAPPED_TO_MSB
152         select CAR_HAS_L3_PROTECTED_WAYS
154 config MAX_CPUS
155         int
156         default 24
158 config DCACHE_RAM_BASE
159         default 0xfef00000
161 config DCACHE_RAM_SIZE
162         default 0xc0000
163         help
164           The size of the cache-as-ram region required during bootblock
165           and/or romstage.
167 config DCACHE_BSP_STACK_SIZE
168         hex
169         default 0x80400
170         help
171           The amount of anticipated stack usage in CAR by bootblock and
172           other stages. In the case of FSP_USES_CB_STACK default value will be
173           sum of FSP-M stack requirement(512KiB) and CB romstage stack requirement
174           (~1KiB).
176 config FSP_TEMP_RAM_SIZE
177         hex
178         default 0x20000
179         help
180           The amount of anticipated heap usage in CAR by FSP.
181           Refer to Platform FSP integration guide document to know
182           the exact FSP requirement for Heap setup.
184 config CHIPSET_DEVICETREE
185         string
186         default "soc/intel/alderlake/chipset_pch_s.cb" if SOC_INTEL_ALDERLAKE_PCH_S
187         default "soc/intel/alderlake/chipset.cb"
189 config EXT_BIOS_WIN_BASE
190         default 0xf8000000
192 config EXT_BIOS_WIN_SIZE
193         default 0x2000000
195 config IFD_CHIPSET
196         string
197         default "adl"
199 config IED_REGION_SIZE
200         hex
201         default 0x400000
203 config HEAP_SIZE
204         hex
205         default 0x10000
207 # Intel recommends reserving the following resources per PCIe TBT root port,
208 # from ADL BIOS Spec (doc #627270) Revision 0.6.0 Section 7.2.5.1.5
209 # - 42 buses
210 # - 194 MiB Non-prefetchable memory
211 # - 448 MiB Prefetchable memory
212 if SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
214 config PCIEXP_HOTPLUG_BUSES
215         int
216         default 42
218 config PCIEXP_HOTPLUG_MEM
219         hex
220         default 0xc200000
222 config PCIEXP_HOTPLUG_PREFETCH_MEM
223         hex
224         default 0x1c000000
226 endif # SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
228 config MAX_PCH_ROOT_PORTS
229         int
230         default 10 if SOC_INTEL_ALDERLAKE_PCH_M
231         default 12 if SOC_INTEL_ALDERLAKE_PCH_N
232         default 12 if SOC_INTEL_ALDERLAKE_PCH_P
233         default 28 if SOC_INTEL_ALDERLAKE_PCH_S
235 config MAX_CPU_ROOT_PORTS
236         int
237         default 1 if SOC_INTEL_ALDERLAKE_PCH_M
238         default 0 if SOC_INTEL_ALDERLAKE_PCH_N
239         default 3 if SOC_INTEL_ALDERLAKE_PCH_P || SOC_INTEL_ALDERLAKE_PCH_S
241 config MAX_TBT_ROOT_PORTS
242         int
243         default 0 if SOC_INTEL_ALDERLAKE_PCH_N || SOC_INTEL_ALDERLAKE_PCH_S
244         default 2 if SOC_INTEL_ALDERLAKE_PCH_M
245         default 4 if SOC_INTEL_ALDERLAKE_PCH_P
247 config MAX_ROOT_PORTS
248         int
249         default MAX_PCH_ROOT_PORTS
251 config MAX_PCIE_CLOCK_SRC
252         int
253         default 6 if SOC_INTEL_ALDERLAKE_PCH_M
254         default 5 if SOC_INTEL_ALDERLAKE_PCH_N
255         default 18 if SOC_INTEL_ALDERLAKE_PCH_S
256         default 10 if SOC_INTEL_ALDERLAKE_PCH_P
257         help
258           With external clock buffer, Alderlake-P can support up to three additional source clocks.
259           This is done by setting the corresponding GPIO pin(s) to native function to use as
260           SRCCLK_OE[6..9]. In addition, SRCCLK6 does not need to be set to free running clock.
261           If any of SRCCLKReq 6..9 is asserted, SRCCLK6 will be turned on.
263 config MAX_PCIE_CLOCK_REQ
264         int
265         default 6  if SOC_INTEL_ALDERLAKE_PCH_M
266         default 5  if SOC_INTEL_ALDERLAKE_PCH_N
267         default 10 if SOC_INTEL_ALDERLAKE_PCH_P
268         default 18 if SOC_INTEL_ALDERLAKE_PCH_S
270 config SMM_TSEG_SIZE
271         hex
272         default 0x800000
274 config SMM_RESERVED_SIZE
275         hex
276         default 0x200000
278 config PCR_BASE_ADDRESS
279         hex
280         default 0xe0000000 if SOC_INTEL_ALDERLAKE_PCH_S
281         default 0xfd000000
282         help
283           This option allows you to select MMIO Base Address of sideband bus.
285 config ECAM_MMCONF_BASE_ADDRESS
286         default 0xc0000000
288 config CPU_BCLK_MHZ
289         int
290         default 100
292 config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
293         int
294         default 120
296 config CPU_XTAL_HZ
297         default 38400000
299 config SOC_INTEL_UFS_CLK_FREQ_HZ
300         int
301         default 19200000
303 config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
304         int
305         default 133
307 config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
308         int
309         default 7
311 config SOC_INTEL_I2C_DEV_MAX
312         int
313         default 8
315 config SOC_INTEL_ALDERLAKE_S3
316         bool
317         default n
318         help
319           Select if using S3 instead of S0ix to disable D3Cold.
321 config ENABLE_SATA_TEST_MODE
322         bool "Enable test mode for SATA margining"
323         default n
324         help
325           Enable SATA test mode in FSP-S.
327 config SOC_INTEL_UART_DEV_MAX
328         int
329         default 7
331 config CONSOLE_UART_BASE_ADDRESS
332         hex
333         default 0xfe03e000
334         depends on INTEL_LPSS_UART_FOR_CONSOLE
336 config VBT_DATA_SIZE_KB
337         int
338         default 9
340 # Clock divider parameters for 115200 baud rate
341 # Baudrate = (UART source clock * M) /(N *16)
342 # ADL UART source clock: 100MHz
343 config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
344         hex
345         default 0x25a
347 config SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL
348         hex
349         default 0x7fff
351 config VBOOT
352         select VBOOT_MUST_REQUEST_DISPLAY
353         select VBOOT_STARTS_IN_BOOTBLOCK
354         select VBOOT_VBNV_CMOS
355         select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
356         select VBOOT_X86_SHA256_ACCELERATION
358 # Default hash block size is 1KiB. Increasing it to 4KiB to improve
359 # hashing time as well as read time. This helps in improving
360 # boot time for Alder Lake.
361 config VBOOT_HASH_BLOCK_SIZE
362         hex
363         default 0x1000
365 config CBFS_SIZE
366         default 0x200000
368 config PRERAM_CBMEM_CONSOLE_SIZE
369         hex
370         default 0x2000
372 config FSP_TYPE_IOT
373         bool
374         default n
375         help
376           This option allows to select FSP IOT type from 3rdparty/fsp repo
378 config FSP_HEADER_PATH
379         string "Location of FSP headers"
380         default "src/vendorcode/intel/fsp/fsp2_0/alderlake_n/" if SOC_INTEL_ALDERLAKE_PCH_N
381         default "src/vendorcode/intel/fsp/fsp2_0/raptorlake/" if SOC_INTEL_RAPTORLAKE
382         default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeP/Include/" if SOC_INTEL_ALDERLAKE_PCH_P && FSP_TYPE_IOT
383         default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeS/Include/" if SOC_INTEL_ALDERLAKE_PCH_S && FSP_TYPE_IOT
384         default "3rdparty/fsp/AlderLakeFspBinPkg/Client/AlderLakeP/Include/" if SOC_INTEL_ALDERLAKE_PCH_P
385         default "3rdparty/fsp/AlderLakeFspBinPkg/Client/AlderLakeS/Include/" if SOC_INTEL_ALDERLAKE_PCH_S
386         default "src/vendorcode/intel/fsp/fsp2_0/alderlake/"
388 config FSP_FD_PATH
389         string
390         depends on FSP_USE_REPO
391         default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeP/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_P && FSP_TYPE_IOT
392         default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeS/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_S && FSP_TYPE_IOT
393         default "3rdparty/fsp/AlderLakeFspBinPkg/Client/AlderLakeP/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_P
394         default "3rdparty/fsp/AlderLakeFspBinPkg/Client/AlderLakeS/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_S
396 config SOC_INTEL_ALDERLAKE_DEBUG_CONSENT
397         int "Debug Consent for ADL"
398         # USB DBC is more common for developers so make this default to 2 if
399         # SOC_INTEL_DEBUG_CONSENT=y
400         default 2 if SOC_INTEL_DEBUG_CONSENT
401         default 0
402         help
403           This is to control debug interface on SOC.
404           Setting non-zero value will allow to use DBC or DCI to debug SOC.
405           PlatformDebugConsent in FspmUpd.h has the details.
407           Desired platform debug type are
408           0:Disabled, 2:Enabled (All Probes+TraceHub), 6:Enable (Low Power),
409           7:Manual
411 config DATA_BUS_WIDTH
412         int
413         default 128
415 config DIMMS_PER_CHANNEL
416         int
417         default 2
419 config MRC_CHANNEL_WIDTH
420         int
421         default 16
423 config ACPI_ADL_IPU_ES_SUPPORT
424         def_bool n
425         help
426           Enables ACPI entry to provide silicon type information to IPU kernel driver.
428 choice
429         prompt "Multiprocessor (MP) Initialization configuration to use"
430         default USE_FSP_MP_INIT
432 config USE_FSP_MP_INIT
433         bool "Use FSP MP init"
434         select MP_SERVICES_PPI_V2
435         help
436           Upon selection, coreboot brings APs from reset and the FSP runs feature programming.
438 config USE_COREBOOT_MP_INIT
439         bool "Use coreboot MP init"
440         # FSP assumes ownership of the APs (Application Processors)
441         # upon passing `NULL` pointer to the CpuMpPpi FSP-S UPD.
442         # Hence, select `MP_SERVICES_PPI_V2_NOOP` config to pass a valid
443         # pointer to the CpuMpPpi UPD with FSP_UNSUPPORTED type APIs.
444         # This will protect APs from getting hijacked by FSP while coreboot
445         # decides to set SkipMpInit UPD.
446         select MP_SERVICES_PPI_V2_NOOP
447         select RELOAD_MICROCODE_PATCH
448         help
449           Upon selection, coreboot performs MP Init.
451 endchoice
453 if STITCH_ME_BIN
455 config CSE_BPDT_VERSION
456         default "1.7"
458 endif
460 config SI_DESC_REGION
461         string "Descriptor Region name"
462         default "SI_DESC"
463         help
464           Name of Descriptor Region in the FMAP
466 config SI_DESC_REGION_SZ
467         int
468         default 4096
469         help
470           Size of Descriptor Region in the FMAP
472 config BUILDING_WITH_DEBUG_FSP
473         bool "Debug FSP is used for the build"
474         default n
475         help
476           Set this option if debug build of FSP is used.
478 endif