blob: 7ec97bf11caeeb13455ce1fd66767dc33b5a15b6 [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
Duncan Laurieff8bce02016-06-27 10:57:13 -070060 select SOC_INTEL_COMMON_LPSS_I2C
61 select SOC_INTEL_COMMON_SMI
Furquan Shaikhd0c000522016-11-21 09:19:53 -080062 select SOC_INTEL_COMMON_SPI_FLASH_PROTECT
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070063 select UDELAY_TSC
Andrey Petrov87fb1a62016-02-10 17:47:03 -080064 select TSC_CONSTANT_RATE
Hannah Williamsb13d4542016-03-14 17:38:51 -070065 select TSC_MONOTONIC_TIMER
66 select HAVE_MONOTONIC_TIMER
Andrey Petrov0d187912016-02-25 18:39:38 -080067 select PLATFORM_USES_FSP2_0
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070068 select HAVE_HARD_RESET
69 select SOC_INTEL_COMMON
Andrey Petrov868679f2016-05-12 19:11:48 -070070 select SOC_INTEL_COMMON_GFX_OPREGION
Andrey Petrovd8db26d2017-03-06 14:47:05 -080071 select SOC_INTEL_COMMON_BLOCK
72 select SOC_INTEL_COMMON_BLOCK_CSE
Andrey Petrov868679f2016-05-12 19:11:48 -070073 select ADD_VBT_DATA_FILE
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070074
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070075config CHROMEOS
76 select CHROMEOS_RAMOOPS_DYNAMIC
Julius Werner58c39382017-02-13 17:53:29 -080077
78config VBOOT
79 select VBOOT_SEPARATE_VERSTAGE
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070080 select VBOOT_OPROM_MATTERS
Furquan Shaikh7c7b2912016-07-22 09:02:35 -070081 select VBOOT_SAVE_RECOVERY_REASON_ON_REBOOT
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070082 select VBOOT_STARTS_IN_BOOTBLOCK
Furquan Shaikh2a12e2e2016-07-25 11:48:03 -070083 select VBOOT_VBNV_CMOS
84 select VBOOT_VBNV_CMOS_BACKUP_TO_FLASH
Furquan Shaikh87b1bcc2016-07-22 12:57:51 -070085
Aaron Durbin80a3df22016-04-27 23:05:52 -050086config TPM_ON_FAST_SPI
87 bool
88 default n
89 select LPC_TPM
90 help
91 TPM part is conntected on Fast SPI interface, but the LPC MMIO
92 TPM transactions are decoded and serialized over the SPI interface.
93
Zhao, Lijiand8d42c22016-03-14 14:19:22 -070094config SOC_INTEL_COMMON_RESET
95 bool
Andrey Petrov9c0e1802016-06-23 08:26:00 -070096 default y
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -070097
Subrata Banikccd87002017-03-08 17:55:26 +053098config PCR_BASE_ADDRESS
99 hex
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700100 default 0xd0000000
Subrata Banikccd87002017-03-08 17:55:26 +0530101 help
102 This option allows you to select MMIO Base Address of sideband bus.
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700103
104config DCACHE_RAM_BASE
105 hex "Base address of cache-as-RAM"
106 default 0xfef00000
107
108config DCACHE_RAM_SIZE
109 hex "Length in bytes of cache-as-RAM"
Andrey Petrov0dde2912016-06-27 15:21:26 -0700110 default 0xc0000
Alexandru Gagniucdfc2b312015-10-06 17:16:41 -0700111 help
112 The size of the cache-as-ram region required during bootblock
113 and/or romstage.
114
115config DCACHE_BSP_STACK_SIZE
116 hex
117 default 0x4000
118 help
119 The amount of anticipated stack usage in CAR by bootblock and
120 other stages.
121
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700122config CPU_ADDR_BITS
123 int
124 default 36
125
Furquan Shaikh340908a2017-04-04 11:47:19 -0700126config SOC_INTEL_COMMON_LPSS_CLOCK_MHZ
Duncan Laurieff8bce02016-06-27 10:57:13 -0700127 int
128 default 133
129
Andrey Petrov87fb1a62016-02-10 17:47:03 -0800130config CONSOLE_UART_BASE_ADDRESS
131 depends on CONSOLE_SERIAL
132 hex "MMIO base address for UART"
133 default 0xde000000
134
Aaron Durbin61810302016-02-24 18:49:07 -0600135config SOC_UART_DEBUG
136 bool "Enable SoC UART debug port selected by UART_FOR_CONSOLE."
137 default n
138 select CONSOLE_SERIAL
Aaron Durbin61810302016-02-24 18:49:07 -0600139 select DRIVERS_UART
140 select DRIVERS_UART_8250MEM_32
141 select NO_UART_ON_SUPERIO
142
Aaron Durbinada13ed2016-02-11 14:47:33 -0600143# 32KiB bootblock is all that is mapped in by the CSE at top of 4GiB.
144config C_ENV_BOOTBLOCK_SIZE
145 hex
146 default 0x8000
147
Andrey Petrov5672dcd2016-02-12 15:12:43 -0800148# This SoC does not map SPI flash like many previous SoC. Therefore we provide
149# a custom media driver that facilitates mapping
150config X86_TOP4G_BOOTMEDIA_MAP
151 bool
152 default n
Andrey Petrovb4831462016-02-25 17:42:25 -0800153
154config ROMSTAGE_ADDR
155 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700156 default 0xfef20000
Andrey Petrovb4831462016-02-25 17:42:25 -0800157 help
158 The base address (in CAR) where romstage should be linked
159
Aaron Durbinbef75e72016-05-26 11:00:44 -0500160config VERSTAGE_ADDR
161 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700162 default 0xfef40000
Aaron Durbinbef75e72016-05-26 11:00:44 -0500163 help
164 The base address (in CAR) where verstage should be linked
165
Hannah Williamsb13d4542016-03-14 17:38:51 -0700166config CACHE_MRC_SETTINGS
167 bool
168 default y
169
Andrey Petrov96e9ff12016-11-04 16:18:30 -0700170config MRC_SETTINGS_VARIABLE_DATA
171 bool
172 default y
173
Andrey Petrov79091db72016-05-17 00:03:27 -0700174config FSP_M_ADDR
175 hex
Andrey Petrov7f72c9b2016-06-24 18:15:09 -0700176 default 0xfef40000
Andrey Petrov79091db72016-05-17 00:03:27 -0700177 help
178 The address FSP-M will be relocated to during build time
179
Aaron Durbin9f444c32016-05-20 10:48:44 -0500180config NEED_LBP2
181 bool "Write contents for logical boot partition 2."
182 default n
183 help
184 Write the contents from a file into the logical boot partition 2
185 region defined by LBP2_FMAP_NAME.
186
187config LBP2_FMAP_NAME
188 string "Name of FMAP region to put logical boot partition 2"
189 depends on NEED_LBP2
190 default "SIGN_CSE"
191 help
192 Name of FMAP region to write logical boot partition 2 data.
193
194config LBP2_FILE_NAME
195 string "Path of file to write to logical boot partition 2 region"
196 depends on NEED_LBP2
197 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/lbp2.bin"
198 help
199 Name of file to store in the logical boot partition 2 region.
200
Furquan Shaikh7043bf32016-05-28 12:57:05 -0700201config NEED_IFWI
202 bool "Write content into IFWI region"
203 default n
204 help
205 Write the content from a file into IFWI region defined by
206 IFWI_FMAP_NAME.
207
208config IFWI_FMAP_NAME
209 string "Name of FMAP region to pull IFWI into"
210 depends on NEED_IFWI
211 default "IFWI"
212 help
213 Name of FMAP region to write IFWI.
214
215config IFWI_FILE_NAME
216 string "Path of file to write to IFWI region"
217 depends on NEED_IFWI
218 default "3rdparty/blobs/mainboard/$(CONFIG_MAINBOARD_DIR)/ifwi.bin"
219 help
220 Name of file to store in the IFWI region.
221
Sathyanarayana Nujellac4467042016-10-26 17:38:49 -0700222config HEAP_SIZE
223 hex
224 default 0x8000
225
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700226config NHLT_DMIC_1CH_16B
227 bool
228 depends on ACPI_NHLT
229 default n
230 help
231 Include DSP firmware settings for 1 channel 16B DMIC array.
232
Saurabh Satija734aa872016-06-21 14:22:16 -0700233config NHLT_DMIC_2CH_16B
234 bool
235 depends on ACPI_NHLT
236 default n
237 help
238 Include DSP firmware settings for 2 channel 16B DMIC array.
239
Sathyanarayana Nujella3e0a3fb2016-10-26 17:31:36 -0700240config NHLT_DMIC_4CH_16B
241 bool
242 depends on ACPI_NHLT
243 default n
244 help
245 Include DSP firmware settings for 4 channel 16B DMIC array.
246
Saurabh Satija734aa872016-06-21 14:22:16 -0700247config NHLT_MAX98357
248 bool
249 depends on ACPI_NHLT
250 default n
251 help
252 Include DSP firmware settings for headset codec.
253
254config NHLT_DA7219
255 bool
256 depends on ACPI_NHLT
257 default n
258 help
259 Include DSP firmware settings for headset codec.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530260
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700261choice
262 prompt "Cache-as-ram implementation"
263 default CAR_CQOS
264 help
265 This option allows you to select how cache-as-ram (CAR) is set up.
266
267config CAR_NEM
268 bool "Non-evict mode"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530269 select SOC_INTEL_COMMON_BLOCK_CAR
270 select INTEL_CAR_NEM
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700271 help
272 Traditionally, CAR is set up by using Non-Evict mode. This method
273 does not allow CAR and cache to co-exist, because cache fills are
274 block in NEM mode.
275
276config CAR_CQOS
277 bool "Cache Quality of Service"
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530278 select SOC_INTEL_COMMON_BLOCK_CAR
279 select INTEL_CAR_CQOS
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700280 help
281 Cache Quality of Service allows more fine-grained control of cache
282 usage. As result, it is possible to set up portion of L2 cache for
283 CAR and use remainder for actual caching.
284
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530285config USE_APOLLOLAKE_FSP_CAR
286 bool "Use FSP CAR"
287 select FSP_CAR
288 help
Subrata Banik7952e282017-03-14 18:26:27 +0530289 Use FSP APIs to initialize & tear down the Cache-As-Ram.
Subrata Banikfc4c7d82017-03-03 18:23:59 +0530290
Andrey Petrov3f4aece2016-06-27 13:39:34 -0700291endchoice
Saurabh Satija734aa872016-06-21 14:22:16 -0700292
Subrata Banik8e1c12f12017-03-10 13:51:11 +0530293#
294# Each bit in QOS mask controls this many bytes. This is calculated as:
295# (CACHE_WAYS / CACHE_BITS_PER_MASK) * CACHE_LINE_SIZE * CACHE_SETS
296#
297
298config CACHE_QOS_SIZE_PER_BIT
299 hex
300 default 0x20000 # 128 KB
301
302config L2_CACHE_SIZE
303 hex
304 default 0x100000
305
Aaron Durbinbdb6cc92016-08-11 09:48:52 -0500306config SPI_FLASH_INCLUDE_ALL_DRIVERS
307 bool
308 default n
309
Brandon Breitenstein135eae92016-09-30 13:57:12 -0700310config SMM_RESERVED_SIZE
311 hex
312 default 0x100000
313
Andrey Petrov4c5b31e2016-11-06 23:43:57 -0800314config IFD_CHIPSET
315 string
316 default "aplk"
317
Alexandru Gagniuc7e86cd42015-10-06 10:33:49 -0700318endif