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