1 ## SPDX-License-Identifier: GPL-2.0-only
3 config SOC_INTEL_APOLLOLAKE
6 select ACPI_INTEL_HARDWARE_SLEEP_VALUES
7 select ACPI_NO_PCAT_8259
9 select BOOT_DEVICE_SUPPORTS_WRITES
10 # CPU specific options
11 select CPU_INTEL_COMMON
12 select CPU_SUPPORTS_PM_TIMER_EMULATION
13 select PCR_COMMON_IOSF_1_0
15 select SUPPORT_CPU_UCODE_IN_CBFS
18 select SOC_INTEL_COMMON_NHLT
20 select CACHE_MRC_SETTINGS
21 select EDK2_CPU_TIMER_LIB if PAYLOAD_EDK2
22 select FAST_SPI_GENERATE_SSDT
23 select FSP_PLATFORM_MEMORY_SETTINGS_VERSIONS
24 select FSP_STATUS_GLOBAL_RESET_REQUIRED_5
25 select GENERIC_GPIO_LIB
26 select HAVE_ASAN_IN_ROMSTAGE
27 select HAVE_CF9_RESET_PREPARE
28 select HAVE_DPTF_EISA_HID
30 select HAVE_FSP_LOGO_SUPPORT
31 select HAVE_INTEL_FSP_REPO if !SOC_INTEL_GEMINILAKE
32 select HAVE_SMI_HANDLER
33 select INTEL_DESCRIPTOR_MODE_CAPABLE
35 select INTEL_GMA_ADD_VBT if RUN_FSP_GOP
36 select INTEL_GMA_SWSMISCI
37 select MRC_SETTINGS_PROTECT
38 select MRC_SETTINGS_VARIABLE_DATA
39 select NO_PM_ACPI_TIMER
40 select NO_UART_ON_SUPERIO
41 select NO_XIP_EARLY_STAGES
42 select FSP_COMPRESS_FSP_M_LZ4
43 select PARALLEL_MP_AP_WORK
45 select PCIEXP_COMMON_CLOCK
47 select PCIEXP_L1_SUB_STATE
48 select PERIODIC_SMI_RATE_SELECTION_IN_GEN_PMCON_B
49 select PLATFORM_USES_FSP2_0
50 select PMC_INVALID_READ_AFTER_WRITE
51 select PMC_GLOBAL_RESET_ENABLE_LOCK
54 select SOC_INTEL_COMMON
55 select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
56 select SOC_INTEL_COMMON_BLOCK
57 select SOC_INTEL_COMMON_BLOCK_POWER_LIMIT
58 select SOC_INTEL_COMMON_BLOCK_ACPI
59 select SOC_INTEL_COMMON_BLOCK_CAR
60 select SOC_INTEL_COMMON_BLOCK_CPU
61 select SOC_INTEL_COMMON_BLOCK_GPIO_DUAL_ROUTE_SUPPORT
62 select SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES
63 select SOC_INTEL_COMMON_BLOCK_GPIO_IOSTANDBY
64 select SOC_INTEL_COMMON_BLOCK_HECI1_DISABLE_USING_PCR
65 select SOC_INTEL_COMMON_PCH_CLIENT
66 select SOC_INTEL_COMMON_BLOCK_PMC_DISCOVERABLE
67 select SOC_INTEL_COMMON_BLOCK_SRAM
68 select SOC_INTEL_COMMON_BLOCK_SA
69 select SOC_INTEL_COMMON_BLOCK_SCS
70 select SOC_INTEL_COMMON_BLOCK_XHCI_ELOG
71 select SOC_INTEL_COMMON_BLOCK_SMM
72 select SOC_INTEL_COMMON_FSP_RESET
73 select SOC_INTEL_COMMON_RESET
74 select SOC_INTEL_INTEGRATED_SOUTHCLUSTER
75 select SOC_INTEL_MEM_MAPPED_PM_CONFIGURATION
76 select SOC_INTEL_NO_BOOTGUARD_MSR
77 select TSC_MONOTONIC_TIMER
79 select UDK_2017_BINDING
80 select USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
81 select USE_FSP_NOTIFY_PHASE_READY_TO_BOOT
82 select USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE
83 # This SoC does not map SPI flash like many previous SoC. Therefore we
84 # provide a custom media driver that facilitates mapping
85 select X86_CUSTOM_BOOTMEDIA
87 Intel Apollolake support
89 config SOC_INTEL_GEMINILAKE
92 select SOC_INTEL_APOLLOLAKE
93 select SOC_INTEL_COMMON_BLOCK_CNVI
94 select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
95 select SOC_INTEL_COMMON_BLOCK_SGX
96 select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2
97 select IDT_IN_EVERY_STAGE
98 select PAGING_IN_CACHE_AS_RAM
101 Intel Geminilake support
103 if SOC_INTEL_APOLLOLAKE
105 config USE_LEGACY_8254_TIMER
110 default y if BOOT_DEVICE_MEMORY_MAPPED
112 Tell CSE we do not need to use Ring Buffer Protocol (RBP) to fetch
113 firmware for us if we are using memory-mapped SPI. This lets CSE
114 state machine transition to next boot state, so that it can function
117 config DISABLE_HECI1_AT_PRE_BOOT
120 config MAX_HECI_DEVICES
129 select VBOOT_SEPARATE_VERSTAGE
130 select VBOOT_MUST_REQUEST_DISPLAY
131 select VBOOT_STARTS_IN_BOOTBLOCK
132 select VBOOT_VBNV_CMOS if !VBOOT_VBNV_FLASH
133 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH if !VBOOT_VBNV_FLASH
135 config TPM_ON_FAST_SPI
138 depends on MEMORY_MAPPED_TPM
140 TPM part is conntected on Fast SPI interface and is mapped to the
141 linear address space.
143 config PCR_BASE_ADDRESS
147 This option allows you to select MMIO Base Address of sideband bus.
149 config DCACHE_RAM_BASE
153 config DCACHE_RAM_SIZE
155 default 0x100000 if SOC_INTEL_GEMINILAKE
158 The size of the cache-as-ram region required during bootblock
161 config DCACHE_BSP_STACK_SIZE
165 The amount of anticipated stack usage in CAR by bootblock and
168 config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
175 config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
179 # 32KiB bootblock is all that is mapped in by the CSE at top of 4GiB.
180 config C_ENV_BOOTBLOCK_SIZE
188 The base address (in CAR) where romstage should be linked
194 The base address (in CAR) where verstage should be linked
196 config FSP_HEADER_PATH
197 default "src/vendorcode/intel/fsp/fsp2_0/geminilake/2.2.0.0" if VENDOR_GOOGLE && SOC_INTEL_GEMINILAKE
198 default "src/vendorcode/intel/fsp/fsp2_0/geminilake/2.2.3.1" if SOC_INTEL_GEMINILAKE
199 default "3rdparty/fsp/ApolloLakeFspBinPkg/Include/"
202 default "3rdparty/fsp/ApolloLakeFspBinPkg/FspBin/Fsp.fd"
208 The address FSP-M will be relocated to during build time
211 bool "Write contents for logical boot partition 2."
214 Write the contents from a file into the logical boot partition 2
215 region defined by LBP2_FMAP_NAME.
217 config LBP2_FMAP_NAME
218 string "Name of FMAP region to put logical boot partition 2"
222 Name of FMAP region to write logical boot partition 2 data.
224 config LBP2_FROM_IFWI
225 bool "Extract the LBP2 from the IFWI binary"
229 The Logical Boot Partition will be automatically extracted
230 from the supplied IFWI binary
232 config LBP2_FILE_NAME
233 string "Path of file to write to logical boot partition 2 region"
234 depends on NEED_LBP2 && !LBP2_FROM_IFWI
235 default "3rdparty/blobs/mainboard/\$(CONFIG_MAINBOARD_DIR)/lbp2.bin"
237 Name of file to store in the logical boot partition 2 region.
240 bool "Write content into IFWI region"
243 Write the content from a file into IFWI region defined by
246 config IFWI_FMAP_NAME
247 string "Name of FMAP region to pull IFWI into"
251 Name of FMAP region to write IFWI.
253 config IFWI_FILE_NAME
254 string "Path of file to write to IFWI region"
256 default "3rdparty/blobs/mainboard/\$(CONFIG_MAINBOARD_DIR)/ifwi.bin"
258 Name of file to store in the IFWI region.
260 config MAX_ROOT_PORTS
264 config NHLT_DMIC_1CH_16B
269 Include DSP firmware settings for 1 channel 16B DMIC array.
271 config NHLT_DMIC_2CH_16B
276 Include DSP firmware settings for 2 channel 16B DMIC array.
278 config NHLT_DMIC_4CH_16B
283 Include DSP firmware settings for 4 channel 16B DMIC array.
290 Include DSP firmware settings for headset codec.
297 Include DSP firmware settings for headset codec.
304 Include DSP firmware settings for headset codec.
306 # Each bit in QOS mask controls this many bytes. This is calculated as:
307 # (CACHE_WAYS / CACHE_BITS_PER_MASK) * CACHE_LINE_SIZE * CACHE_SETS
310 config CACHE_QOS_SIZE_PER_BIT
312 default 0x20000 # 128 KB
316 default 0x400000 if SOC_INTEL_GEMINILAKE
319 config SMM_RESERVED_SIZE
323 config CHIPSET_DEVICETREE
325 default "soc/intel/apollolake/chipset_glk.cb" if SOC_INTEL_GEMINILAKE
326 default "soc/intel/apollolake/chipset_apl.cb"
330 default "glk" if SOC_INTEL_GEMINILAKE
337 config CONSOLE_UART_BASE_ADDRESS
340 depends on INTEL_LPSS_UART_FOR_CONSOLE
342 # M and N divisor values for clock frequency configuration.
343 # These values get us a 1.836 MHz clock (ideally we want 1.843 MHz)
344 config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
348 config SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL
356 Use eSPI bus instead of LPC
358 config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
362 config SOC_INTEL_I2C_DEV_MAX
366 # Don't include the early page tables in RW_A or RW_B cbfs regions
367 config RO_REGION_ONLY
371 config INTEL_GMA_PANEL_2
375 config INTEL_GMA_BCLV_OFFSET
376 default 0xc8358 if INTEL_GMA_PANEL_2
379 config INTEL_GMA_BCLV_WIDTH
382 config INTEL_GMA_BCLM_OFFSET
383 default 0xc8354 if INTEL_GMA_PANEL_2
386 config INTEL_GMA_BCLM_WIDTH
389 config BOOTBLOCK_IN_CBFS
393 config HAVE_PAM0_REGISTER
397 config DOMAIN_RESOURCE_32BIT_LIMIT
398 default PCR_BASE_ADDRESS