blob: 8182caa51cbfe8bea2d10c9ebe7a2970887098ab [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
180 depends on PLATFORM_USES_FSP2_0
181 help
182 Select this option to display coreboot's use of ESRAM.
183
Lee Leahy87df8d02016-02-07 14:37:13 -0800184#####
Lee Leahy9fd08952016-02-02 07:17:06 -0800185# Flash layout
186# Specify the size of the coreboot file system in the read-only
187# (recovery) portion of the flash part.
188#####
189
190config CBFS_SIZE
191 hex
192 default 0x200000
193 help
194 Specify the size of the coreboot file system in the read-only (recovery)
195 portion of the flash part. On Quark systems the firmware image stores
196 more than just coreboot, including:
197 - The chipset microcode (RMU) binary file located at 0xFFF00000
198 - Intel Trusted Execution Engine firmware
199
200#####
Lee Leahya7ba56e2016-02-07 10:42:14 -0800201# FSP binary
202# The following options control the FSP binary file placement in
203# the flash image and ESRAM. This file is required by the Quark
204# SoC code to boot coreboot and its payload.
205#####
206
207config ADD_FSP_RAW_BIN
208 bool "Add the Intel FSP binary to the flash image without relocation"
209 default n
210 depends on PLATFORM_USES_FSP1_1
211 help
212 Select this option to add an Intel FSP binary to
213 the resulting coreboot image.
214
215 Note: Without this binary, coreboot builds relying on the FSP
216 will not boot
217
218config FSP_FILE
219 string "Intel FSP binary path and filename"
Lee Leahy54f857b2016-09-28 18:03:13 -0700220 default "3rdparty/blobs/soc/intel/quark/$(CONFIG_FSP_TYPE)/$(CONFIG_FSP_BUILD_TYPE)/FSP.fd"
Lee Leahya7ba56e2016-02-07 10:42:14 -0800221 depends on PLATFORM_USES_FSP1_1
222 depends on ADD_FSP_RAW_BIN
223 help
224 The path and filename of the Intel FSP binary for this platform.
225
226config FSP_IMAGE_ID_STRING
227 string "8 byte platform string identifying the FSP platform"
228 default "QUK-FSP0"
229 depends on PLATFORM_USES_FSP1_1
230 help
231 8 ASCII character byte signature string that will help match the FSP
232 binary to a supported hardware configuration.
233
234config FSP_LOC
235 hex
236 default 0xfff80000
237 depends on PLATFORM_USES_FSP1_1
238 help
239 The location in CBFS that the FSP is located. This must match the
240 value that is set in the FSP binary. If the FSP needs to be moved,
241 rebase the FSP with Intel's BCT (tool).
242
243config FSP_ESRAM_LOC
244 hex
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700245 default 0x80000000 if PLATFORM_USES_FSP1_1
246 default 0x80040000
Lee Leahya7ba56e2016-02-07 10:42:14 -0800247 help
248 The location in ESRAM where a copy of the FSP binary is placed.
249
Lee Leahyd4edacb2016-02-08 07:12:30 -0800250config RELOCATE_FSP_INTO_DRAM
251 bool "Relocate FSP into DRAM"
252 default n
253 depends on PLATFORM_USES_FSP1_1
254 help
255 Relocate the FSP binary into DRAM before the call to SiliconInit.
256
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700257config FSP_M_FILE
258 string
259 depends on PLATFORM_USES_FSP2_0
Lee Leahy54f857b2016-09-28 18:03:13 -0700260 default "3rdparty/blobs/soc/intel/quark/$(CONFIG_FSP_TYPE)/$(CONFIG_FSP_BUILD_TYPE)/FSP_M.fd"
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700261
262config FSP_S_FILE
263 string
264 depends on PLATFORM_USES_FSP2_0
Lee Leahy54f857b2016-09-28 18:03:13 -0700265 default "3rdparty/blobs/soc/intel/quark/$(CONFIG_FSP_TYPE)/$(CONFIG_FSP_BUILD_TYPE)/FSP_S.fd"
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700266
Lee Leahya7ba56e2016-02-07 10:42:14 -0800267#####
Lee Leahy9fd08952016-02-02 07:17:06 -0800268# RMU binary
269# The following options control the Quark chipset microcode file
270# placement in the flash image. This file is required to bring
271# the Quark processor out of reset.
272#####
273
274config ADD_RMU_FILE
275 bool "Should the RMU binary be added to the flash image?"
276 default n
277 help
278 The RMU file is required to get the chip out of reset.
279
280config RMU_FILE
281 string
282 default "3rdparty/blobs/soc/intel/quark/rmu.bin"
283 depends on ADD_RMU_FILE
284 help
285 The path and filename of the Intel Quark RMU binary.
286
287config RMU_LOC
288 hex
289 default 0xfff00000
290 depends on ADD_RMU_FILE
291 help
292 The location in CBFS that the RMU is located. It must match the
293 strap-determined base address.
294
Lee Leahyce9e21a2016-06-05 18:48:31 -0700295#####
296# Bootblock
297# The following options support the C_ENVIRONMENT_BOOTBLOCK.
298#####
299
300config DCACHE_BSP_STACK_SIZE
301 hex
302 default 0x4000
303
304config C_ENV_BOOTBLOCK_SIZE
305 hex
306 default 0x8000
307
Lee Leahy2ed7eb72016-01-01 18:08:48 -0800308endif # SOC_INTEL_QUARK