xref: /aosp_15_r20/external/coreboot/src/soc/intel/meteorlake/Kconfig (revision b9411a12aaaa7e1e6a6fb7c5e057f44ee179a49c)
1## SPDX-License-Identifier: GPL-2.0-only
2
3config SOC_INTEL_METEORLAKE
4	bool
5	select ACPI_INTEL_HARDWARE_SLEEP_VALUES
6	select ARCH_X86
7	select BOOT_DEVICE_SUPPORTS_WRITES
8	select CACHE_MRC_SETTINGS
9	select CPU_INTEL_COMMON
10	select CPU_INTEL_COMMON_VOLTAGE
11	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
12	select CPU_SUPPORTS_INTEL_TME
13	select CPU_SUPPORTS_PM_TIMER_EMULATION
14	select DEFAULT_SOFTWARE_CONNECTION_MANAGER if MAINBOARD_HAS_CHROMEOS
15	select DEFAULT_X2APIC_LATE_WORKAROUND
16	select DISPLAY_FSP_VERSION_INFO_2
17	select DRIVERS_USB_ACPI
18	select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2
19	select FSP_COMPRESS_FSP_S_LZ4
20	select FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW
21	select FSP_M_XIP
22	select FSP_STATUS_GLOBAL_RESET_REQUIRED_3
23	select FSP_USES_CB_DEBUG_EVENT_HANDLER
24	select FSPS_HAS_ARCH_UPD
25	select GENERIC_GPIO_LIB
26	select HAVE_DEBUG_RAM_SETUP
27	select HAVE_FSP_GOP
28	select HAVE_FSP_LOGO_SUPPORT if RUN_FSP_GOP
29	select HAVE_HYPERTHREADING
30	select HAVE_INTEL_COMPLIANCE_TEST_MODE
31	select HAVE_SMI_HANDLER
32	select IDT_IN_EVERY_STAGE
33	select INTEL_DESCRIPTOR_MODE_CAPABLE
34	select INTEL_GMA_ACPI
35	select INTEL_GMA_ADD_VBT if RUN_FSP_GOP
36	select INTEL_GMA_OPREGION_2_1
37	select INTEL_GMA_VERSION_2
38	select IOAPIC
39	select MICROCODE_BLOB_UNDISCLOSED
40	select MP_SERVICES_PPI_V2
41	select MRC_CACHE_USING_MRC_VERSION
42	select MRC_SETTINGS_PROTECT
43	select PARALLEL_MP_AP_WORK
44	select PCIE_CLOCK_CONTROL_THROUGH_P2SB
45	select PLATFORM_USES_FSP2_4 if HAVE_X86_64_SUPPORT
46	select PLATFORM_USES_FSP2_3 if !HAVE_X86_64_SUPPORT
47	select PMC_GLOBAL_RESET_ENABLE_LOCK
48	select SOC_INTEL_COMMON
49	select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
50	select SOC_INTEL_COMMON_BLOCK
51	select SOC_INTEL_COMMON_BLOCK_ACPI
52	select SOC_INTEL_COMMON_BLOCK_ACPI_CPPC
53	select SOC_INTEL_COMMON_BLOCK_ACPI_CPU_HYBRID
54	select SOC_INTEL_COMMON_BLOCK_ACPI_GPIO
55	select SOC_INTEL_COMMON_BLOCK_ACPI_LPIT
56	select SOC_INTEL_COMMON_BLOCK_ACPI_PEP
57	select SOC_INTEL_COMMON_BLOCK_ACPI_PEP_LPM_REQ
58	select SOC_INTEL_COMMON_BLOCK_CAR
59	select SOC_INTEL_COMMON_BLOCK_CHIP_CONFIG
60	select SOC_INTEL_COMMON_BLOCK_CNVI
61	select SOC_INTEL_COMMON_BLOCK_CPU
62	select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
63	select SOC_INTEL_COMMON_BLOCK_CPU_SMMRELOCATE
64	select SOC_INTEL_COMMON_BLOCK_DTT
65	select SOC_INTEL_COMMON_BLOCK_GPIO_DUAL_ROUTE_SUPPORT
66	select SOC_INTEL_COMMON_BLOCK_GPIO_IOSTANDBY
67	select SOC_INTEL_COMMON_BLOCK_GPIO_LOCK_USING_PCR
68	select SOC_INTEL_COMMON_BLOCK_GPIO_PMODE_4BITS
69	select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2
70	select SOC_INTEL_COMMON_BLOCK_HDA
71	select SOC_INTEL_COMMON_BLOCK_HECI1_DISABLE_USING_PMC_IPC
72	select SOC_INTEL_COMMON_BLOCK_IPU
73	select SOC_INTEL_COMMON_BLOCK_IOE_P2SB
74	select SOC_INTEL_COMMON_BLOCK_IRQ
75	select SOC_INTEL_COMMON_BLOCK_ME_SPEC_18
76	select SOC_INTEL_COMMON_BLOCK_MEMINIT
77	select SOC_INTEL_COMMON_BLOCK_PCIE_RTD3
78	select SOC_INTEL_COMMON_BLOCK_PMC_EPOC
79	select SOC_INTEL_COMMON_BLOCK_POWER_LIMIT
80	select SOC_INTEL_COMMON_BLOCK_SA
81	select SOC_INTEL_COMMON_BLOCK_SMM
82	select SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP
83	select SOC_INTEL_COMMON_BLOCK_SMM_TCO_ENABLE
84	select SOC_INTEL_COMMON_BLOCK_THERMAL_BEHIND_PMC
85	select SOC_INTEL_COMMON_BLOCK_XHCI
86	select SOC_INTEL_COMMON_BLOCK_XHCI_ELOG
87	select SOC_INTEL_COMMON_BASECODE
88	select SOC_INTEL_COMMON_BASECODE_RAMTOP
89	select SOC_INTEL_COMMON_FSP_RESET
90	select SOC_INTEL_COMMON_PCH_CLIENT
91	select SOC_INTEL_COMMON_RESET
92	select SOC_INTEL_COMMON_BLOCK_IOC
93	select SOC_INTEL_CRASHLOG
94	select SOC_INTEL_CSE_LITE_PSR if MAINBOARD_HAS_CHROMEOS && SOC_INTEL_CSE_LITE_SKU
95	select SOC_INTEL_CSE_SEND_EOP_LATE if !MAINBOARD_HAS_CHROMEOS
96	select SOC_INTEL_CSE_SET_EOP
97	select SOC_INTEL_IOE_DIE_SUPPORT
98	select SOC_INTEL_GFX_MBUS_JOIN if MAINBOARD_HAS_CHROMEOS && BMP_LOGO
99	select SOC_INTEL_GFX_NON_PREFETCHABLE_MMIO
100	select SOC_INTEL_MEM_MAPPED_PM_CONFIGURATION
101	select SSE2
102	select SUPPORT_CPU_UCODE_IN_CBFS
103	select TME_KEY_REGENERATION_ON_WARM_BOOT
104	select TSC_MONOTONIC_TIMER
105	select UDELAY_TSC
106	select UDK_202302_BINDING
107	select X86_CLFLUSH_CAR
108	select X86_INIT_NEED_1_SIPI
109	select INTEL_KEYLOCKER
110	help
111	  Intel Meteorlake support. Mainboards should specify the SoC
112	  type using the `SOC_INTEL_METEORLAKE_*` options instead
113	  of selecting this option directly.
114
115config SOC_INTEL_METEORLAKE_U_H
116	bool
117	select SOC_INTEL_METEORLAKE
118	help
119	  Choose this option if your mainboard has a MTL-U (9W or 15W)
120	  or MTL-H (28W or 45W) SoC.
121
122	  Note, the MTL-U/H-Processor Line offered in a 1-Chip Platform
123	  that includes the Compute, SOC, GT, and IOE tile on the same
124	  package.
125
126config SOC_INTEL_METEORLAKE_S
127	bool
128	select SOC_INTEL_METEORLAKE
129	help
130	  Choose this option if your mainboard has a MTL-S (35W or 65W) SoC.
131	  Note, MTL-S SoC combines Compute, GFX, SoC, IOE and PCH die.
132
133config SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON
134	bool
135	default n
136	help
137	  Choose this option if your mainboard has a Meteor Lake pre-production
138	  silicon. Typically known as engineering samples (like ES). This type
139	  of the silicon are very common for early platform development.
140
141if SOC_INTEL_METEORLAKE
142
143config SOC_INTEL_METEORLAKE_TCSS_USB4_SUPPORT
144	bool
145	default y
146	select SOC_INTEL_COMMON_BLOCK_TCSS
147	select SOC_INTEL_COMMON_BLOCK_USB4
148	select SOC_INTEL_COMMON_BLOCK_USB4_PCIE
149	select SOC_INTEL_COMMON_BLOCK_USB4_XHCI
150
151config METEORLAKE_CAR_ENHANCED_NEM
152	bool
153	default y if !INTEL_CAR_NEM
154	select INTEL_CAR_NEM_ENHANCED
155	select CAR_HAS_SF_MASKS
156	select COS_MAPPED_TO_MSB
157	select CAR_HAS_L3_PROTECTED_WAYS
158
159config MAX_CPUS
160	int
161	default 22
162
163config DCACHE_RAM_BASE
164	default 0xfef00000
165
166config DCACHE_RAM_SIZE
167	default 0xc0000
168	help
169	  The size of the cache-as-ram region required during bootblock
170	  and/or romstage.
171
172config DCACHE_BSP_STACK_SIZE
173	hex
174	default 0x80400
175	help
176	  The amount of anticipated stack usage in CAR by bootblock and
177	  other stages. In the case of FSP_USES_CB_STACK default value will be
178	  sum of FSP-M stack requirement(512KiB) and CB romstage stack requirement
179	  (~1KiB).
180
181config FSP_TEMP_RAM_SIZE
182	hex
183	default 0x20000
184	help
185	  The amount of anticipated heap usage in CAR by FSP.
186	  Refer to Platform FSP integration guide document to know
187	  the exact FSP requirement for Heap setup.
188
189config CHIPSET_DEVICETREE
190	string
191	default "soc/intel/meteorlake/chipset.cb"
192
193config EXT_BIOS_WIN_BASE
194	default 0xf8000000
195
196config EXT_BIOS_WIN_SIZE
197	default 0x2000000
198
199config IFD_CHIPSET
200	string
201	default "mtl"
202
203config IED_REGION_SIZE
204	hex
205	default 0x400000
206
207# Intel recommends reserving the PCIe TBT root port resources as below:
208# - 42 buses
209# - 194 MiB Non-prefetchable memory
210# - 448 MiB Prefetchable memory
211if SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
212
213config PCIEXP_HOTPLUG_BUSES
214	int
215	default 42
216
217config PCIEXP_HOTPLUG_MEM
218	hex
219	default 0xc200000
220
221config PCIEXP_HOTPLUG_PREFETCH_MEM
222	hex
223	default 0x1c000000
224
225endif # SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
226
227config MAX_TBT_ROOT_PORTS
228	int
229	default 4
230
231config MAX_ROOT_PORTS
232	int
233	default 12
234
235config MAX_PCIE_CLOCK_SRC
236	int
237	default 9
238
239config SMM_TSEG_SIZE
240	hex
241	default 0x800000
242
243config SMM_RESERVED_SIZE
244	hex
245	default 0x200000
246
247config PCR_BASE_ADDRESS
248	hex
249	default 0xe0000000
250	help
251	  This option allows you to select MMIO Base Address of sideband bus.
252
253config IOE_PCR_BASE_ADDRESS
254	hex
255	default 0x3fff0000000
256	help
257	  This option allows you to select MMIO Base Address of IOE sideband bus.
258
259config ECAM_MMCONF_BASE_ADDRESS
260	default 0xc0000000
261
262config SOC_INTEL_PERFORMANCE_CORE_SCALE_FACTOR
263	int
264	default 125
265
266config SOC_INTEL_EFFICIENT_CORE_SCALE_FACTOR
267	int
268	default 100
269
270config CPU_BCLK_MHZ
271	int
272	default 100
273
274config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
275	int
276	default 120
277
278config CPU_XTAL_HZ
279	default 38400000
280
281config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
282	int
283	default 133
284
285config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
286	int
287	default 3
288
289config SOC_INTEL_I2C_DEV_MAX
290	int
291	default 6
292
293config SOC_INTEL_UART_DEV_MAX
294	int
295	default 3
296
297config SOC_INTEL_USB2_DEV_MAX
298	int
299	default 10
300
301config SOC_INTEL_USB3_DEV_MAX
302	int
303	default 2
304
305config CONSOLE_UART_BASE_ADDRESS
306	hex
307	default 0xfe02c000
308	depends on INTEL_LPSS_UART_FOR_CONSOLE
309
310# Clock divider parameters for 115200 baud rate
311# Baudrate = (UART source clock * M) /(N *16)
312# MTL UART source clock: 100MHz
313config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
314	hex
315	default 0x25a
316
317config SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL
318	hex
319	default 0x7fff
320
321config VBOOT
322	select VBOOT_SEPARATE_VERSTAGE
323	select VBOOT_MUST_REQUEST_DISPLAY
324	select VBOOT_STARTS_IN_BOOTBLOCK
325	select VBOOT_VBNV_CMOS
326	select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
327	select VBOOT_X86_SHA256_ACCELERATION
328	select VBOOT_X86_RSA_ACCELERATION
329
330# Default hash block size is 1KiB. Increasing it to 4KiB to improve
331# hashing time as well as read time.
332config VBOOT_HASH_BLOCK_SIZE
333	hex
334	default 0x1000
335
336config CBFS_SIZE
337	hex
338	default 0x200000
339
340config PRERAM_CBMEM_CONSOLE_SIZE
341	hex
342	default 0x2000
343
344config CONSOLE_CBMEM_BUFFER_SIZE
345	hex
346	default 0x100000 if BUILDING_WITH_DEBUG_FSP
347	default 0x40000
348
349config FSP_HEADER_PATH
350	string "Location of FSP headers"
351	default "src/vendorcode/intel/fsp/fsp2_0/meteorlake/x86_64/" if HAVE_X86_64_SUPPORT
352	default "src/vendorcode/intel/fsp/fsp2_0/meteorlake/x86_32/"
353
354config FSP_FD_PATH
355	string
356	depends on FSP_USE_REPO
357	default "3rdparty/fsp/MeteorLakeFspBinPkg/Fsp.fd"
358
359config SOC_INTEL_METEORLAKE_DEBUG_CONSENT
360	int "Debug Consent for MTL"
361	# USB DBC is more common for developers so make this default to 6 if
362	# SOC_INTEL_DEBUG_CONSENT=y
363	default 6 if SOC_INTEL_DEBUG_CONSENT
364	default 2 if SOC_INTEL_COMMON_BLOCK_TRACEHUB
365	default 0
366	help
367	  This is to control debug interface on SOC.
368	  Setting non-zero value will allow to use DBC or DCI to debug SOC.
369	  PlatformDebugConsent in FspmUpd.h has the details.
370
371	  Desired platform debug type are
372	  0:Disabled, 2:Enabled Trace Active, 4:Enabled Trace Ready,
373	  6:Enable Trace Power-Off, 7:Manual
374
375config DATA_BUS_WIDTH
376	int
377	default 128
378
379config DIMMS_PER_CHANNEL
380	int
381	default 2
382
383config MRC_CHANNEL_WIDTH
384	int
385	default 16
386
387config SOC_INTEL_GFX_FRAMEBUFFER_OFFSET
388	hex
389	default 0x800000
390
391config FSP_PUBLISH_MBP_HOB
392	bool
393	default n if CHROMEOS
394	default y
395	help
396	  This is to control creation of ME_BIOS_PAYLOAD_HOB (MBP HOB) by FSP.
397	  Disabling it for the platforms, which do not use MBP HOB, can improve the boot time.
398
399config BUILDING_WITH_DEBUG_FSP
400	bool "Debug FSP is used for the build"
401	default n
402	help
403	  Set this option if debug build of FSP is used.
404
405config DROP_CPU_FEATURE_PROGRAM_IN_FSP
406	bool
407	default y if MP_SERVICES_PPI_V2_NOOP || CHROMEOS
408	default n
409	help
410	  This is to avoid FSP running basic CPU feature programming on BSP
411	  and on APs using the "CpuFeaturesPei.efi" module. The feature programming
412	  includes enabling x2APIC, MCA, MCE and Turbo etc.
413
414	  Most of these feature programming are getting performed today in scope
415	  of coreboot doing MP Init. Running these redundant programming in scope
416	  of FSP (when `USE_FSP_FEATURE_PROGRAM_ON_APS` config is enabled) would
417	  results in CPU exception.
418
419	  SoC users to select this config after dropping "CpuFeaturesPei.ffs" module
420	  from FSP-S Firmware Volume (FV). Upon selection, coreboot runs those additional
421	  feature programming on BSP and APs.
422
423	  This feature is default enabled, in case of "coreboot running MP init"
424	  aka MP_SERVICES_PPI_V2_NOOP config is selected.
425
426config PCIE_LTR_MAX_SNOOP_LATENCY
427	hex
428	default 0x100f
429	help
430	  Latency tolerance reporting, max snoop latency value defaults to 15.73 ms.
431
432config PCIE_LTR_MAX_NO_SNOOP_LATENCY
433	hex
434	default 0x100f
435	help
436	  Latency tolerance reporting, max non-snoop latency value defaults to 15.73 ms.
437
438config IOE_DIE_CLOCK_START
439	int
440	default 6 if SOC_INTEL_METEORLAKE_U_H
441
442config HAVE_BMP_LOGO_COMPRESS_LZMA
443	default n
444
445# The default offset to store CSE RW FW version information is at 68.
446# However, in Intel Meteor Lake based systems that use PSR, the additional
447# size required to keep CSE RW FW version information and PSR back-up status
448# in adjacent CMOS memory at offset 68 is not available. Therefore, we
449# override the default offset to 161, which has enough space to keep both
450# the CSE related information together.
451config SOC_INTEL_CSE_FW_PARTITION_CMOS_OFFSET
452	int
453	default 161
454
455config SOC_INTEL_COMMON_BLOCK_ACPI_SLP_S0_FREQ_HZ
456	default 0x2005
457	help
458	  slp_s0_residency granularity in 122us ticks (i.e. ~8.2KHz) in Meteor Lake.
459
460config SOC_INTEL_METEORLAKE_SIGN_OF_LIFE
461	bool
462	default y if !SOC_INTEL_METEORLAKE_PRE_PRODUCTION_SILICON || !HAVE_X86_64_SUPPORT
463	depends on MAINBOARD_HAS_CHROMEOS
464	select VBT_CBFS_COMPRESSION_DEFAULT_LZ4
465	help
466	  Enable the FSP-M Sign-of-Life feature to display a
467	  configurable text message on screen during memory training
468	  and CSME update.
469
470config SOC_PHYSICAL_ADDRESS_WIDTH
471	int
472	default 42
473
474endif
475