1 ## SPDX-License-Identifier: GPL-2.0-only
3 config SOC_INTEL_ALDERLAKE
5 select ACPI_INTEL_HARDWARE_SLEEP_VALUES
7 select BOOT_DEVICE_SUPPORTS_WRITES
8 select CACHE_MRC_SETTINGS
9 select CPU_INTEL_COMMON
10 select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
11 select CPU_SUPPORTS_INTEL_TME
12 select CPU_SUPPORTS_PM_TIMER_EMULATION
13 select DEFAULT_SOFTWARE_CONNECTION_MANAGER if MAINBOARD_HAS_CHROMEOS
14 select DISPLAY_FSP_VERSION_INFO
15 select DRIVERS_USB_ACPI
16 select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2
17 select FSP_COMPRESS_FSP_S_LZ4
18 select FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW
20 select FSP_MULTIPHASE_SI_INIT_RETURN_BROKEN
21 select FSP_STATUS_GLOBAL_RESET_REQUIRED_3
22 select FSP_USES_CB_DEBUG_EVENT_HANDLER
23 select FSPS_HAS_ARCH_UPD
24 select GENERIC_GPIO_LIB
25 select HAVE_DEBUG_RAM_SETUP
27 select HAVE_HYPERTHREADING
28 select INTEL_DESCRIPTOR_MODE_CAPABLE
29 select HAVE_SMI_HANDLER
30 select IDT_IN_EVERY_STAGE
32 select INTEL_GMA_ADD_VBT if RUN_FSP_GOP
33 select INTEL_GMA_OPREGION_2_1
34 select INTEL_GMA_VERSION_2
36 select MP_SERVICES_PPI_V2
37 select MRC_CACHE_USING_MRC_VERSION if SOC_INTEL_ALDERLAKE_PCH_N && !FSP_TYPE_IOT
38 select MRC_SETTINGS_PROTECT
39 select PARALLEL_MP_AP_WORK
40 select PLATFORM_USES_FSP2_2
41 select PMC_GLOBAL_RESET_ENABLE_LOCK
42 select SOC_INTEL_COMMON
43 select CPU_INTEL_COMMON_VOLTAGE
44 select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
45 select SOC_INTEL_COMMON_BASECODE
46 select SOC_INTEL_COMMON_BASECODE_RAMTOP
47 select SOC_INTEL_COMMON_BLOCK
48 select SOC_INTEL_COMMON_BLOCK_ACPI
49 select SOC_INTEL_COMMON_BLOCK_ACPI_CPPC
50 select SOC_INTEL_COMMON_BLOCK_ACPI_CPU_HYBRID
51 select SOC_INTEL_COMMON_BLOCK_ACPI_GPIO
52 select SOC_INTEL_COMMON_BLOCK_ACPI_LPIT
53 select SOC_INTEL_COMMON_BLOCK_ACPI_PEP
54 select SOC_INTEL_COMMON_BLOCK_ACPI_PEP_LPM_REQ
55 select SOC_INTEL_COMMON_BLOCK_CAR
56 select SOC_INTEL_COMMON_BLOCK_CHIP_CONFIG
57 select SOC_INTEL_COMMON_BLOCK_CNVI
58 select SOC_INTEL_COMMON_BLOCK_CPU
59 select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
60 select SOC_INTEL_COMMON_BLOCK_CPU_SMMRELOCATE
61 select SOC_INTEL_COMMON_BLOCK_DTT
62 select SOC_INTEL_COMMON_BLOCK_GPIO_DUAL_ROUTE_SUPPORT
63 select SOC_INTEL_COMMON_BLOCK_GPIO_LOCK_USING_SBI
64 select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2
65 select SOC_INTEL_COMMON_BLOCK_SCS if SOC_INTEL_ALDERLAKE_PCH_N
66 select SOC_INTEL_COMMON_BLOCK_HDA
67 select SOC_INTEL_COMMON_BLOCK_HECI1_DISABLE_USING_PMC_IPC
68 select SOC_INTEL_COMMON_BLOCK_IPU if !SOC_INTEL_ALDERLAKE_PCH_S
69 select SOC_INTEL_COMMON_BLOCK_IRQ
70 select SOC_INTEL_COMMON_BLOCK_ME_SPEC_16
71 select SOC_INTEL_COMMON_BLOCK_MEMINIT
72 select SOC_INTEL_COMMON_BLOCK_OC_WDT
73 select SOC_INTEL_COMMON_BLOCK_PCIE_RTD3
74 select SOC_INTEL_COMMON_BLOCK_PMC_EPOC
75 select SOC_INTEL_COMMON_BLOCK_POWER_LIMIT
76 select SOC_INTEL_COMMON_BLOCK_SA
77 select SOC_INTEL_COMMON_BLOCK_SMM
78 select SOC_INTEL_COMMON_BLOCK_SMM_IO_TRAP
79 select SOC_INTEL_COMMON_BLOCK_SMM_TCO_ENABLE
80 select SOC_INTEL_COMMON_BLOCK_THERMAL_BEHIND_PMC
81 select SOC_INTEL_COMMON_BLOCK_VTD
82 select SOC_INTEL_COMMON_BLOCK_XHCI
83 select SOC_INTEL_COMMON_BLOCK_XHCI_ELOG
84 select SOC_INTEL_COMMON_FSP_RESET
85 select SOC_INTEL_COMMON_PCH_CLIENT
86 select SOC_INTEL_COMMON_RESET
87 select SOC_INTEL_CSE_SEND_EOP_LATE if !BOARD_GOOGLE_BRYA_COMMON && !BOARD_GOOGLE_BROX_COMMON
88 select SOC_INTEL_CSE_SET_EOP
89 select SOC_INTEL_GFX_MBUS_JOIN if MAINBOARD_HAS_CHROMEOS && BMP_LOGO
90 select SOC_INTEL_MEM_MAPPED_PM_CONFIGURATION
91 select HAVE_INTEL_COMPLIANCE_TEST_MODE
93 select SUPPORT_CPU_UCODE_IN_CBFS
94 select TSC_MONOTONIC_TIMER
96 select UDK_202111_BINDING if SOC_INTEL_ALDERLAKE_PCH_N
97 select UDK_202005_BINDING if !SOC_INTEL_ALDERLAKE_PCH_N
99 select X86_CLFLUSH_CAR
101 Intel Alderlake support. Mainboards should specify the PCH
102 type using the `SOC_INTEL_ALDERLAKE_PCH_*` options instead
103 of selecting this option directly.
105 config SOC_INTEL_RAPTORLAKE
107 select X86_INIT_NEED_1_SIPI
109 Intel Raptorlake support. Mainboards using RPL should select
110 SOC_INTEL_RAPTORLAKE and SOC_INTEL_ALDERLAKE_PCH_* together.
112 config SOC_INTEL_TWINLAKE
114 select SOC_INTEL_ALDERLAKE_PCH_N
116 Intel Twinlake support. Mainboards using TWL should select
119 config SOC_INTEL_ALDERLAKE_PCH_N
121 select HAVE_INTEL_FSP_REPO if FSP_TYPE_IOT
122 select SOC_INTEL_ALDERLAKE
124 Choose this option if your mainboard has a PCH-N chipset.
126 config SOC_INTEL_ALDERLAKE_PCH_P
128 select SOC_INTEL_ALDERLAKE
129 select HAVE_INTEL_FSP_REPO
130 select PLATFORM_USES_FSP2_3
132 Choose this option if your mainboard has a PCH-P chipset.
134 config SOC_INTEL_ALDERLAKE_PCH_S
136 select SOC_INTEL_ALDERLAKE
137 select HAVE_INTEL_FSP_REPO
138 select PLATFORM_USES_FSP2_3
140 Choose this option if your mainboard has a PCH-S chipset.
142 config SOC_INTEL_RAPTORLAKE_PCH_S
144 select SOC_INTEL_ALDERLAKE_PCH_S
145 select SOC_INTEL_RAPTORLAKE
147 Choose this option if your mainboard has a Raptor Lake PCH-S chipset.
149 if SOC_INTEL_ALDERLAKE
154 config SOC_INTEL_ALDERLAKE_TCSS_USB4_SUPPORT
156 default n if SOC_INTEL_ALDERLAKE_PCH_S
158 select SOC_INTEL_COMMON_BLOCK_TCSS
159 select SOC_INTEL_COMMON_BLOCK_USB4
160 select SOC_INTEL_COMMON_BLOCK_USB4_PCIE
161 select SOC_INTEL_COMMON_BLOCK_USB4_XHCI
163 config ALDERLAKE_CONFIGURE_DESCRIPTOR
166 Select this if the descriptor needs to be updated at runtime. This
167 can only be done if the descriptor region is writable, and should only
168 be used as a temporary workaround.
170 config ALDERLAKE_CAR_ENHANCED_NEM
172 default y if !INTEL_CAR_NEM
173 select INTEL_CAR_NEM_ENHANCED
174 select CAR_HAS_SF_MASKS
175 select COS_MAPPED_TO_MSB
176 select CAR_HAS_L3_PROTECTED_WAYS
180 default 32 if SOC_INTEL_RAPTORLAKE
183 config DCACHE_RAM_BASE
186 config DCACHE_RAM_SIZE
189 The size of the cache-as-ram region required during bootblock
192 config DCACHE_BSP_STACK_SIZE
196 The amount of anticipated stack usage in CAR by bootblock and
197 other stages. In the case of FSP_USES_CB_STACK default value will be
198 sum of FSP-M stack requirement(512KiB) and CB romstage stack requirement
201 config FSP_TEMP_RAM_SIZE
205 The amount of anticipated heap usage in CAR by FSP.
206 Refer to Platform FSP integration guide document to know
207 the exact FSP requirement for Heap setup.
209 config CHIPSET_DEVICETREE
211 default "soc/intel/alderlake/chipset_pch_s.cb" if SOC_INTEL_ALDERLAKE_PCH_S
212 default "soc/intel/alderlake/chipset.cb"
214 config EXT_BIOS_WIN_BASE
217 config EXT_BIOS_WIN_SIZE
224 config IED_REGION_SIZE
228 config GFX_GMA_DEFAULT_MMIO
229 default 0xaf000000 if MAINBOARD_HAS_EARLY_LIBGFXINIT
231 # Intel recommends reserving the following resources per PCIe TBT root port,
232 # from ADL BIOS Spec (doc #627270) Revision 0.6.0 Section 7.2.5.1.5
234 # - 194 MiB Non-prefetchable memory
235 # - 448 MiB Prefetchable memory
236 if SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
238 config PCIEXP_HOTPLUG_BUSES
242 config PCIEXP_HOTPLUG_MEM
246 config PCIEXP_HOTPLUG_PREFETCH_MEM
250 endif # SOC_INTEL_ENABLE_USB4_PCIE_RESOURCES
252 config MAX_PCH_ROOT_PORTS
254 default 12 if SOC_INTEL_ALDERLAKE_PCH_N
255 default 12 if SOC_INTEL_ALDERLAKE_PCH_P
256 default 28 if SOC_INTEL_ALDERLAKE_PCH_S
258 config MAX_CPU_ROOT_PORTS
260 default 0 if SOC_INTEL_ALDERLAKE_PCH_N
261 default 3 if SOC_INTEL_ALDERLAKE_PCH_P || SOC_INTEL_ALDERLAKE_PCH_S
263 config MAX_TBT_ROOT_PORTS
265 default 0 if SOC_INTEL_ALDERLAKE_PCH_N || SOC_INTEL_ALDERLAKE_PCH_S
266 default 4 if SOC_INTEL_ALDERLAKE_PCH_P
268 config MAX_ROOT_PORTS
270 default MAX_PCH_ROOT_PORTS
272 config MAX_PCIE_CLOCK_SRC
274 default 5 if SOC_INTEL_ALDERLAKE_PCH_N
275 default 10 if SOC_INTEL_ALDERLAKE_PCH_P
276 default 18 if SOC_INTEL_ALDERLAKE_PCH_S
278 With external clock buffer, Alderlake-P can support up to three additional source clocks.
279 This is done by setting the corresponding GPIO pin(s) to native function to use as
280 SRCCLK_OE[6..9]. In addition, SRCCLK6 does not need to be set to free running clock.
281 If any of SRCCLKReq 6..9 is asserted, SRCCLK6 will be turned on.
283 config MAX_PCIE_CLOCK_REQ
285 default 5 if SOC_INTEL_ALDERLAKE_PCH_N
286 default 10 if SOC_INTEL_ALDERLAKE_PCH_P
287 default 18 if SOC_INTEL_ALDERLAKE_PCH_S
293 config SMM_RESERVED_SIZE
297 config PCR_BASE_ADDRESS
299 default 0xe0000000 if SOC_INTEL_ALDERLAKE_PCH_S
302 This option allows you to select MMIO Base Address of sideband bus.
304 config ECAM_MMCONF_BASE_ADDRESS
311 config SOC_INTEL_PERFORMANCE_CORE_SCALE_FACTOR
315 config SOC_INTEL_EFFICIENT_CORE_SCALE_FACTOR
319 config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
326 config SOC_INTEL_UFS_CLK_FREQ_HZ
330 config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
334 config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
338 config SOC_INTEL_I2C_DEV_MAX
342 config ENABLE_SATA_TEST_MODE
343 bool "Enable test mode for SATA margining"
346 Enable SATA test mode in FSP-S.
348 config SOC_INTEL_UART_DEV_MAX
352 config CONSOLE_UART_BASE_ADDRESS
355 depends on INTEL_LPSS_UART_FOR_CONSOLE
357 # Clock divider parameters for 115200 baud rate
358 # Baudrate = (UART source clock * M) /(N *16)
359 # ADL UART source clock: 100MHz
360 config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
364 config SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL
369 select VBOOT_MUST_REQUEST_DISPLAY
370 select VBOOT_STARTS_IN_BOOTBLOCK
371 select VBOOT_VBNV_CMOS
372 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
373 select VBOOT_X86_SHA256_ACCELERATION
375 # Default hash block size is 1KiB. Increasing it to 4KiB to improve
376 # hashing time as well as read time. This helps in improving
377 # boot time for Alder Lake.
378 config VBOOT_HASH_BLOCK_SIZE
385 config PRERAM_CBMEM_CONSOLE_SIZE
389 config CONSOLE_CBMEM_BUFFER_SIZE
391 default 0x100000 if BUILDING_WITH_DEBUG_FSP
398 This option allows to select FSP IOT type from 3rdparty/fsp repo
400 config FSP_HEADER_PATH
401 string "Location of FSP headers"
402 default "src/vendorcode/intel/fsp/fsp2_0/twinlake/" if SOC_INTEL_TWINLAKE && !FSP_USE_REPO
403 default "src/vendorcode/intel/fsp/fsp2_0/alderlake_n/" if SOC_INTEL_ALDERLAKE_PCH_N && !FSP_USE_REPO
404 default "src/vendorcode/intel/fsp/fsp2_0/raptorlake/" if SOC_INTEL_RAPTORLAKE && !FSP_USE_REPO
405 default "3rdparty/fsp/RaptorLakeFspBinPkg/IoT/RaptorLakeP/Include/" if SOC_INTEL_ALDERLAKE_PCH_P && SOC_INTEL_RAPTORLAKE && FSP_TYPE_IOT
406 default "3rdparty/fsp/RaptorLakeFspBinPkg/IoT/RaptorLakeS/Include/" if SOC_INTEL_RAPTORLAKE_PCH_S && FSP_TYPE_IOT
407 default "3rdparty/fsp/RaptorLakeFspBinPkg/Client/RaptorLakeP/Include/" if SOC_INTEL_ALDERLAKE_PCH_P && SOC_INTEL_RAPTORLAKE
408 default "3rdparty/fsp/RaptorLakeFspBinPkg/Client/RaptorLakeS/Include/" if SOC_INTEL_ALDERLAKE_PCH_S && SOC_INTEL_RAPTORLAKE
409 default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeP/Include/" if SOC_INTEL_ALDERLAKE_PCH_P && FSP_TYPE_IOT
410 default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeS/Include/" if SOC_INTEL_ALDERLAKE_PCH_S && FSP_TYPE_IOT
411 default "3rdparty/fsp/AlderLakeFspBinPkg/Client/AlderLakeP/Include/" if SOC_INTEL_ALDERLAKE_PCH_P && !SOC_INTEL_RAPTORLAKE
412 default "3rdparty/fsp/AlderLakeFspBinPkg/Client/AlderLakeS/Include/" if SOC_INTEL_ALDERLAKE_PCH_S
413 default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeN/Include/" if SOC_INTEL_ALDERLAKE_PCH_N && FSP_TYPE_IOT
414 default "src/vendorcode/intel/fsp/fsp2_0/alderlake/" if !FSP_USE_REPO
418 depends on FSP_USE_REPO
419 default "3rdparty/fsp/RaptorLakeFspBinPkg/IoT/RaptorLakeP/FSP.fd" if SOC_INTEL_ALDERLAKE_PCH_P && SOC_INTEL_RAPTORLAKE && FSP_TYPE_IOT
420 default "3rdparty/fsp/RaptorLakeFspBinPkg/IoT/RaptorLakeS/FSP.fd" if SOC_INTEL_RAPTORLAKE_PCH_S && FSP_TYPE_IOT
421 default "3rdparty/fsp/RaptorLakeFspBinPkg/Client/RaptorLakeP/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_P && SOC_INTEL_RAPTORLAKE
422 default "3rdparty/fsp/RaptorLakeFspBinPkg/Client/RaptorLakeS/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_S && SOC_INTEL_RAPTORLAKE
423 default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeP/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_P && FSP_TYPE_IOT
424 default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeS/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_S && FSP_TYPE_IOT
425 default "3rdparty/fsp/AlderLakeFspBinPkg/Client/AlderLakeP/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_P && !SOC_INTEL_RAPTORLAKE
426 default "3rdparty/fsp/AlderLakeFspBinPkg/Client/AlderLakeS/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_S
427 default "3rdparty/fsp/AlderLakeFspBinPkg/IoT/AlderLakeN/Fsp.fd" if SOC_INTEL_ALDERLAKE_PCH_N && FSP_TYPE_IOT
429 config SOC_INTEL_ALDERLAKE_DEBUG_CONSENT
430 int "Debug Consent for ADL"
431 # USB DBC is more common for developers so make this default to 2 if
432 # SOC_INTEL_DEBUG_CONSENT=y
433 default 2 if SOC_INTEL_DEBUG_CONSENT
436 This is to control debug interface on SOC.
437 Setting non-zero value will allow to use DBC or DCI to debug SOC.
438 PlatformDebugConsent in FspmUpd.h has the details.
440 Desired platform debug type are
441 0:Disabled, 2:Enabled (All Probes+TraceHub), 6:Enable (Low Power),
444 config DATA_BUS_WIDTH
448 config DIMMS_PER_CHANNEL
452 config MRC_CHANNEL_WIDTH
456 config ALDERLAKE_ENABLE_SOC_WORKAROUND
459 select SOC_INTEL_UFS_LTR_DISQUALIFY
460 select SOC_INTEL_UFS_OCP_TIMER_DISABLE
462 Selects the workarounds applicable for Alder Lake SoC.
464 config USE_UNIFIED_AP_FIRMWARE_FOR_UFS_AND_NON_UFS
467 Alder Lake SoC based OEM board design with UFS and non-UFS planned to use an
468 unified AP firmware which demanded to have a unified descriptor. It means UFS
469 controller needs to default fuse enabled to let UFS SKU to boot.
471 On such design with non-UFS SKU is exhibiting S0ix failure due to UFS remain
472 enabled in the strap although FSP-S is making the UFS controller function
473 disabled. The potential root cause of this behaviour is although the UFS
474 controller is function disabled but MPHY clock is still in active state.
476 A possible solution to this problem is to issue a warm reboot (if boot path is
477 S5->S0 or G3->S0) after disabling the UFS and let PMC to read the function
478 disable state of the UFS for disabling the MPHY clock.
480 Mainboard users with such board design where OEM would like to use an unified AP
481 firmware to support both UFS and non-UFS sku booting might need to choose this
482 config to allow disabling UFS while booting on the non-UFS SKU.
483 Note: selection of this config would introduce an additional warm reset in
484 cold-reset scenarios due to function disabling of the UFS controller.
488 config CSE_BPDT_VERSION
493 config SI_DESC_REGION
494 string "Descriptor Region name"
497 Name of Descriptor Region in the FMAP
499 config SI_DESC_REGION_SZ
503 Size of Descriptor Region in the FMAP
505 config BUILDING_WITH_DEBUG_FSP
506 bool "Debug FSP is used for the build"
509 Set this option if debug build of FSP is used.
511 config INTEL_GMA_BCLV_OFFSET
514 config INTEL_GMA_BCLV_WIDTH
517 config INTEL_GMA_BCLM_OFFSET
520 config INTEL_GMA_BCLM_WIDTH
523 config FSP_PUBLISH_MBP_HOB
525 default n if CHROMEOS && (SOC_INTEL_ALDERLAKE_PCH_N)
528 This is to control creation of ME_BIOS_PAYLOAD_HOB (MBP HOB) by FSP.
529 Disabling it for the platforms, which do not use MBP HOB, can improve the boot time.
531 Note: It cannot be disabled for ADL-P based platforms because ADL-P FSP relies on
532 MBP HOB for ChipsetInit version for ChipsetInit sync. As ChipsetInit sync doesn't
533 occur if no MBP HOB, so it results S0ix issue. This limitation is addressed in the
534 later platforms so creation of MBP HOB can be skipped for ADL-N based platforms.
536 config INCLUDE_HSPHY_IN_FMAP
537 bool "Include PCIe 5.0 HSPHY firmware in flash"
540 Set this option to cache the PCIe 5.0 HSPHY firmware after it is
541 fetched from ME during boot. By default coreboot will fetch the
542 HSPHY FW from ME, but if for some reason ME is not enabled or
543 visible, the cached blob will be attempted to initialize the PCIe
544 5.0 root port. Select it if ME is soft disabled or disabled with HAP
545 bit. If possible, the HSPHY FW will be saved to flashmap region if
546 the firmware file is not provided directly in the HSPHY_FW_FILE
550 string "HSPHY firmware file path"
551 depends on INCLUDE_HSPHY_IN_FMAP
553 Path pointing to the PCIe 5.0 HSPHY file. The file can be extracted
554 from full firmware image or ME region using UEFITool. If left empty,
555 HSPHY loading procedure will try to save the firmware to the flashmap
556 region if fetched successfully from ME.
558 config HSPHY_FW_MAX_SIZE
562 config HAVE_BMP_LOGO_COMPRESS_LZMA
565 config SOC_INTEL_COMMON_BLOCK_ACPI_SLP_S0_FREQ_HZ
568 slp_s0_residency granularity in 122us ticks (i.e. ~8.2KHz).