blob: f568799026aec65260ac53a85c41307f21bea4e2 [file] [log] [blame]
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -07001config SOC_INTEL_APOLLOLAKE
2 bool
3 help
4 Intel Apollolake support
5
Hannah Williams3ff14a02017-05-05 16:30:22 -07006config SOC_INTEL_GLK
7 bool
8 default n
9 select SOC_INTEL_APOLLOLAKE
Pratik Prajapatidc194e22017-08-29 14:27:07 -070010 select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
11 select SOC_INTEL_COMMON_BLOCK_SGX
Hannah Williams3ff14a02017-05-05 16:30:22 -070012 help
13 Intel GLK support
14
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070015if SOC_INTEL_APOLLOLAKE
16
17config CPU_SPECIFIC_OPTIONS
18 def_bool y
Aaron Durbined35b7c2016-07-13 23:17:38 -050019 select ACPI_INTEL_HARDWARE_SLEEP_VALUES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070020 select ARCH_BOOTBLOCK_X86_32
21 select ARCH_RAMSTAGE_X86_32
22 select ARCH_ROMSTAGE_X86_32
23 select ARCH_VERSTAGE_X86_32
Aaron Durbina9e03a32016-09-16 19:25:43 -050024 select BOOTBLOCK_CONSOLE
Aaron Durbin7b2c7812016-08-11 23:51:42 -050025 select BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY if BOOT_DEVICE_SPI_FLASH
Aaron Durbine8e118d2016-08-12 15:00:10 -050026 select BOOT_DEVICE_SUPPORTS_WRITES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070027 # CPU specific options
28 select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
29 select IOAPIC
Subrata Banikccd87002017-03-08 17:55:26 +053030 select PCR_COMMON_IOSF_1_0
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070031 select SMP
32 select SSE2
33 select SUPPORT_CPU_UCODE_IN_CBFS
Saurabh Satija734aa872016-06-21 14:22:16 -070034 # Audio options
35 select ACPI_NHLT
36 select SOC_INTEL_COMMON_NHLT
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070037 # Misc options
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -070038 select C_ENVIRONMENT_BOOTBLOCK
Brandon Breitenstein135eae92016-09-30 13:57:12 -070039 select CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM if RELOCATABLE_RAMSTAGE
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070040 select COLLECT_TIMESTAMPS
Aaron Durbinc3ee3f62016-05-11 10:35:49 -050041 select COMMON_FADT
Ravi Sarawadia3d13fbd62017-04-25 19:30:58 -070042 select FSP_PLATFORM_MEMORY_SETTINGS_VERSIONS
Duncan Lauried25dd992016-06-29 10:47:48 -070043 select GENERIC_GPIO_LIB
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070044 select HAVE_INTEL_FIRMWARE
Hannah Williamsd9c84ca2016-05-13 00:47:14 -070045 select HAVE_SMI_HANDLER
Furquan Shaikhffb3a2d2016-10-24 15:28:23 -070046 select MRC_SETTINGS_PROTECT
Aaron Durbinf5ff8542016-05-05 10:38:03 -050047 select NO_FIXED_XIP_ROM_SIZE
Furquan Shaikh94b18a12016-05-04 23:25:16 -070048 select NO_XIP_EARLY_STAGES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070049 select PARALLEL_MP
Andrey Petrova697c192016-12-07 10:47:46 -080050 select PARALLEL_MP_AP_WORK
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070051 select PCIEXP_ASPM
52 select PCIEXP_COMMON_CLOCK
53 select PCIEXP_CLK_PM
54 select PCIEXP_L1_SUB_STATE
Subrata Banik7952e282017-03-14 18:26:27 +053055 select PCIEX_LENGTH_256MB
Aaron Durbin79587ed2016-09-16 16:30:09 -050056 select POSTCAR_CONSOLE
Aaron Durbineebe0e02016-03-18 11:19:38 -050057 select POSTCAR_STAGE
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070058 select REG_SCRIPT
59 select RELOCATABLE_RAMSTAGE # Build fails if this is not selected
Aaron Durbin16246ea2016-08-05 21:23:37 -050060 select RTC
Hannah Williamsd9c84ca2016-05-13 00:47:14 -070061 select SMM_TSEG
Subrata Banik208587e2017-05-19 18:38:24 +053062 select SA_ENABLE_IMR
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070063 select SOC_INTEL_COMMON
Shaunak Saha60b46182016-08-02 17:25:13 -070064 select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
Subrata Banikfc4c7d82017-03-03 18:23:59 +053065 select SOC_INTEL_COMMON_BLOCK
Shaunak Sahabd427802017-07-18 00:19:33 -070066 select SOC_INTEL_COMMON_BLOCK_ACPI
Barnali Sarkar66fe0c42017-05-23 18:17:14 +053067 select SOC_INTEL_COMMON_BLOCK_CPU
Lijian Zhao44e2abf2017-10-30 14:27:52 -070068 select SOC_INTEL_COMMON_BLOCK_DSP
Barnali Sarkare70142c2017-03-28 16:32:33 +053069 select SOC_INTEL_COMMON_BLOCK_FAST_SPI
Hannah Williams12bed182017-05-26 20:31:15 -070070 select SOC_INTEL_COMMON_BLOCK_GPIO
Aaron Durbinaa2504a2017-07-14 16:53:49 -060071 select SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES
Hannah Williams12bed182017-05-26 20:31:15 -070072 select SOC_INTEL_COMMON_BLOCK_GPIO_ITSS_POL_CFG
73 select SOC_INTEL_COMMON_BLOCK_GPIO_IOSTANDBY
Bora Guvendik33117ec2017-04-10 15:49:02 -070074 select SOC_INTEL_COMMON_BLOCK_ITSS
Rizwan Qureshiae6a4b62017-04-26 21:06:35 +053075 select SOC_INTEL_COMMON_BLOCK_I2C
Ravi Sarawadiefa606b2017-08-04 16:26:09 -070076 select SOC_INTEL_COMMON_BLOCK_LPC
Aamir Bohra138b2a02017-04-06 20:21:58 +053077 select SOC_INTEL_COMMON_BLOCK_LPSS
Subrata Banikccd87002017-03-08 17:55:26 +053078 select SOC_INTEL_COMMON_BLOCK_PCR
Lijian Zhao8aba24d2017-10-26 12:16:53 -070079 select SOC_INTEL_COMMON_BLOCK_P2SB
Shaunak Saha93cdc8b2017-04-18 15:42:09 -070080 select SOC_INTEL_COMMON_BLOCK_PMC
Subrata Banik8bf69d32017-03-09 13:43:54 +053081 select SOC_INTEL_COMMON_BLOCK_RTC
Aamir Bohrabf6dfae2017-04-07 21:10:27 +053082 select SOC_INTEL_COMMON_BLOCK_SA
Bora Guvendik65623b72017-05-08 16:29:17 -070083 select SOC_INTEL_COMMON_BLOCK_SCS
Aamir Bohra4c9cf302017-05-25 14:38:37 +053084 select SOC_INTEL_COMMON_BLOCK_TIMER
Aamir Bohrabf6dfae2017-04-07 21:10:27 +053085 select SOC_INTEL_COMMON_BLOCK_UART
Subrata Banik4aaa7e32017-04-24 11:54:34 +053086 select SOC_INTEL_COMMON_BLOCK_XDCI
Subrata Banik73b17972017-04-24 10:25:56 +053087 select SOC_INTEL_COMMON_BLOCK_XHCI
Brandon Breitensteina86d1b82017-06-08 17:32:02 -070088 select SOC_INTEL_COMMON_BLOCK_SMM
Subrata Banik15129b42017-11-07 17:50:48 +053089 select SOC_INTEL_COMMON_BLOCK_SPI
Furquan Shaikhd0c000522016-11-21 09:19:53 -080090 select SOC_INTEL_COMMON_SPI_FLASH_PROTECT
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070091 select UDELAY_TSC
Andrey Petrov87fb1a62016-02-10 17:47:03 -080092 select TSC_CONSTANT_RATE
Hannah Williamsb13d4542016-03-14 17:38:51 -070093 select TSC_MONOTONIC_TIMER
94 select HAVE_MONOTONIC_TIMER
Andrey Petrov0d187912016-02-25 18:39:38 -080095 select PLATFORM_USES_FSP2_0
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070096 select HAVE_HARD_RESET
97 select SOC_INTEL_COMMON
Andrey Petrov868679f2016-05-12 19:11:48 -070098 select SOC_INTEL_COMMON_GFX_OPREGION
Andrey Petrovd8db26d2017-03-06 14:47:05 -080099 select SOC_INTEL_COMMON_BLOCK
100 select SOC_INTEL_COMMON_BLOCK_CSE
Patrick Rudolph4c170982017-07-17 19:53:56 +0200101 select INTEL_GMA_ADD_VBT_DATA_FILE if RUN_FSP_GOP
Nico Huber2e7f6cc2017-05-22 15:58:03 +0200102 select HAVE_FSP_GOP
Zhao, Lijiand8d42c22016-03-14 14:19:22 -0700103
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -0700104config CHROMEOS
105 select CHROMEOS_RAMOOPS_DYNAMIC
Julius Werner58c39382017-02-13 17:53:29 -0800106
107config VBOOT
108 select VBOOT_SEPARATE_VERSTAGE
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -0700109 select VBOOT_OPROM_MATTERS
Furquan Shaikh7c7b2912016-07-22 09:02:35 -0700110 select VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -0700111 select VBOOT_STARTS_IN_BOOTBLOCK
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -0700112 select VBOOT_VBNV_CMOS
113 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -0700114
Aaron Durbin80a3df22016-04-27 23:05:52 -0500115config TPM_ON_FAST_SPI
116 bool
117 default n
118 select LPC_TPM
119 help
120 TPM part is conntected on Fast SPI interface, but the LPC MMIO
121 TPM transactions are decoded and serialized over the SPI interface.
122
Zhao, Lijiand8d42c22016-03-14 14:19:22 -0700123config SOC_INTEL_COMMON_RESET
124 bool
Andrey Petrov9c0e1802016-06-23 08:26:00 -0700125 default y
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700126
Subrata Banikccd87002017-03-08 17:55:26 +0530127config PCR_BASE_ADDRESS
128 hex
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700129 default 0xd0000000
Subrata Banikccd87002017-03-08 17:55:26 +0530130 help
131 This option allows you to select MMIO Base Address of sideband bus.
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700132
133config DCACHE_RAM_BASE
Arthur Heymans3038b482017-06-13 14:05:09 +0200134 hex
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700135 default 0xfef00000
136
137config DCACHE_RAM_SIZE
Arthur Heymans3038b482017-06-13 14:05:09 +0200138 hex
Andrey Petrov0dde2912016-06-27 15:21:26 -0700139 default 0xc0000
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700140 help
141 The size of the cache-as-ram region required during bootblock
142 and/or romstage.
143
144config DCACHE_BSP_STACK_SIZE
145 hex
146 default 0x4000
147 help
148 The amount of anticipated stack usage in CAR by bootblock and
149 other stages.
150
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700151config CPU_ADDR_BITS
152 int
153 default 36
154
Furquan Shaikh340908a2017-04-04 11:47:19 -0700155config SOC_INTEL_COMMON_LPSS_CLOCK_MHZ
Duncan Laurieff8bce02016-06-27 10:57:13 -0700156 int
157 default 133
158
Andrey Petrov87fb1a62016-02-10 17:47:03 -0800159config CONSOLE_UART_BASE_ADDRESS
160 depends on CONSOLE_SERIAL
Arthur Heymans3038b482017-06-13 14:05:09 +0200161 hex
Andrey Petrov87fb1a62016-02-10 17:47:03 -0800162 default 0xde000000
163
Aaron Durbin61810302016-02-24 18:49:07 -0600164config SOC_UART_DEBUG
165 bool "Enable SoC UART debug port selected by UART_FOR_CONSOLE."
166 default n
167 select CONSOLE_SERIAL
Aaron Durbin61810302016-02-24 18:49:07 -0600168 select DRIVERS_UART
169 select DRIVERS_UART_8250MEM_32
170 select NO_UART_ON_SUPERIO
171
Aaron Durbinada13ed2016-02-11 14:47:33 -0600172# 32KiB bootblock is all that is mapped in by the CSE at top of 4GiB.
173config C_ENV_BOOTBLOCK_SIZE
174 hex
175 default 0x8000
176
Andrey Petrov5672dcd2016-02-12 15:12:43 -0800177# This SoC does not map SPI flash like many previous SoC. Therefore we provide
178# a custom media driver that facilitates mapping
179config X86_TOP4G_BOOTMEDIA_MAP
180 bool
181 default n
Andrey Petrovb4831462016-02-25 17:42:25 -0800182
183config ROMSTAGE_ADDR
184 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700185 default 0xfef20000
Andrey Petrovb4831462016-02-25 17:42:25 -0800186 help
187 The base address (in CAR) where romstage should be linked
188
Aaron Durbinbef75e72016-05-26 11:00:44 -0500189config VERSTAGE_ADDR
190 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700191 default 0xfef40000
Aaron Durbinbef75e72016-05-26 11:00:44 -0500192 help
193 The base address (in CAR) where verstage should be linked
194
Hannah Williamsb13d4542016-03-14 17:38:51 -0700195config CACHE_MRC_SETTINGS
196 bool
197 default y
198
Andrey Petrov96e9ff12016-11-04 16:18:30 -0700199config MRC_SETTINGS_VARIABLE_DATA
200 bool
201 default y
202
Andrey Petrov79091db72016-05-17 00:03:27 -0700203config FSP_M_ADDR
204 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700205 default 0xfef40000
Andrey Petrov79091db72016-05-17 00:03:27 -0700206 help
207 The address FSP-M will be relocated to during build time
208
Aaron Durbin9f444c32016-05-20 10:48:44 -0500209config NEED_LBP2
210 bool "Write contents for logical boot partition 2."
211 default n
212 help
213 Write the contents from a file into the logical boot partition 2
214 region defined by LBP2_FMAP_NAME.
215
216config LBP2_FMAP_NAME
217 string "Name of FMAP region to put logical boot partition 2"
218 depends on NEED_LBP2
219 default "SIGN_CSE"
220 help
221 Name of FMAP region to write logical boot partition 2 data.
222
223config LBP2_FILE_NAME
224 string "Path of file to write to logical boot partition 2 region"
225 depends on NEED_LBP2
226 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/lbp2.bin"
227 help
228 Name of file to store in the logical boot partition 2 region.
229
Furquan Shaikh7043bf32016-05-28 12:57:05 -0700230config NEED_IFWI
231 bool "Write content into IFWI region"
232 default n
233 help
234 Write the content from a file into IFWI region defined by
235 IFWI_FMAP_NAME.
236
237config IFWI_FMAP_NAME
238 string "Name of FMAP region to pull IFWI into"
239 depends on NEED_IFWI
240 default "IFWI"
241 help
242 Name of FMAP region to write IFWI.
243
244config IFWI_FILE_NAME
245 string "Path of file to write to IFWI region"
246 depends on NEED_IFWI
247 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/ifwi.bin"
248 help
249 Name of file to store in the IFWI region.
250
Sathyanarayana Nujellac4467042016-10-26 17:38:49 -0700251config HEAP_SIZE
252 hex
253 default 0x8000
254
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700255config NHLT_DMIC_1CH_16B
256 bool
257 depends on ACPI_NHLT
258 default n
259 help
260 Include DSP firmware settings for 1 channel 16B DMIC array.
261
Saurabh Satija734aa872016-06-21 14:22:16 -0700262config NHLT_DMIC_2CH_16B
263 bool
264 depends on ACPI_NHLT
265 default n
266 help
267 Include DSP firmware settings for 2 channel 16B DMIC array.
268
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700269config NHLT_DMIC_4CH_16B
270 bool
271 depends on ACPI_NHLT
272 default n
273 help
274 Include DSP firmware settings for 4 channel 16B DMIC array.
275
Saurabh Satija734aa872016-06-21 14:22:16 -0700276config NHLT_MAX98357
277 bool
278 depends on ACPI_NHLT
279 default n
280 help
281 Include DSP firmware settings for headset codec.
282
283config NHLT_DA7219
284 bool
285 depends on ACPI_NHLT
286 default n
287 help
288 Include DSP firmware settings for headset codec.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530289
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700290choice
291 prompt "Cache-as-ram implementation"
Hannah Williams3ff14a02017-05-05 16:30:22 -0700292 default CAR_CQOS if !SOC_INTEL_GLK
293 default CAR_NEM
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700294 help
295 This option allows you to select how cache-as-ram (CAR) is set up.
296
297config CAR_NEM
298 bool "Non-evict mode"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530299 select SOC_INTEL_COMMON_BLOCK_CAR
300 select INTEL_CAR_NEM
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700301 help
302 Traditionally, CAR is set up by using Non-Evict mode. This method
303 does not allow CAR and cache to co-exist, because cache fills are
304 block in NEM mode.
305
306config CAR_CQOS
307 bool "Cache Quality of Service"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530308 select SOC_INTEL_COMMON_BLOCK_CAR
309 select INTEL_CAR_CQOS
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700310 help
311 Cache Quality of Service allows more fine-grained control of cache
312 usage. As result, it is possible to set up portion of L2 cache for
313 CAR and use remainder for actual caching.
314
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530315config USE_APOLLOLAKE_FSP_CAR
316 bool "Use FSP CAR"
317 select FSP_CAR
318 help
Subrata Banik7952e282017-03-14 18:26:27 +0530319 Use FSP APIs to initialize & tear down the Cache-As-Ram.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530320
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700321endchoice
Saurabh Satija734aa872016-06-21 14:22:16 -0700322
Barnali Sarkar1e6b9802017-08-07 18:26:31 +0530323choice
324 prompt "MPINIT code implementation"
325 default NO_COMMON_MPINIT if SOC_INTEL_APOLLOLAKE
326 default COMMON_MPINIT
327 help
328 This option allows you to select MP Init Code path either
329 from Intel Common Code implementation, or from SOC files.
330
331config NO_COMMON_MPINIT
332 bool "Not using Common MP Init code"
333 help
334 Common code MP Init path is not used.
335
336config COMMON_MPINIT
337 bool "Using Common MP Init code"
338 select SOC_INTEL_COMMON_BLOCK_CPU_MPINIT
339 help
340 Common code MP Init path is used.
341
342endchoice
343
Subrata Banik8e1c12f12017-03-10 13:51:11 +0530344#
345# Each bit in QOS mask controls this many bytes. This is calculated as:
346# (CACHE_WAYS / CACHE_BITS_PER_MASK) * CACHE_LINE_SIZE * CACHE_SETS
347#
348
349config CACHE_QOS_SIZE_PER_BIT
350 hex
351 default 0x20000 # 128 KB
352
353config L2_CACHE_SIZE
354 hex
355 default 0x100000
356
Aaron Durbinbdb6cc92016-08-11 09:48:52 -0500357config SPI_FLASH_INCLUDE_ALL_DRIVERS
358 bool
359 default n
360
Brandon Breitenstein135eae92016-09-30 13:57:12 -0700361config SMM_RESERVED_SIZE
362 hex
363 default 0x100000
364
Andrey Petrov4c5b31e2016-11-06 23:43:57 -0800365config IFD_CHIPSET
366 string
367 default "aplk"
368
Aamir Bohra22b2c792017-06-02 19:07:56 +0530369config CPU_BCLK_MHZ
370 int
371 default 100
372
Mario Scheithauer38b61002017-07-25 10:52:41 +0200373config APL_SKIP_SET_POWER_LIMITS
374 bool
375 default n
376 help
377 Some Apollo Lake mainboards do not need the Running Average Power
378 Limits (RAPL) algorithm for a constant power management.
379 Set this config option to skip the RAPL configuration.
380
Furquan Shaikh3406dd62017-08-04 15:58:26 -0700381# M and N divisor values for clock frequency configuration.
382# These values get us a 1.836 MHz clock (ideally we want 1.843 MHz)
383config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
384 hex
385 default 0x25a
386
387config SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL
388 hex
389 default 0x7fff
390
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700391endif