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 GENERIC_GPIO_LIB
25 select HAVE_ASAN_IN_ROMSTAGE
26 select HAVE_CF9_RESET_PREPARE
27 select HAVE_DPTF_EISA_HID
29 select HAVE_FSP_LOGO_SUPPORT
30 select HAVE_INTEL_FSP_REPO if !SOC_INTEL_GEMINILAKE
31 select HAVE_SMI_HANDLER
32 select INTEL_DESCRIPTOR_MODE_CAPABLE
34 select INTEL_GMA_ADD_VBT if RUN_FSP_GOP
35 select INTEL_GMA_SWSMISCI
36 select MRC_SETTINGS_PROTECT
37 select MRC_SETTINGS_VARIABLE_DATA
38 select NO_PM_ACPI_TIMER
39 select NO_UART_ON_SUPERIO
40 select NO_XIP_EARLY_STAGES
41 select FSP_COMPRESS_FSP_M_LZ4
42 select PARALLEL_MP_AP_WORK
44 select PCIEXP_COMMON_CLOCK
46 select PCIEXP_L1_SUB_STATE
47 select PERIODIC_SMI_RATE_SELECTION_IN_GEN_PMCON_B
48 select PLATFORM_USES_FSP2_0
49 select PMC_INVALID_READ_AFTER_WRITE
50 select PMC_GLOBAL_RESET_ENABLE_LOCK
53 select SOC_INTEL_COMMON
54 select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
55 select SOC_INTEL_COMMON_BLOCK
56 select SOC_INTEL_COMMON_BLOCK_POWER_LIMIT
57 select SOC_INTEL_COMMON_BLOCK_ACPI
58 select SOC_INTEL_COMMON_BLOCK_CAR
59 select SOC_INTEL_COMMON_BLOCK_CPU
60 select SOC_INTEL_COMMON_BLOCK_GPIO_DUAL_ROUTE_SUPPORT
61 select SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES
62 select SOC_INTEL_COMMON_BLOCK_GPIO_IOSTANDBY
63 select SOC_INTEL_COMMON_BLOCK_HECI1_DISABLE_USING_PCR
64 select SOC_INTEL_COMMON_PCH_CLIENT
65 select SOC_INTEL_COMMON_BLOCK_PMC_DISCOVERABLE
66 select SOC_INTEL_COMMON_BLOCK_SRAM
67 select SOC_INTEL_COMMON_BLOCK_SA
68 select SOC_INTEL_COMMON_BLOCK_SCS
69 select SOC_INTEL_COMMON_BLOCK_XHCI_ELOG
70 select SOC_INTEL_COMMON_BLOCK_SMM
71 select SOC_INTEL_COMMON_FSP_RESET
72 select SOC_INTEL_COMMON_RESET
73 select SOC_INTEL_INTEGRATED_SOUTHCLUSTER
74 select SOC_INTEL_MEM_MAPPED_PM_CONFIGURATION
75 select SOC_INTEL_NO_BOOTGUARD_MSR
76 select TSC_MONOTONIC_TIMER
78 select UDK_2017_BINDING
79 select USE_FSP_NOTIFY_PHASE_POST_PCI_ENUM
80 select USE_FSP_NOTIFY_PHASE_READY_TO_BOOT
81 select USE_FSP_NOTIFY_PHASE_END_OF_FIRMWARE
82 # This SoC does not map SPI flash like many previous SoC. Therefore we
83 # provide a custom media driver that facilitates mapping
84 select X86_CUSTOM_BOOTMEDIA
86 Intel Apollolake support
88 config SOC_INTEL_GEMINILAKE
91 select SOC_INTEL_APOLLOLAKE
92 select SOC_INTEL_COMMON_BLOCK_CNVI
93 select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
94 select SOC_INTEL_COMMON_BLOCK_SGX
95 select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2
96 select IDT_IN_EVERY_STAGE
97 select PAGING_IN_CACHE_AS_RAM
100 Intel Geminilake support
102 if SOC_INTEL_APOLLOLAKE
104 config FSP_STATUS_GLOBAL_RESET
108 config USE_LEGACY_8254_TIMER
113 default y if BOOT_DEVICE_MEMORY_MAPPED
115 Tell CSE we do not need to use Ring Buffer Protocol (RBP) to fetch
116 firmware for us if we are using memory-mapped SPI. This lets CSE
117 state machine transition to next boot state, so that it can function
120 config DISABLE_HECI1_AT_PRE_BOOT
123 config MAX_HECI_DEVICES
132 select VBOOT_SEPARATE_VERSTAGE
133 select VBOOT_MUST_REQUEST_DISPLAY
134 select VBOOT_STARTS_IN_BOOTBLOCK
135 select VBOOT_VBNV_CMOS if !VBOOT_VBNV_FLASH
136 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH if !VBOOT_VBNV_FLASH
138 config TPM_ON_FAST_SPI
141 depends on MEMORY_MAPPED_TPM
143 TPM part is conntected on Fast SPI interface and is mapped to the
144 linear address space.
146 config PCR_BASE_ADDRESS
150 This option allows you to select MMIO Base Address of sideband bus.
152 config DCACHE_RAM_BASE
156 config DCACHE_RAM_SIZE
158 default 0x100000 if SOC_INTEL_GEMINILAKE
161 The size of the cache-as-ram region required during bootblock
164 config DCACHE_BSP_STACK_SIZE
168 The amount of anticipated stack usage in CAR by bootblock and
171 config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
178 config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
182 # 32KiB bootblock is all that is mapped in by the CSE at top of 4GiB.
183 config C_ENV_BOOTBLOCK_SIZE
191 The base address (in CAR) where romstage should be linked
197 The base address (in CAR) where verstage should be linked
199 config FSP_HEADER_PATH
200 default "src/vendorcode/intel/fsp/fsp2_0/geminilake/2.2.0.0" if VENDOR_GOOGLE && SOC_INTEL_GEMINILAKE
201 default "src/vendorcode/intel/fsp/fsp2_0/geminilake/2.2.3.1" if SOC_INTEL_GEMINILAKE
202 default "3rdparty/fsp/ApolloLakeFspBinPkg/Include/"
205 default "3rdparty/fsp/ApolloLakeFspBinPkg/FspBin/Fsp.fd"
211 The address FSP-M will be relocated to during build time
214 bool "Write contents for logical boot partition 2."
217 Write the contents from a file into the logical boot partition 2
218 region defined by LBP2_FMAP_NAME.
220 config LBP2_FMAP_NAME
221 string "Name of FMAP region to put logical boot partition 2"
225 Name of FMAP region to write logical boot partition 2 data.
227 config LBP2_FROM_IFWI
228 bool "Extract the LBP2 from the IFWI binary"
232 The Logical Boot Partition will be automatically extracted
233 from the supplied IFWI binary
235 config LBP2_FILE_NAME
236 string "Path of file to write to logical boot partition 2 region"
237 depends on NEED_LBP2 && !LBP2_FROM_IFWI
238 default "3rdparty/blobs/mainboard/\$(CONFIG_MAINBOARD_DIR)/lbp2.bin"
240 Name of file to store in the logical boot partition 2 region.
243 bool "Write content into IFWI region"
246 Write the content from a file into IFWI region defined by
249 config IFWI_FMAP_NAME
250 string "Name of FMAP region to pull IFWI into"
254 Name of FMAP region to write IFWI.
256 config IFWI_FILE_NAME
257 string "Path of file to write to IFWI region"
259 default "3rdparty/blobs/mainboard/\$(CONFIG_MAINBOARD_DIR)/ifwi.bin"
261 Name of file to store in the IFWI region.
263 config MAX_ROOT_PORTS
267 config NHLT_DMIC_1CH_16B
272 Include DSP firmware settings for 1 channel 16B DMIC array.
274 config NHLT_DMIC_2CH_16B
279 Include DSP firmware settings for 2 channel 16B DMIC array.
281 config NHLT_DMIC_4CH_16B
286 Include DSP firmware settings for 4 channel 16B DMIC array.
293 Include DSP firmware settings for headset codec.
300 Include DSP firmware settings for headset codec.
307 Include DSP firmware settings for headset codec.
309 # Each bit in QOS mask controls this many bytes. This is calculated as:
310 # (CACHE_WAYS / CACHE_BITS_PER_MASK) * CACHE_LINE_SIZE * CACHE_SETS
313 config CACHE_QOS_SIZE_PER_BIT
315 default 0x20000 # 128 KB
319 default 0x400000 if SOC_INTEL_GEMINILAKE
322 config SMM_RESERVED_SIZE
326 config CHIPSET_DEVICETREE
328 default "soc/intel/apollolake/chipset_glk.cb" if SOC_INTEL_GEMINILAKE
329 default "soc/intel/apollolake/chipset_apl.cb"
333 default "glk" if SOC_INTEL_GEMINILAKE
340 config CONSOLE_UART_BASE_ADDRESS
343 depends on INTEL_LPSS_UART_FOR_CONSOLE
345 # M and N divisor values for clock frequency configuration.
346 # These values get us a 1.836 MHz clock (ideally we want 1.843 MHz)
347 config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
351 config SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL
359 Use eSPI bus instead of LPC
361 config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
365 config SOC_INTEL_I2C_DEV_MAX
369 # Don't include the early page tables in RW_A or RW_B cbfs regions
370 config RO_REGION_ONLY
374 config INTEL_GMA_PANEL_2
378 config INTEL_GMA_BCLV_OFFSET
379 default 0xc8358 if INTEL_GMA_PANEL_2
382 config INTEL_GMA_BCLV_WIDTH
385 config INTEL_GMA_BCLM_OFFSET
386 default 0xc8354 if INTEL_GMA_PANEL_2
389 config INTEL_GMA_BCLM_WIDTH
392 config BOOTBLOCK_IN_CBFS
396 config HAVE_PAM0_REGISTER
400 config DOMAIN_RESOURCE_32BIT_LIMIT
401 default PCR_BASE_ADDRESS