blob: d60f85eccf920ab604f7740f3f1ba8a761c77c63 [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
Ravi Sarawadia3d13fbd62017-04-25 19:30:58 -070033 select FSP_PLATFORM_MEMORY_SETTINGS_VERSIONS
Duncan Lauried25dd992016-06-29 10:47:48 -070034 select GENERIC_GPIO_LIB
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070035 select HAVE_INTEL_FIRMWARE
Hannah Williamsd9c84ca2016-05-13 00:47:14 -070036 select HAVE_SMI_HANDLER
Furquan Shaikhffb3a2d2016-10-24 15:28:23 -070037 select MRC_SETTINGS_PROTECT
Aaron Durbinf5ff8542016-05-05 10:38:03 -050038 select NO_FIXED_XIP_ROM_SIZE
Furquan Shaikh94b18a12016-05-04 23:25:16 -070039 select NO_XIP_EARLY_STAGES
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070040 select PARALLEL_MP
Andrey Petrova697c192016-12-07 10:47:46 -080041 select PARALLEL_MP_AP_WORK
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070042 select PCIEXP_ASPM
43 select PCIEXP_COMMON_CLOCK
44 select PCIEXP_CLK_PM
45 select PCIEXP_L1_SUB_STATE
Subrata Banik7952e282017-03-14 18:26:27 +053046 select PCIEX_LENGTH_256MB
Aaron Durbin79587ed2016-09-16 16:30:09 -050047 select POSTCAR_CONSOLE
Aaron Durbineebe0e02016-03-18 11:19:38 -050048 select POSTCAR_STAGE
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070049 select REG_SCRIPT
50 select RELOCATABLE_RAMSTAGE # Build fails if this is not selected
Aaron Durbin16246ea2016-08-05 21:23:37 -050051 select RTC
Hannah Williamsd9c84ca2016-05-13 00:47:14 -070052 select SMM_TSEG
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070053 select SOC_INTEL_COMMON
Hannah Williams0f61da82016-04-18 13:47:08 -070054 select SOC_INTEL_COMMON_ACPI
Shaunak Saha60b46182016-08-02 17:25:13 -070055 select SOC_INTEL_COMMON_ACPI_WAKE_SOURCE
Subrata Banikfc4c7d82017-03-03 18:23:59 +053056 select SOC_INTEL_COMMON_BLOCK
Barnali Sarkare70142c2017-03-28 16:32:33 +053057 select SOC_INTEL_COMMON_BLOCK_FAST_SPI
Bora Guvendik33117ec2017-04-10 15:49:02 -070058 select SOC_INTEL_COMMON_BLOCK_ITSS
Aamir Bohra138b2a02017-04-06 20:21:58 +053059 select SOC_INTEL_COMMON_BLOCK_LPSS
Subrata Banikccd87002017-03-08 17:55:26 +053060 select SOC_INTEL_COMMON_BLOCK_PCR
Subrata Banik7952e282017-03-14 18:26:27 +053061 select SOC_INTEL_COMMON_BLOCK_SA
Subrata Banik8bf69d32017-03-09 13:43:54 +053062 select SOC_INTEL_COMMON_BLOCK_RTC
Aamir Bohrabf6dfae2017-04-07 21:10:27 +053063 select SOC_INTEL_COMMON_BLOCK_SA
64 select SOC_INTEL_COMMON_BLOCK_UART
Duncan Laurieff8bce02016-06-27 10:57:13 -070065 select SOC_INTEL_COMMON_LPSS_I2C
66 select SOC_INTEL_COMMON_SMI
Furquan Shaikhd0c000522016-11-21 09:19:53 -080067 select SOC_INTEL_COMMON_SPI_FLASH_PROTECT
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070068 select UDELAY_TSC
Andrey Petrov87fb1a62016-02-10 17:47:03 -080069 select TSC_CONSTANT_RATE
Hannah Williamsb13d4542016-03-14 17:38:51 -070070 select TSC_MONOTONIC_TIMER
71 select HAVE_MONOTONIC_TIMER
Andrey Petrov0d187912016-02-25 18:39:38 -080072 select PLATFORM_USES_FSP2_0
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070073 select HAVE_HARD_RESET
74 select SOC_INTEL_COMMON
Andrey Petrov868679f2016-05-12 19:11:48 -070075 select SOC_INTEL_COMMON_GFX_OPREGION
Andrey Petrovd8db26d2017-03-06 14:47:05 -080076 select SOC_INTEL_COMMON_BLOCK
77 select SOC_INTEL_COMMON_BLOCK_CSE
Andrey Petrov868679f2016-05-12 19:11:48 -070078 select ADD_VBT_DATA_FILE
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070079
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070080config CHROMEOS
81 select CHROMEOS_RAMOOPS_DYNAMIC
Julius Werner58c39382017-02-13 17:53:29 -080082
83config VBOOT
84 select VBOOT_SEPARATE_VERSTAGE
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070085 select VBOOT_OPROM_MATTERS
Furquan Shaikh7c7b2912016-07-22 09:02:35 -070086 select VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070087 select VBOOT_STARTS_IN_BOOTBLOCK
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070088 select VBOOT_VBNV_CMOS
89 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070090
Aaron Durbin80a3df22016-04-27 23:05:52 -050091config TPM_ON_FAST_SPI
92 bool
93 default n
94 select LPC_TPM
95 help
96 TPM part is conntected on Fast SPI interface, but the LPC MMIO
97 TPM transactions are decoded and serialized over the SPI interface.
98
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070099config SOC_INTEL_COMMON_RESET
100 bool
Andrey Petrov9c0e1802016-06-23 08:26:00 -0700101 default y
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700102
Subrata Banikccd87002017-03-08 17:55:26 +0530103config PCR_BASE_ADDRESS
104 hex
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700105 default 0xd0000000
Subrata Banikccd87002017-03-08 17:55:26 +0530106 help
107 This option allows you to select MMIO Base Address of sideband bus.
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700108
109config DCACHE_RAM_BASE
110 hex "Base address of cache-as-RAM"
111 default 0xfef00000
112
113config DCACHE_RAM_SIZE
114 hex "Length in bytes of cache-as-RAM"
Andrey Petrov0dde2912016-06-27 15:21:26 -0700115 default 0xc0000
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700116 help
117 The size of the cache-as-ram region required during bootblock
118 and/or romstage.
119
120config DCACHE_BSP_STACK_SIZE
121 hex
122 default 0x4000
123 help
124 The amount of anticipated stack usage in CAR by bootblock and
125 other stages.
126
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700127config CPU_ADDR_BITS
128 int
129 default 36
130
Furquan Shaikh340908a2017-04-04 11:47:19 -0700131config SOC_INTEL_COMMON_LPSS_CLOCK_MHZ
Duncan Laurieff8bce02016-06-27 10:57:13 -0700132 int
133 default 133
134
Andrey Petrov87fb1a62016-02-10 17:47:03 -0800135config CONSOLE_UART_BASE_ADDRESS
136 depends on CONSOLE_SERIAL
137 hex "MMIO base address for UART"
138 default 0xde000000
139
Aaron Durbin61810302016-02-24 18:49:07 -0600140config SOC_UART_DEBUG
141 bool "Enable SoC UART debug port selected by UART_FOR_CONSOLE."
142 default n
143 select CONSOLE_SERIAL
Aaron Durbin61810302016-02-24 18:49:07 -0600144 select DRIVERS_UART
145 select DRIVERS_UART_8250MEM_32
146 select NO_UART_ON_SUPERIO
147
Aaron Durbinada13ed2016-02-11 14:47:33 -0600148# 32KiB bootblock is all that is mapped in by the CSE at top of 4GiB.
149config C_ENV_BOOTBLOCK_SIZE
150 hex
151 default 0x8000
152
Andrey Petrov5672dcd2016-02-12 15:12:43 -0800153# This SoC does not map SPI flash like many previous SoC. Therefore we provide
154# a custom media driver that facilitates mapping
155config X86_TOP4G_BOOTMEDIA_MAP
156 bool
157 default n
Andrey Petrovb4831462016-02-25 17:42:25 -0800158
159config ROMSTAGE_ADDR
160 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700161 default 0xfef20000
Andrey Petrovb4831462016-02-25 17:42:25 -0800162 help
163 The base address (in CAR) where romstage should be linked
164
Aaron Durbinbef75e72016-05-26 11:00:44 -0500165config VERSTAGE_ADDR
166 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700167 default 0xfef40000
Aaron Durbinbef75e72016-05-26 11:00:44 -0500168 help
169 The base address (in CAR) where verstage should be linked
170
Hannah Williamsb13d4542016-03-14 17:38:51 -0700171config CACHE_MRC_SETTINGS
172 bool
173 default y
174
Andrey Petrov96e9ff12016-11-04 16:18:30 -0700175config MRC_SETTINGS_VARIABLE_DATA
176 bool
177 default y
178
Andrey Petrov79091db72016-05-17 00:03:27 -0700179config FSP_M_ADDR
180 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700181 default 0xfef40000
Andrey Petrov79091db72016-05-17 00:03:27 -0700182 help
183 The address FSP-M will be relocated to during build time
184
Aaron Durbin9f444c32016-05-20 10:48:44 -0500185config NEED_LBP2
186 bool "Write contents for logical boot partition 2."
187 default n
188 help
189 Write the contents from a file into the logical boot partition 2
190 region defined by LBP2_FMAP_NAME.
191
192config LBP2_FMAP_NAME
193 string "Name of FMAP region to put logical boot partition 2"
194 depends on NEED_LBP2
195 default "SIGN_CSE"
196 help
197 Name of FMAP region to write logical boot partition 2 data.
198
199config LBP2_FILE_NAME
200 string "Path of file to write to logical boot partition 2 region"
201 depends on NEED_LBP2
202 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/lbp2.bin"
203 help
204 Name of file to store in the logical boot partition 2 region.
205
Furquan Shaikh7043bf32016-05-28 12:57:05 -0700206config NEED_IFWI
207 bool "Write content into IFWI region"
208 default n
209 help
210 Write the content from a file into IFWI region defined by
211 IFWI_FMAP_NAME.
212
213config IFWI_FMAP_NAME
214 string "Name of FMAP region to pull IFWI into"
215 depends on NEED_IFWI
216 default "IFWI"
217 help
218 Name of FMAP region to write IFWI.
219
220config IFWI_FILE_NAME
221 string "Path of file to write to IFWI region"
222 depends on NEED_IFWI
223 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/ifwi.bin"
224 help
225 Name of file to store in the IFWI region.
226
Sathyanarayana Nujellac4467042016-10-26 17:38:49 -0700227config HEAP_SIZE
228 hex
229 default 0x8000
230
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700231config NHLT_DMIC_1CH_16B
232 bool
233 depends on ACPI_NHLT
234 default n
235 help
236 Include DSP firmware settings for 1 channel 16B DMIC array.
237
Saurabh Satija734aa872016-06-21 14:22:16 -0700238config NHLT_DMIC_2CH_16B
239 bool
240 depends on ACPI_NHLT
241 default n
242 help
243 Include DSP firmware settings for 2 channel 16B DMIC array.
244
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700245config NHLT_DMIC_4CH_16B
246 bool
247 depends on ACPI_NHLT
248 default n
249 help
250 Include DSP firmware settings for 4 channel 16B DMIC array.
251
Saurabh Satija734aa872016-06-21 14:22:16 -0700252config NHLT_MAX98357
253 bool
254 depends on ACPI_NHLT
255 default n
256 help
257 Include DSP firmware settings for headset codec.
258
259config NHLT_DA7219
260 bool
261 depends on ACPI_NHLT
262 default n
263 help
264 Include DSP firmware settings for headset codec.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530265
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700266choice
267 prompt "Cache-as-ram implementation"
268 default CAR_CQOS
269 help
270 This option allows you to select how cache-as-ram (CAR) is set up.
271
272config CAR_NEM
273 bool "Non-evict mode"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530274 select SOC_INTEL_COMMON_BLOCK_CAR
275 select INTEL_CAR_NEM
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700276 help
277 Traditionally, CAR is set up by using Non-Evict mode. This method
278 does not allow CAR and cache to co-exist, because cache fills are
279 block in NEM mode.
280
281config CAR_CQOS
282 bool "Cache Quality of Service"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530283 select SOC_INTEL_COMMON_BLOCK_CAR
284 select INTEL_CAR_CQOS
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700285 help
286 Cache Quality of Service allows more fine-grained control of cache
287 usage. As result, it is possible to set up portion of L2 cache for
288 CAR and use remainder for actual caching.
289
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530290config USE_APOLLOLAKE_FSP_CAR
291 bool "Use FSP CAR"
292 select FSP_CAR
293 help
Subrata Banik7952e282017-03-14 18:26:27 +0530294 Use FSP APIs to initialize & tear down the Cache-As-Ram.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530295
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700296endchoice
Saurabh Satija734aa872016-06-21 14:22:16 -0700297
Subrata Banik8e1c12f12017-03-10 13:51:11 +0530298#
299# Each bit in QOS mask controls this many bytes. This is calculated as:
300# (CACHE_WAYS / CACHE_BITS_PER_MASK) * CACHE_LINE_SIZE * CACHE_SETS
301#
302
303config CACHE_QOS_SIZE_PER_BIT
304 hex
305 default 0x20000 # 128 KB
306
307config L2_CACHE_SIZE
308 hex
309 default 0x100000
310
Aaron Durbinbdb6cc92016-08-11 09:48:52 -0500311config SPI_FLASH_INCLUDE_ALL_DRIVERS
312 bool
313 default n
314
Brandon Breitenstein135eae92016-09-30 13:57:12 -0700315config SMM_RESERVED_SIZE
316 hex
317 default 0x100000
318
Andrey Petrov4c5b31e2016-11-06 23:43:57 -0800319config IFD_CHIPSET
320 string
321 default "aplk"
322
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700323endif