blob: dc639a237c019e040a7e74028e58cc1893be6e04 [file] [log] [blame]
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -07001config SOC_INTEL_APOLLOLAKE
2 bool
3 help
4 Intel Apollolake support
5
6if SOC_INTEL_APOLLOLAKE
7
8config CPU_SPECIFIC_OPTIONS
9 def_bool y
Aaron Durbined35b7c2016-07-13 23:17:38 -050010 select ACPI_INTEL_HARDWARE_SLEEP_VALUES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070011 select ARCH_BOOTBLOCK_X86_32
12 select ARCH_RAMSTAGE_X86_32
13 select ARCH_ROMSTAGE_X86_32
14 select ARCH_VERSTAGE_X86_32
Aaron Durbina9e03a32016-09-16 19:25:43 -050015 select BOOTBLOCK_CONSOLE
Aaron Durbin7b2c7812016-08-11 23:51:42 -050016 select BOOT_DEVICE_SPI_FLASH_RW_NOMMAP_EARLY if BOOT_DEVICE_SPI_FLASH
Aaron Durbine8e118d2016-08-12 15:00:10 -050017 select BOOT_DEVICE_SUPPORTS_WRITES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070018 # CPU specific options
19 select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
20 select IOAPIC
Subrata Banikccd87002017-03-08 17:55:26 +053021 select PCR_COMMON_IOSF_1_0
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070022 select SMP
23 select SSE2
24 select SUPPORT_CPU_UCODE_IN_CBFS
Saurabh Satija734aa872016-06-21 14:22:16 -070025 # Audio options
26 select ACPI_NHLT
27 select SOC_INTEL_COMMON_NHLT
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070028 # Misc options
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -070029 select C_ENVIRONMENT_BOOTBLOCK
Brandon Breitenstein135eae92016-09-30 13:57:12 -070030 select CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM if RELOCATABLE_RAMSTAGE
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070031 select COLLECT_TIMESTAMPS
Aaron Durbinc3ee3f62016-05-11 10:35:49 -050032 select COMMON_FADT
Duncan Lauried25dd992016-06-29 10:47:48 -070033 select GENERIC_GPIO_LIB
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070034 select HAVE_INTEL_FIRMWARE
Hannah Williamsd9c84ca2016-05-13 00:47:14 -070035 select HAVE_SMI_HANDLER
Furquan Shaikhffb3a2d2016-10-24 15:28:23 -070036 select MRC_SETTINGS_PROTECT
Aaron Durbinf5ff8542016-05-05 10:38:03 -050037 select NO_FIXED_XIP_ROM_SIZE
Furquan Shaikh94b18a12016-05-04 23:25:16 -070038 select NO_XIP_EARLY_STAGES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070039 select PARALLEL_MP
Andrey Petrova697c192016-12-07 10:47:46 -080040 select PARALLEL_MP_AP_WORK
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070041 select PCIEXP_ASPM
42 select PCIEXP_COMMON_CLOCK
43 select PCIEXP_CLK_PM
44 select PCIEXP_L1_SUB_STATE
Subrata Banik7952e282017-03-14 18:26:27 +053045 select PCIEX_LENGTH_256MB
Aaron Durbin79587ed2016-09-16 16:30:09 -050046 select POSTCAR_CONSOLE
Aaron Durbineebe0e02016-03-18 11:19:38 -050047 select POSTCAR_STAGE
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070048 select REG_SCRIPT
49 select RELOCATABLE_RAMSTAGE # Build fails if this is not selected
Aaron Durbin16246ea2016-08-05 21:23:37 -050050 select RTC
Hannah Williamsd9c84ca2016-05-13 00:47:14 -070051 select SMM_TSEG
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070052 select SOC_INTEL_COMMON
Hannah Williams0f61da82016-04-18 13:47:08 -070053 select SOC_INTEL_COMMON_ACPI
Shaunak Saha60b46182016-08-02 17:25:13 -070054 select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
Subrata Banikfc4c7d82017-03-03 18:23:59 +053055 select SOC_INTEL_COMMON_BLOCK
Aamir Bohra138b2a02017-04-06 20:21:58 +053056 select SOC_INTEL_COMMON_BLOCK_LPSS
Subrata Banikccd87002017-03-08 17:55:26 +053057 select SOC_INTEL_COMMON_BLOCK_PCR
Subrata Banik7952e282017-03-14 18:26:27 +053058 select SOC_INTEL_COMMON_BLOCK_SA
Subrata Banik8bf69d32017-03-09 13:43:54 +053059 select SOC_INTEL_COMMON_BLOCK_RTC
Aamir Bohrabf6dfae2017-04-07 21:10:27 +053060 select SOC_INTEL_COMMON_BLOCK_SA
61 select SOC_INTEL_COMMON_BLOCK_UART
Duncan Laurieff8bce02016-06-27 10:57:13 -070062 select SOC_INTEL_COMMON_LPSS_I2C
63 select SOC_INTEL_COMMON_SMI
Furquan Shaikhd0c000522016-11-21 09:19:53 -080064 select SOC_INTEL_COMMON_SPI_FLASH_PROTECT
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070065 select UDELAY_TSC
Andrey Petrov87fb1a62016-02-10 17:47:03 -080066 select TSC_CONSTANT_RATE
Hannah Williamsb13d4542016-03-14 17:38:51 -070067 select TSC_MONOTONIC_TIMER
68 select HAVE_MONOTONIC_TIMER
Andrey Petrov0d187912016-02-25 18:39:38 -080069 select PLATFORM_USES_FSP2_0
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070070 select HAVE_HARD_RESET
71 select SOC_INTEL_COMMON
Andrey Petrov868679f2016-05-12 19:11:48 -070072 select SOC_INTEL_COMMON_GFX_OPREGION
Andrey Petrovd8db26d2017-03-06 14:47:05 -080073 select SOC_INTEL_COMMON_BLOCK
74 select SOC_INTEL_COMMON_BLOCK_CSE
Andrey Petrov868679f2016-05-12 19:11:48 -070075 select ADD_VBT_DATA_FILE
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070076
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070077config CHROMEOS
78 select CHROMEOS_RAMOOPS_DYNAMIC
Julius Werner58c39382017-02-13 17:53:29 -080079
80config VBOOT
81 select VBOOT_SEPARATE_VERSTAGE
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070082 select VBOOT_OPROM_MATTERS
Furquan Shaikh7c7b2912016-07-22 09:02:35 -070083 select VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070084 select VBOOT_STARTS_IN_BOOTBLOCK
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070085 select VBOOT_VBNV_CMOS
86 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070087
Aaron Durbin80a3df22016-04-27 23:05:52 -050088config TPM_ON_FAST_SPI
89 bool
90 default n
91 select LPC_TPM
92 help
93 TPM part is conntected on Fast SPI interface, but the LPC MMIO
94 TPM transactions are decoded and serialized over the SPI interface.
95
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070096config SOC_INTEL_COMMON_RESET
97 bool
Andrey Petrov9c0e1802016-06-23 08:26:00 -070098 default y
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070099
Subrata Banikccd87002017-03-08 17:55:26 +0530100config PCR_BASE_ADDRESS
101 hex
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700102 default 0xd0000000
Subrata Banikccd87002017-03-08 17:55:26 +0530103 help
104 This option allows you to select MMIO Base Address of sideband bus.
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700105
106config DCACHE_RAM_BASE
107 hex "Base address of cache-as-RAM"
108 default 0xfef00000
109
110config DCACHE_RAM_SIZE
111 hex "Length in bytes of cache-as-RAM"
Andrey Petrov0dde2912016-06-27 15:21:26 -0700112 default 0xc0000
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700113 help
114 The size of the cache-as-ram region required during bootblock
115 and/or romstage.
116
117config DCACHE_BSP_STACK_SIZE
118 hex
119 default 0x4000
120 help
121 The amount of anticipated stack usage in CAR by bootblock and
122 other stages.
123
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700124config CPU_ADDR_BITS
125 int
126 default 36
127
Furquan Shaikh340908a2017-04-04 11:47:19 -0700128config SOC_INTEL_COMMON_LPSS_CLOCK_MHZ
Duncan Laurieff8bce02016-06-27 10:57:13 -0700129 int
130 default 133
131
Andrey Petrov87fb1a62016-02-10 17:47:03 -0800132config CONSOLE_UART_BASE_ADDRESS
133 depends on CONSOLE_SERIAL
134 hex "MMIO base address for UART"
135 default 0xde000000
136
Aaron Durbin61810302016-02-24 18:49:07 -0600137config SOC_UART_DEBUG
138 bool "Enable SoC UART debug port selected by UART_FOR_CONSOLE."
139 default n
140 select CONSOLE_SERIAL
Aaron Durbin61810302016-02-24 18:49:07 -0600141 select DRIVERS_UART
142 select DRIVERS_UART_8250MEM_32
143 select NO_UART_ON_SUPERIO
144
Aaron Durbinada13ed2016-02-11 14:47:33 -0600145# 32KiB bootblock is all that is mapped in by the CSE at top of 4GiB.
146config C_ENV_BOOTBLOCK_SIZE
147 hex
148 default 0x8000
149
Andrey Petrov5672dcd2016-02-12 15:12:43 -0800150# This SoC does not map SPI flash like many previous SoC. Therefore we provide
151# a custom media driver that facilitates mapping
152config X86_TOP4G_BOOTMEDIA_MAP
153 bool
154 default n
Andrey Petrovb4831462016-02-25 17:42:25 -0800155
156config ROMSTAGE_ADDR
157 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700158 default 0xfef20000
Andrey Petrovb4831462016-02-25 17:42:25 -0800159 help
160 The base address (in CAR) where romstage should be linked
161
Aaron Durbinbef75e72016-05-26 11:00:44 -0500162config VERSTAGE_ADDR
163 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700164 default 0xfef40000
Aaron Durbinbef75e72016-05-26 11:00:44 -0500165 help
166 The base address (in CAR) where verstage should be linked
167
Hannah Williamsb13d4542016-03-14 17:38:51 -0700168config CACHE_MRC_SETTINGS
169 bool
170 default y
171
Andrey Petrov96e9ff12016-11-04 16:18:30 -0700172config MRC_SETTINGS_VARIABLE_DATA
173 bool
174 default y
175
Andrey Petrov79091db72016-05-17 00:03:27 -0700176config FSP_M_ADDR
177 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700178 default 0xfef40000
Andrey Petrov79091db72016-05-17 00:03:27 -0700179 help
180 The address FSP-M will be relocated to during build time
181
Aaron Durbin9f444c32016-05-20 10:48:44 -0500182config NEED_LBP2
183 bool "Write contents for logical boot partition 2."
184 default n
185 help
186 Write the contents from a file into the logical boot partition 2
187 region defined by LBP2_FMAP_NAME.
188
189config LBP2_FMAP_NAME
190 string "Name of FMAP region to put logical boot partition 2"
191 depends on NEED_LBP2
192 default "SIGN_CSE"
193 help
194 Name of FMAP region to write logical boot partition 2 data.
195
196config LBP2_FILE_NAME
197 string "Path of file to write to logical boot partition 2 region"
198 depends on NEED_LBP2
199 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/lbp2.bin"
200 help
201 Name of file to store in the logical boot partition 2 region.
202
Furquan Shaikh7043bf32016-05-28 12:57:05 -0700203config NEED_IFWI
204 bool "Write content into IFWI region"
205 default n
206 help
207 Write the content from a file into IFWI region defined by
208 IFWI_FMAP_NAME.
209
210config IFWI_FMAP_NAME
211 string "Name of FMAP region to pull IFWI into"
212 depends on NEED_IFWI
213 default "IFWI"
214 help
215 Name of FMAP region to write IFWI.
216
217config IFWI_FILE_NAME
218 string "Path of file to write to IFWI region"
219 depends on NEED_IFWI
220 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/ifwi.bin"
221 help
222 Name of file to store in the IFWI region.
223
Sathyanarayana Nujellac4467042016-10-26 17:38:49 -0700224config HEAP_SIZE
225 hex
226 default 0x8000
227
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700228config NHLT_DMIC_1CH_16B
229 bool
230 depends on ACPI_NHLT
231 default n
232 help
233 Include DSP firmware settings for 1 channel 16B DMIC array.
234
Saurabh Satija734aa872016-06-21 14:22:16 -0700235config NHLT_DMIC_2CH_16B
236 bool
237 depends on ACPI_NHLT
238 default n
239 help
240 Include DSP firmware settings for 2 channel 16B DMIC array.
241
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700242config NHLT_DMIC_4CH_16B
243 bool
244 depends on ACPI_NHLT
245 default n
246 help
247 Include DSP firmware settings for 4 channel 16B DMIC array.
248
Saurabh Satija734aa872016-06-21 14:22:16 -0700249config NHLT_MAX98357
250 bool
251 depends on ACPI_NHLT
252 default n
253 help
254 Include DSP firmware settings for headset codec.
255
256config NHLT_DA7219
257 bool
258 depends on ACPI_NHLT
259 default n
260 help
261 Include DSP firmware settings for headset codec.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530262
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700263choice
264 prompt "Cache-as-ram implementation"
265 default CAR_CQOS
266 help
267 This option allows you to select how cache-as-ram (CAR) is set up.
268
269config CAR_NEM
270 bool "Non-evict mode"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530271 select SOC_INTEL_COMMON_BLOCK_CAR
272 select INTEL_CAR_NEM
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700273 help
274 Traditionally, CAR is set up by using Non-Evict mode. This method
275 does not allow CAR and cache to co-exist, because cache fills are
276 block in NEM mode.
277
278config CAR_CQOS
279 bool "Cache Quality of Service"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530280 select SOC_INTEL_COMMON_BLOCK_CAR
281 select INTEL_CAR_CQOS
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700282 help
283 Cache Quality of Service allows more fine-grained control of cache
284 usage. As result, it is possible to set up portion of L2 cache for
285 CAR and use remainder for actual caching.
286
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530287config USE_APOLLOLAKE_FSP_CAR
288 bool "Use FSP CAR"
289 select FSP_CAR
290 help
Subrata Banik7952e282017-03-14 18:26:27 +0530291 Use FSP APIs to initialize & tear down the Cache-As-Ram.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530292
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700293endchoice
Saurabh Satija734aa872016-06-21 14:22:16 -0700294
Subrata Banik8e1c12f12017-03-10 13:51:11 +0530295#
296# Each bit in QOS mask controls this many bytes. This is calculated as:
297# (CACHE_WAYS / CACHE_BITS_PER_MASK) * CACHE_LINE_SIZE * CACHE_SETS
298#
299
300config CACHE_QOS_SIZE_PER_BIT
301 hex
302 default 0x20000 # 128 KB
303
304config L2_CACHE_SIZE
305 hex
306 default 0x100000
307
Aaron Durbinbdb6cc92016-08-11 09:48:52 -0500308config SPI_FLASH_INCLUDE_ALL_DRIVERS
309 bool
310 default n
311
Brandon Breitenstein135eae92016-09-30 13:57:12 -0700312config SMM_RESERVED_SIZE
313 hex
314 default 0x100000
315
Andrey Petrov4c5b31e2016-11-06 23:43:57 -0800316config IFD_CHIPSET
317 string
318 default "aplk"
319
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700320endif