blob: c697b561bdf4e2154071498976d319d9887ffbea [file] [log] [blame]
Lee Leahy2ed7eb72016-01-01 18:08:48 -08001##
2## This file is part of the coreboot project.
3##
4## Copyright (C) 2015-2016 Intel Corp.
5##
6## This program is free software; you can redistribute it and/or modify
7## it under the terms of the GNU General Public License as published by
8## the Free Software Foundation; version 2 of the License.
9##
10## This program is distributed in the hope that it will be useful,
11## but WITHOUT ANY WARRANTY; without even the implied warranty of
12## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13## GNU General Public License for more details.
14##
15
16config SOC_INTEL_QUARK
17 bool
18 help
19 Intel Quark support
20
21if SOC_INTEL_QUARK
22
23config CPU_SPECIFIC_OPTIONS
24 def_bool y
25 select ARCH_BOOTBLOCK_X86_32
26 select ARCH_RAMSTAGE_X86_32
27 select ARCH_ROMSTAGE_X86_32
28 select ARCH_VERSTAGE_X86_32
Lee Leahyce9e21a2016-06-05 18:48:31 -070029 select BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP
30 select C_ENVIRONMENT_BOOTBLOCK
Lee Leahy6e8233a2016-07-30 10:34:22 -070031 select HAVE_HARD_RESET
Lee Leahy68fdb782016-12-31 08:21:56 -080032 select HAVE_MONOTONIC_TIMER
Lee Leahy73f6a282016-12-28 12:53:37 -080033 select NO_MMCONF_SUPPORT
Lee Leahy4dd34ee2016-05-02 14:31:02 -070034 select REG_SCRIPT
Lee Leahyd87d8ea2016-07-21 14:14:02 -070035 select RELOCATABLE_RAMSTAGE
Lee Leahy87df8d02016-02-07 14:37:13 -080036 select SOC_INTEL_COMMON
Lee Leahy6e8233a2016-07-30 10:34:22 -070037 select SOC_INTEL_COMMON_RESET
Lee Leahyae738ac2016-07-24 08:03:37 -070038 select SOC_SETS_MSRS
Lee Leahy87df8d02016-02-07 14:37:13 -080039 select TSC_CONSTANT_RATE
Lee Leahy6ec72c92016-05-07 09:04:46 -070040 select UART_OVERRIDE_REFCLK
Lee Leahy87df8d02016-02-07 14:37:13 -080041 select UDELAY_TSC
Lee Leahy43cdff62016-02-07 14:52:22 -080042 select UNCOMPRESSED_RAMSTAGE
Lee Leahy2ed7eb72016-01-01 18:08:48 -080043 select USE_MARCH_586
44
Lee Leahy73f6a282016-12-28 12:53:37 -080045config MMCOMF_SUPPORT_DEFAULT
46 bool
47 default n
48
Lee Leahy9fd08952016-02-02 07:17:06 -080049#####
Lee Leahy87df8d02016-02-07 14:37:13 -080050# Debug serial output
51# The following options configure the debug serial port
52#####
53
Lee Leahybc518d52016-05-30 15:01:06 -070054config ENABLE_BUILTIN_HSUART0
55 bool "Enable built-in HSUART0"
56 default n
57 select NO_UART_ON_SUPERIO
58 select DRIVERS_UART_8250MEM_32
59 help
60 The Quark SoC has two HSUART. Choose this option to configure the pads
61 and enable HSUART0, which can be used for the debug console.
62
Lee Leahy87df8d02016-02-07 14:37:13 -080063config ENABLE_BUILTIN_HSUART1
64 bool "Enable built-in HSUART1"
Lee Leahybc518d52016-05-30 15:01:06 -070065 default n
66 depends on ! ENABLE_BUILTIN_HSUART0
Lee Leahy87df8d02016-02-07 14:37:13 -080067 select NO_UART_ON_SUPERIO
68 select DRIVERS_UART_8250MEM_32
69 help
70 The Quark SoC has two HSUART. Choose this option to configure the pads
71 and enable HSUART1, which can be used for the debug console.
72
73config TTYS0_BASE
Lee Leahybc518d52016-05-30 15:01:06 -070074 hex "HSUART Base Address"
Lee Leahy87df8d02016-02-07 14:37:13 -080075 default 0xA0019000
Lee Leahybc518d52016-05-30 15:01:06 -070076 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1
Lee Leahy87df8d02016-02-07 14:37:13 -080077 help
Lee Leahybc518d52016-05-30 15:01:06 -070078 Memory mapped MMIO of HSUART.
Lee Leahy87df8d02016-02-07 14:37:13 -080079
80config TTYS0_LCS
81 int
Lee Leahy87df8d02016-02-07 14:37:13 -080082 default 3
Lee Leahybc518d52016-05-30 15:01:06 -070083 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1
Lee Leahy87df8d02016-02-07 14:37:13 -080084
Lee Leahybc518d52016-05-30 15:01:06 -070085# Console: PCI UART bus 0 << 20, device 20 << 15, function x << 12
Lee Leahy614ef402016-05-04 12:50:51 -070086# Valid bit, PCI UART in use: 1 << 31
87config UART_PCI_ADDR
88 hex
Lee Leahybc518d52016-05-30 15:01:06 -070089 default 0x800a1000 if ENABLE_BUILTIN_HSUART0
90 default 0x800a5000 if ENABLE_BUILTIN_HSUART1
91 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1
Lee Leahy614ef402016-05-04 12:50:51 -070092
Lee Leahy87df8d02016-02-07 14:37:13 -080093#####
Lee Leahya7ba56e2016-02-07 10:42:14 -080094# Debug support
95# The following options provide debug support for the Quark coreboot
96# code. The SD LED is used as a binary marker to determine if a
97# specific point in the execution flow has been reached.
98#####
99
100config ENABLE_DEBUG_LED
101 bool
102 default n
103 help
104 Enable the use of the SD LED for early debugging before serial output
105 is available. Setting this LED indicates that control has reached the
106 desired check point.
107
108config ENABLE_DEBUG_LED_ESRAM
109 bool "SD LED indicates ESRAM initialized"
110 default n
111 select ENABLE_DEBUG_LED
112 help
Lee Leahya7650902016-12-28 11:43:10 -0800113 Indicate that ESRAM has been successfully initialized. If the SD LED
114 does not light then the ESRAM initialization needs to be debugged.
Lee Leahya7ba56e2016-02-07 10:42:14 -0800115
116config ENABLE_DEBUG_LED_FINDFSP
117 bool "SD LED indicates fsp.bin file was found"
Lee Leahya7650902016-12-28 11:43:10 -0800118 depends on PLATFORM_USES_FSP1_1
Lee Leahya7ba56e2016-02-07 10:42:14 -0800119 default n
120 select ENABLE_DEBUG_LED
121 help
Lee Leahya7650902016-12-28 11:43:10 -0800122 Indicate that fsp.bin was found. If the SD LED does not light then
123 the code between ESRAM initialization through find_fsp needs to
124 debugged. Start by verifying that the correct fsp.bin is in the
125 image.
Lee Leahya7ba56e2016-02-07 10:42:14 -0800126
Lee Leahya7650902016-12-28 11:43:10 -0800127config ENABLE_DEBUG_LED_BOOTBLOCK_ENTRY
128 bool "SD LED indicates bootblock.c successfully entered"
Lee Leahya7ba56e2016-02-07 10:42:14 -0800129 default n
130 select ENABLE_DEBUG_LED
131 help
Lee Leahya7650902016-12-28 11:43:10 -0800132 Indicate that bootblock_c_entry was entered. If the SD LED does not
133 light then debug the code between ESRAM and bootblock_c_entry. For
134 FSP 1.1, use ENABLE_DEBUG_LED_FINDFSP to split this code.
135
136config ENABLE_DEBUG_LED_SOC_EARLY_INIT_ENTRY
137 bool "SD LED indicates bootblock_soc_early_init successfully entered"
138 default n
139 select ENABLE_DEBUG_LED
140 help
141 Indicate that bootblock_soc_early_init was entered. If the SD LED
142 does not light then debug the code in bootblock_main_with_timestamp.
143
144config ENABLE_DEBUG_LED_SOC_EARLY_INIT_EXIT
145 bool "SD LED indicates bootblock_soc_early_init successfully exited"
146 default n
147 select ENABLE_DEBUG_LED
148 help
149 Indicate that bootblock_soc_early_init exited. If the SD LED does not
150 light then debug the scripts in bootblock_soc_early_init.
151
152config ENABLE_DEBUG_LED_SOC_INIT_ENTRY
153 bool "SD LED indicates bootblock_soc_init successfully entered"
154 default n
155 select ENABLE_DEBUG_LED
156 help
157 Indicate that bootblock_soc_init was entered. If the SD LED does not
158 light then debug the code in bootblock_mainboard_early_init and
159 console_init. If the SD LED does light but there is no serial then
160 debug the serial port configuration and initialization.
Lee Leahya7ba56e2016-02-07 10:42:14 -0800161
162#####
Lee Leahy87df8d02016-02-07 14:37:13 -0800163# ESRAM layout
164# Specify the portion of the ESRAM for coreboot to use as its data area.
165#####
166
167config DCACHE_RAM_BASE
168 hex
Lee Leahy102f6252016-07-25 07:41:54 -0700169 default 0x80070000 if PLATFORM_USES_FSP1_1
170 default 0x80000000
Lee Leahy87df8d02016-02-07 14:37:13 -0800171
172config DCACHE_RAM_SIZE
173 hex
Lee Leahy102f6252016-07-25 07:41:54 -0700174 default 0x8000 if PLATFORM_USES_FSP1_1
175 default 0x40000
Lee Leahy87df8d02016-02-07 14:37:13 -0800176
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700177config DISPLAY_ESRAM_LAYOUT
178 bool "Display ESRAM layout"
179 default n
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700180 help
181 Select this option to display coreboot's use of ESRAM.
182
Lee Leahy87df8d02016-02-07 14:37:13 -0800183#####
Lee Leahy9fd08952016-02-02 07:17:06 -0800184# Flash layout
185# Specify the size of the coreboot file system in the read-only
186# (recovery) portion of the flash part.
187#####
188
189config CBFS_SIZE
190 hex
191 default 0x200000
192 help
193 Specify the size of the coreboot file system in the read-only (recovery)
194 portion of the flash part. On Quark systems the firmware image stores
195 more than just coreboot, including:
196 - The chipset microcode (RMU) binary file located at 0xFFF00000
197 - Intel Trusted Execution Engine firmware
198
199#####
Lee Leahya7ba56e2016-02-07 10:42:14 -0800200# FSP binary
201# The following options control the FSP binary file placement in
202# the flash image and ESRAM. This file is required by the Quark
203# SoC code to boot coreboot and its payload.
204#####
205
206config ADD_FSP_RAW_BIN
207 bool "Add the Intel FSP binary to the flash image without relocation"
208 default n
209 depends on PLATFORM_USES_FSP1_1
210 help
211 Select this option to add an Intel FSP binary to
212 the resulting coreboot image.
213
214 Note: Without this binary, coreboot builds relying on the FSP
215 will not boot
216
217config FSP_FILE
218 string "Intel FSP binary path and filename"
Lee Leahy54f857b2016-09-28 18:03:13 -0700219 default "3rdparty/blobs/soc/intel/quark/$(CONFIG_FSP_TYPE)/$(CONFIG_FSP_BUILD_TYPE)/FSP.fd"
Lee Leahya7ba56e2016-02-07 10:42:14 -0800220 depends on PLATFORM_USES_FSP1_1
221 depends on ADD_FSP_RAW_BIN
222 help
223 The path and filename of the Intel FSP binary for this platform.
224
225config FSP_IMAGE_ID_STRING
226 string "8 byte platform string identifying the FSP platform"
227 default "QUK-FSP0"
228 depends on PLATFORM_USES_FSP1_1
229 help
230 8 ASCII character byte signature string that will help match the FSP
231 binary to a supported hardware configuration.
232
233config FSP_LOC
234 hex
235 default 0xfff80000
236 depends on PLATFORM_USES_FSP1_1
237 help
238 The location in CBFS that the FSP is located. This must match the
239 value that is set in the FSP binary. If the FSP needs to be moved,
240 rebase the FSP with Intel's BCT (tool).
241
242config FSP_ESRAM_LOC
243 hex
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700244 default 0x80000000 if PLATFORM_USES_FSP1_1
245 default 0x80040000
Lee Leahya7ba56e2016-02-07 10:42:14 -0800246 help
247 The location in ESRAM where a copy of the FSP binary is placed.
248
Lee Leahyd4edacb2016-02-08 07:12:30 -0800249config RELOCATE_FSP_INTO_DRAM
250 bool "Relocate FSP into DRAM"
251 default n
252 depends on PLATFORM_USES_FSP1_1
253 help
254 Relocate the FSP binary into DRAM before the call to SiliconInit.
255
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700256config FSP_M_FILE
257 string
258 depends on PLATFORM_USES_FSP2_0
Lee Leahy54f857b2016-09-28 18:03:13 -0700259 default "3rdparty/blobs/soc/intel/quark/$(CONFIG_FSP_TYPE)/$(CONFIG_FSP_BUILD_TYPE)/FSP_M.fd"
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700260
261config FSP_S_FILE
262 string
263 depends on PLATFORM_USES_FSP2_0
Lee Leahy54f857b2016-09-28 18:03:13 -0700264 default "3rdparty/blobs/soc/intel/quark/$(CONFIG_FSP_TYPE)/$(CONFIG_FSP_BUILD_TYPE)/FSP_S.fd"
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700265
Lee Leahya7ba56e2016-02-07 10:42:14 -0800266#####
Lee Leahy9fd08952016-02-02 07:17:06 -0800267# RMU binary
268# The following options control the Quark chipset microcode file
269# placement in the flash image. This file is required to bring
270# the Quark processor out of reset.
271#####
272
273config ADD_RMU_FILE
274 bool "Should the RMU binary be added to the flash image?"
275 default n
276 help
277 The RMU file is required to get the chip out of reset.
278
279config RMU_FILE
280 string
281 default "3rdparty/blobs/soc/intel/quark/rmu.bin"
282 depends on ADD_RMU_FILE
283 help
284 The path and filename of the Intel Quark RMU binary.
285
286config RMU_LOC
287 hex
288 default 0xfff00000
289 depends on ADD_RMU_FILE
290 help
291 The location in CBFS that the RMU is located. It must match the
292 strap-determined base address.
293
Lee Leahyce9e21a2016-06-05 18:48:31 -0700294#####
295# Bootblock
296# The following options support the C_ENVIRONMENT_BOOTBLOCK.
297#####
298
299config DCACHE_BSP_STACK_SIZE
300 hex
301 default 0x4000
302
303config C_ENV_BOOTBLOCK_SIZE
304 hex
305 default 0x8000
306
Lee Leahy2ed7eb72016-01-01 18:08:48 -0800307endif # SOC_INTEL_QUARK