blob: 029695d08a31a10fc585be4de0efed7488a8dc7b [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
Ravi Sarawadi3669a062018-02-27 13:23:42 -080012 select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2
Hannah Williams3ff14a02017-05-05 16:30:22 -070013 help
14 Intel GLK support
15
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070016if SOC_INTEL_APOLLOLAKE
17
18config CPU_SPECIFIC_OPTIONS
19 def_bool y
Aaron Durbined35b7c2016-07-13 23:17:38 -050020 select ACPI_INTEL_HARDWARE_SLEEP_VALUES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070021 select ARCH_BOOTBLOCK_X86_32
22 select ARCH_RAMSTAGE_X86_32
23 select ARCH_ROMSTAGE_X86_32
24 select ARCH_VERSTAGE_X86_32
Aaron Durbina9e03a32016-09-16 19:25:43 -050025 select BOOTBLOCK_CONSOLE
Aaron Durbin7b2c7812016-08-11 23:51:42 -050026 select BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY if BOOT_DEVICE_SPI_FLASH
Aaron Durbine8e118d2016-08-12 15:00:10 -050027 select BOOT_DEVICE_SUPPORTS_WRITES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070028 # CPU specific options
29 select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
30 select IOAPIC
Subrata Banikccd87002017-03-08 17:55:26 +053031 select PCR_COMMON_IOSF_1_0
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070032 select SMP
33 select SSE2
34 select SUPPORT_CPU_UCODE_IN_CBFS
Saurabh Satija734aa872016-06-21 14:22:16 -070035 # Audio options
36 select ACPI_NHLT
37 select SOC_INTEL_COMMON_NHLT
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070038 # Misc options
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -070039 select C_ENVIRONMENT_BOOTBLOCK
Aaron Durbin934f4332017-12-15 12:59:18 -070040 select CACHE_MRC_SETTINGS
Brandon Breitenstein135eae92016-09-30 13:57:12 -070041 select CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM if RELOCATABLE_RAMSTAGE
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070042 select COLLECT_TIMESTAMPS
Aaron Durbinc3ee3f62016-05-11 10:35:49 -050043 select COMMON_FADT
Ravi Sarawadia3d13fbd62017-04-25 19:30:58 -070044 select FSP_PLATFORM_MEMORY_SETTINGS_VERSIONS
Duncan Lauried25dd992016-06-29 10:47:48 -070045 select GENERIC_GPIO_LIB
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070046 select HAVE_INTEL_FIRMWARE
Hannah Williamsd9c84ca2016-05-13 00:47:14 -070047 select HAVE_SMI_HANDLER
Furquan Shaikhffb3a2d2016-10-24 15:28:23 -070048 select MRC_SETTINGS_PROTECT
Aaron Durbin934f4332017-12-15 12:59:18 -070049 select MRC_SETTINGS_VARIABLE_DATA
Aaron Durbinf5ff8542016-05-05 10:38:03 -050050 select NO_FIXED_XIP_ROM_SIZE
Furquan Shaikh94b18a12016-05-04 23:25:16 -070051 select NO_XIP_EARLY_STAGES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070052 select PARALLEL_MP
Andrey Petrova697c192016-12-07 10:47:46 -080053 select PARALLEL_MP_AP_WORK
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070054 select PCIEXP_ASPM
55 select PCIEXP_COMMON_CLOCK
56 select PCIEXP_CLK_PM
57 select PCIEXP_L1_SUB_STATE
Subrata Banik7952e282017-03-14 18:26:27 +053058 select PCIEX_LENGTH_256MB
Aaron Durbin79587ed2016-09-16 16:30:09 -050059 select POSTCAR_CONSOLE
Aaron Durbineebe0e02016-03-18 11:19:38 -050060 select POSTCAR_STAGE
Hannah Williams1177bf52017-12-13 12:44:26 -080061 select PMC_INVALID_READ_AFTER_WRITE
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070062 select REG_SCRIPT
63 select RELOCATABLE_RAMSTAGE # Build fails if this is not selected
Aaron Durbin16246ea2016-08-05 21:23:37 -050064 select RTC
Hannah Williamsd9c84ca2016-05-13 00:47:14 -070065 select SMM_TSEG
Subrata Banik208587e2017-05-19 18:38:24 +053066 select SA_ENABLE_IMR
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070067 select SOC_INTEL_COMMON
Shaunak Saha60b46182016-08-02 17:25:13 -070068 select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
Subrata Banikfc4c7d82017-03-03 18:23:59 +053069 select SOC_INTEL_COMMON_BLOCK
Shaunak Sahabd427802017-07-18 00:19:33 -070070 select SOC_INTEL_COMMON_BLOCK_ACPI
Barnali Sarkar66fe0c42017-05-23 18:17:14 +053071 select SOC_INTEL_COMMON_BLOCK_CPU
Lijian Zhao44e2abf2017-10-30 14:27:52 -070072 select SOC_INTEL_COMMON_BLOCK_DSP
Barnali Sarkare70142c2017-03-28 16:32:33 +053073 select SOC_INTEL_COMMON_BLOCK_FAST_SPI
Hannah Williams12bed182017-05-26 20:31:15 -070074 select SOC_INTEL_COMMON_BLOCK_GPIO
Aaron Durbinaa2504a2017-07-14 16:53:49 -060075 select SOC_INTEL_COMMON_BLOCK_GPIO_MULTI_ACPI_DEVICES
Hannah Williams12bed182017-05-26 20:31:15 -070076 select SOC_INTEL_COMMON_BLOCK_GPIO_ITSS_POL_CFG
77 select SOC_INTEL_COMMON_BLOCK_GPIO_IOSTANDBY
Subrata Banikb7b56662017-11-28 17:54:15 +053078 select SOC_INTEL_COMMON_BLOCK_GRAPHICS
Bora Guvendik33117ec2017-04-10 15:49:02 -070079 select SOC_INTEL_COMMON_BLOCK_ITSS
Rizwan Qureshiae6a4b62017-04-26 21:06:35 +053080 select SOC_INTEL_COMMON_BLOCK_I2C
Ravi Sarawadiefa606b2017-08-04 16:26:09 -070081 select SOC_INTEL_COMMON_BLOCK_LPC
Aamir Bohra138b2a02017-04-06 20:21:58 +053082 select SOC_INTEL_COMMON_BLOCK_LPSS
Subrata Banikccd87002017-03-08 17:55:26 +053083 select SOC_INTEL_COMMON_BLOCK_PCR
Lijian Zhao8aba24d2017-10-26 12:16:53 -070084 select SOC_INTEL_COMMON_BLOCK_P2SB
Shaunak Saha93cdc8b2017-04-18 15:42:09 -070085 select SOC_INTEL_COMMON_BLOCK_PMC
V Sowmya45a21382017-11-27 12:39:10 +053086 select SOC_INTEL_COMMON_BLOCK_SRAM
Subrata Banik8bf69d32017-03-09 13:43:54 +053087 select SOC_INTEL_COMMON_BLOCK_RTC
Aamir Bohrabf6dfae2017-04-07 21:10:27 +053088 select SOC_INTEL_COMMON_BLOCK_SA
Bora Guvendik65623b72017-05-08 16:29:17 -070089 select SOC_INTEL_COMMON_BLOCK_SCS
Aamir Bohra4c9cf302017-05-25 14:38:37 +053090 select SOC_INTEL_COMMON_BLOCK_TIMER
Aamir Bohrabf6dfae2017-04-07 21:10:27 +053091 select SOC_INTEL_COMMON_BLOCK_UART
Subrata Banik4aaa7e32017-04-24 11:54:34 +053092 select SOC_INTEL_COMMON_BLOCK_XDCI
Subrata Banik73b17972017-04-24 10:25:56 +053093 select SOC_INTEL_COMMON_BLOCK_XHCI
Brandon Breitensteina86d1b82017-06-08 17:32:02 -070094 select SOC_INTEL_COMMON_BLOCK_SMM
Subrata Banik15129b42017-11-07 17:50:48 +053095 select SOC_INTEL_COMMON_BLOCK_SPI
Marshall Dawson0cc28d72017-12-12 12:24:19 -070096 select SOC_INTEL_COMMON_BLOCK_CSE
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070097 select UDELAY_TSC
Andrey Petrov87fb1a62016-02-10 17:47:03 -080098 select TSC_CONSTANT_RATE
Hannah Williamsb13d4542016-03-14 17:38:51 -070099 select TSC_MONOTONIC_TIMER
100 select HAVE_MONOTONIC_TIMER
Andrey Petrov0d187912016-02-25 18:39:38 -0800101 select PLATFORM_USES_FSP2_0
Subrata Banik74558812018-01-25 11:41:04 +0530102 select UDK_2015_BINDING if !SOC_INTEL_GLK
103 select UDK_2017_BINDING if SOC_INTEL_GLK
Zhao, Lijiand8d42c22016-03-14 14:19:22 -0700104 select HAVE_HARD_RESET
Patrick Rudolph4c170982017-07-17 19:53:56 +0200105 select INTEL_GMA_ADD_VBT_DATA_FILE if RUN_FSP_GOP
Nico Huber2e7f6cc2017-05-22 15:58:03 +0200106 select HAVE_FSP_GOP
Ravi Sarawadi92b487d2017-11-29 16:11:32 -0800107 select NO_UART_ON_SUPERIO
Patrick Rudolphc7edf182017-09-26 19:34:35 +0200108 select INTEL_GMA_ACPI
109 select INTEL_GMA_SWSMISCI
Zhao, Lijiand8d42c22016-03-14 14:19:22 -0700110
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -0700111config CHROMEOS
112 select CHROMEOS_RAMOOPS_DYNAMIC
Julius Werner58c39382017-02-13 17:53:29 -0800113
114config VBOOT
115 select VBOOT_SEPARATE_VERSTAGE
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -0700116 select VBOOT_OPROM_MATTERS
Furquan Shaikh7c7b2912016-07-22 09:02:35 -0700117 select VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -0700118 select VBOOT_STARTS_IN_BOOTBLOCK
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -0700119 select VBOOT_VBNV_CMOS
120 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -0700121
Aaron Durbin80a3df22016-04-27 23:05:52 -0500122config TPM_ON_FAST_SPI
123 bool
124 default n
125 select LPC_TPM
126 help
127 TPM part is conntected on Fast SPI interface, but the LPC MMIO
128 TPM transactions are decoded and serialized over the SPI interface.
129
Zhao, Lijiand8d42c22016-03-14 14:19:22 -0700130config SOC_INTEL_COMMON_RESET
131 bool
Andrey Petrov9c0e1802016-06-23 08:26:00 -0700132 default y
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700133
Subrata Banikccd87002017-03-08 17:55:26 +0530134config PCR_BASE_ADDRESS
135 hex
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700136 default 0xd0000000
Subrata Banikccd87002017-03-08 17:55:26 +0530137 help
138 This option allows you to select MMIO Base Address of sideband bus.
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700139
140config DCACHE_RAM_BASE
Arthur Heymans3038b482017-06-13 14:05:09 +0200141 hex
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700142 default 0xfef00000
143
144config DCACHE_RAM_SIZE
Arthur Heymans3038b482017-06-13 14:05:09 +0200145 hex
Andrey Petrov0dde2912016-06-27 15:21:26 -0700146 default 0xc0000
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700147 help
148 The size of the cache-as-ram region required during bootblock
149 and/or romstage.
150
151config DCACHE_BSP_STACK_SIZE
152 hex
153 default 0x4000
154 help
155 The amount of anticipated stack usage in CAR by bootblock and
156 other stages.
157
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700158config CPU_ADDR_BITS
159 int
160 default 36
161
Aaron Durbin551e4be2018-04-10 09:24:54 -0600162config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
Duncan Laurieff8bce02016-06-27 10:57:13 -0700163 int
Aaron Durbin24de5972018-04-10 09:28:42 -0600164 default 100
Duncan Laurieff8bce02016-06-27 10:57:13 -0700165
Chris Chingb8dc63b2017-12-06 14:26:15 -0700166config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
167 int
Aaron Durbin24de5972018-04-10 09:28:42 -0600168 default 133
Chris Chingb8dc63b2017-12-06 14:26:15 -0700169
Andrey Petrov87fb1a62016-02-10 17:47:03 -0800170config CONSOLE_UART_BASE_ADDRESS
171 depends on CONSOLE_SERIAL
Arthur Heymans3038b482017-06-13 14:05:09 +0200172 hex
Andrey Petrov87fb1a62016-02-10 17:47:03 -0800173 default 0xde000000
174
Aaron Durbin61810302016-02-24 18:49:07 -0600175config SOC_UART_DEBUG
176 bool "Enable SoC UART debug port selected by UART_FOR_CONSOLE."
177 default n
178 select CONSOLE_SERIAL
Aaron Durbin61810302016-02-24 18:49:07 -0600179 select DRIVERS_UART
180 select DRIVERS_UART_8250MEM_32
181 select NO_UART_ON_SUPERIO
182
Aaron Durbinada13ed2016-02-11 14:47:33 -0600183# 32KiB bootblock is all that is mapped in by the CSE at top of 4GiB.
184config C_ENV_BOOTBLOCK_SIZE
185 hex
186 default 0x8000
187
Andrey Petrov5672dcd2016-02-12 15:12:43 -0800188# This SoC does not map SPI flash like many previous SoC. Therefore we provide
189# a custom media driver that facilitates mapping
190config X86_TOP4G_BOOTMEDIA_MAP
191 bool
192 default n
Andrey Petrovb4831462016-02-25 17:42:25 -0800193
194config ROMSTAGE_ADDR
195 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700196 default 0xfef20000
Andrey Petrovb4831462016-02-25 17:42:25 -0800197 help
198 The base address (in CAR) where romstage should be linked
199
Aaron Durbinbef75e72016-05-26 11:00:44 -0500200config VERSTAGE_ADDR
201 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700202 default 0xfef40000
Aaron Durbinbef75e72016-05-26 11:00:44 -0500203 help
204 The base address (in CAR) where verstage should be linked
205
Andrey Petrov79091db72016-05-17 00:03:27 -0700206config FSP_M_ADDR
207 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700208 default 0xfef40000
Andrey Petrov79091db72016-05-17 00:03:27 -0700209 help
210 The address FSP-M will be relocated to during build time
211
Aaron Durbin9f444c32016-05-20 10:48:44 -0500212config NEED_LBP2
213 bool "Write contents for logical boot partition 2."
214 default n
215 help
216 Write the contents from a file into the logical boot partition 2
217 region defined by LBP2_FMAP_NAME.
218
219config LBP2_FMAP_NAME
220 string "Name of FMAP region to put logical boot partition 2"
221 depends on NEED_LBP2
222 default "SIGN_CSE"
223 help
224 Name of FMAP region to write logical boot partition 2 data.
225
226config LBP2_FILE_NAME
227 string "Path of file to write to logical boot partition 2 region"
228 depends on NEED_LBP2
229 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/lbp2.bin"
230 help
231 Name of file to store in the logical boot partition 2 region.
232
Furquan Shaikh7043bf32016-05-28 12:57:05 -0700233config NEED_IFWI
234 bool "Write content into IFWI region"
235 default n
236 help
237 Write the content from a file into IFWI region defined by
238 IFWI_FMAP_NAME.
239
240config IFWI_FMAP_NAME
241 string "Name of FMAP region to pull IFWI into"
242 depends on NEED_IFWI
243 default "IFWI"
244 help
245 Name of FMAP region to write IFWI.
246
247config IFWI_FILE_NAME
248 string "Path of file to write to IFWI region"
249 depends on NEED_IFWI
250 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/ifwi.bin"
251 help
252 Name of file to store in the IFWI region.
253
Sathyanarayana Nujellac4467042016-10-26 17:38:49 -0700254config HEAP_SIZE
255 hex
256 default 0x8000
257
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700258config NHLT_DMIC_1CH_16B
259 bool
260 depends on ACPI_NHLT
261 default n
262 help
263 Include DSP firmware settings for 1 channel 16B DMIC array.
264
Saurabh Satija734aa872016-06-21 14:22:16 -0700265config NHLT_DMIC_2CH_16B
266 bool
267 depends on ACPI_NHLT
268 default n
269 help
270 Include DSP firmware settings for 2 channel 16B DMIC array.
271
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700272config NHLT_DMIC_4CH_16B
273 bool
274 depends on ACPI_NHLT
275 default n
276 help
277 Include DSP firmware settings for 4 channel 16B DMIC array.
278
Saurabh Satija734aa872016-06-21 14:22:16 -0700279config NHLT_MAX98357
280 bool
281 depends on ACPI_NHLT
282 default n
283 help
284 Include DSP firmware settings for headset codec.
285
286config NHLT_DA7219
287 bool
288 depends on ACPI_NHLT
289 default n
290 help
291 Include DSP firmware settings for headset codec.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530292
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700293choice
294 prompt "Cache-as-ram implementation"
Hannah Williams3ff14a02017-05-05 16:30:22 -0700295 default CAR_CQOS if !SOC_INTEL_GLK
296 default CAR_NEM
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700297 help
298 This option allows you to select how cache-as-ram (CAR) is set up.
299
300config CAR_NEM
301 bool "Non-evict mode"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530302 select SOC_INTEL_COMMON_BLOCK_CAR
303 select INTEL_CAR_NEM
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700304 help
305 Traditionally, CAR is set up by using Non-Evict mode. This method
306 does not allow CAR and cache to co-exist, because cache fills are
307 block in NEM mode.
308
309config CAR_CQOS
310 bool "Cache Quality of Service"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530311 select SOC_INTEL_COMMON_BLOCK_CAR
312 select INTEL_CAR_CQOS
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700313 help
314 Cache Quality of Service allows more fine-grained control of cache
315 usage. As result, it is possible to set up portion of L2 cache for
316 CAR and use remainder for actual caching.
317
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530318config USE_APOLLOLAKE_FSP_CAR
319 bool "Use FSP CAR"
320 select FSP_CAR
321 help
Subrata Banik7952e282017-03-14 18:26:27 +0530322 Use FSP APIs to initialize & tear down the Cache-As-Ram.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530323
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700324endchoice
Saurabh Satija734aa872016-06-21 14:22:16 -0700325
Subrata Banik8e1c12f12017-03-10 13:51:11 +0530326#
327# Each bit in QOS mask controls this many bytes. This is calculated as:
328# (CACHE_WAYS / CACHE_BITS_PER_MASK) * CACHE_LINE_SIZE * CACHE_SETS
329#
330
331config CACHE_QOS_SIZE_PER_BIT
332 hex
333 default 0x20000 # 128 KB
334
335config L2_CACHE_SIZE
336 hex
337 default 0x100000
338
Aaron Durbinbdb6cc92016-08-11 09:48:52 -0500339config SPI_FLASH_INCLUDE_ALL_DRIVERS
340 bool
341 default n
342
Brandon Breitenstein135eae92016-09-30 13:57:12 -0700343config SMM_RESERVED_SIZE
344 hex
345 default 0x100000
346
Andrey Petrov4c5b31e2016-11-06 23:43:57 -0800347config IFD_CHIPSET
348 string
349 default "aplk"
350
Aamir Bohra22b2c792017-06-02 19:07:56 +0530351config CPU_BCLK_MHZ
352 int
353 default 100
354
Mario Scheithauer38b61002017-07-25 10:52:41 +0200355config APL_SKIP_SET_POWER_LIMITS
356 bool
357 default n
358 help
359 Some Apollo Lake mainboards do not need the Running Average Power
360 Limits (RAPL) algorithm for a constant power management.
361 Set this config option to skip the RAPL configuration.
362
Furquan Shaikh3406dd62017-08-04 15:58:26 -0700363# M and N divisor values for clock frequency configuration.
364# These values get us a 1.836 MHz clock (ideally we want 1.843 MHz)
365config SOC_INTEL_COMMON_LPSS_UART_CLK_M_VAL
366 hex
367 default 0x25a
368
369config SOC_INTEL_COMMON_LPSS_UART_CLK_N_VAL
370 hex
371 default 0x7fff
372
Bora Guvendik94aed8d2017-11-03 12:40:25 -0700373config SOC_ESPI
374 bool
375 default n
376 help
377 Use eSPI bus instead of LPC
378
Ravi Sarawadi3669a062018-02-27 13:23:42 -0800379config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
380 int
381 default 3
382
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700383endif