blob: 3950d43f3ffe2aa187158f96c2bb2ab32debb3f2 [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 Leahy4dd34ee2016-05-02 14:31:02 -070032 select REG_SCRIPT
Lee Leahyd87d8ea2016-07-21 14:14:02 -070033 select RELOCATABLE_RAMSTAGE
Lee Leahy87df8d02016-02-07 14:37:13 -080034 select SOC_INTEL_COMMON
Lee Leahy6e8233a2016-07-30 10:34:22 -070035 select SOC_INTEL_COMMON_RESET
Lee Leahyae738ac2016-07-24 08:03:37 -070036 select SOC_SETS_MSRS
Lee Leahy87df8d02016-02-07 14:37:13 -080037 select TSC_CONSTANT_RATE
Lee Leahy6ec72c92016-05-07 09:04:46 -070038 select UART_OVERRIDE_REFCLK
Lee Leahy87df8d02016-02-07 14:37:13 -080039 select UDELAY_TSC
Lee Leahy43cdff62016-02-07 14:52:22 -080040 select UNCOMPRESSED_RAMSTAGE
Lee Leahy2ed7eb72016-01-01 18:08:48 -080041 select USE_MARCH_586
42
Lee Leahy9fd08952016-02-02 07:17:06 -080043#####
Lee Leahy87df8d02016-02-07 14:37:13 -080044# Debug serial output
45# The following options configure the debug serial port
46#####
47
Lee Leahybc518d52016-05-30 15:01:06 -070048config ENABLE_BUILTIN_HSUART0
49 bool "Enable built-in HSUART0"
50 default n
51 select NO_UART_ON_SUPERIO
52 select DRIVERS_UART_8250MEM_32
53 help
54 The Quark SoC has two HSUART. Choose this option to configure the pads
55 and enable HSUART0, which can be used for the debug console.
56
Lee Leahy87df8d02016-02-07 14:37:13 -080057config ENABLE_BUILTIN_HSUART1
58 bool "Enable built-in HSUART1"
Lee Leahybc518d52016-05-30 15:01:06 -070059 default n
60 depends on ! ENABLE_BUILTIN_HSUART0
Lee Leahy87df8d02016-02-07 14:37:13 -080061 select NO_UART_ON_SUPERIO
62 select DRIVERS_UART_8250MEM_32
63 help
64 The Quark SoC has two HSUART. Choose this option to configure the pads
65 and enable HSUART1, which can be used for the debug console.
66
67config TTYS0_BASE
Lee Leahybc518d52016-05-30 15:01:06 -070068 hex "HSUART Base Address"
Lee Leahy87df8d02016-02-07 14:37:13 -080069 default 0xA0019000
Lee Leahybc518d52016-05-30 15:01:06 -070070 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1
Lee Leahy87df8d02016-02-07 14:37:13 -080071 help
Lee Leahybc518d52016-05-30 15:01:06 -070072 Memory mapped MMIO of HSUART.
Lee Leahy87df8d02016-02-07 14:37:13 -080073
74config TTYS0_LCS
75 int
Lee Leahy87df8d02016-02-07 14:37:13 -080076 default 3
Lee Leahybc518d52016-05-30 15:01:06 -070077 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1
Lee Leahy87df8d02016-02-07 14:37:13 -080078
Lee Leahybc518d52016-05-30 15:01:06 -070079# Console: PCI UART bus 0 << 20, device 20 << 15, function x << 12
Lee Leahy614ef402016-05-04 12:50:51 -070080# Valid bit, PCI UART in use: 1 << 31
81config UART_PCI_ADDR
82 hex
Lee Leahybc518d52016-05-30 15:01:06 -070083 default 0x800a1000 if ENABLE_BUILTIN_HSUART0
84 default 0x800a5000 if ENABLE_BUILTIN_HSUART1
85 depends on ENABLE_BUILTIN_HSUART0 || ENABLE_BUILTIN_HSUART1
Lee Leahy614ef402016-05-04 12:50:51 -070086
Lee Leahy87df8d02016-02-07 14:37:13 -080087#####
Lee Leahya7ba56e2016-02-07 10:42:14 -080088# Debug support
89# The following options provide debug support for the Quark coreboot
90# code. The SD LED is used as a binary marker to determine if a
91# specific point in the execution flow has been reached.
92#####
93
94config ENABLE_DEBUG_LED
95 bool
96 default n
97 help
98 Enable the use of the SD LED for early debugging before serial output
99 is available. Setting this LED indicates that control has reached the
100 desired check point.
101
102config ENABLE_DEBUG_LED_ESRAM
103 bool "SD LED indicates ESRAM initialized"
104 default n
105 select ENABLE_DEBUG_LED
106 help
107 Indicate that ESRAM has been successfully initialized.
108
109config ENABLE_DEBUG_LED_FINDFSP
110 bool "SD LED indicates fsp.bin file was found"
111 default n
112 select ENABLE_DEBUG_LED
113 help
114 Indicate that fsp.bin was found.
115
116config ENABLE_DEBUG_LED_TEMPRAMINIT
117 bool "SD LED indicates TempRamInit was successful"
118 default n
119 select ENABLE_DEBUG_LED
120 help
121 Indicate that TempRamInit was successful.
122
123#####
Lee Leahy87df8d02016-02-07 14:37:13 -0800124# ESRAM layout
125# Specify the portion of the ESRAM for coreboot to use as its data area.
126#####
127
128config DCACHE_RAM_BASE
129 hex
Lee Leahy102f6252016-07-25 07:41:54 -0700130 default 0x80070000 if PLATFORM_USES_FSP1_1
131 default 0x80000000
Lee Leahy87df8d02016-02-07 14:37:13 -0800132
133config DCACHE_RAM_SIZE
134 hex
Lee Leahy102f6252016-07-25 07:41:54 -0700135 default 0x8000 if PLATFORM_USES_FSP1_1
136 default 0x40000
Lee Leahy87df8d02016-02-07 14:37:13 -0800137
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700138config DISPLAY_ESRAM_LAYOUT
139 bool "Display ESRAM layout"
140 default n
141 depends on PLATFORM_USES_FSP2_0
142 help
143 Select this option to display coreboot's use of ESRAM.
144
Lee Leahy87df8d02016-02-07 14:37:13 -0800145#####
Lee Leahy9fd08952016-02-02 07:17:06 -0800146# Flash layout
147# Specify the size of the coreboot file system in the read-only
148# (recovery) portion of the flash part.
149#####
150
151config CBFS_SIZE
152 hex
153 default 0x200000
154 help
155 Specify the size of the coreboot file system in the read-only (recovery)
156 portion of the flash part. On Quark systems the firmware image stores
157 more than just coreboot, including:
158 - The chipset microcode (RMU) binary file located at 0xFFF00000
159 - Intel Trusted Execution Engine firmware
160
161#####
Lee Leahya7ba56e2016-02-07 10:42:14 -0800162# FSP binary
163# The following options control the FSP binary file placement in
164# the flash image and ESRAM. This file is required by the Quark
165# SoC code to boot coreboot and its payload.
166#####
167
168config ADD_FSP_RAW_BIN
169 bool "Add the Intel FSP binary to the flash image without relocation"
170 default n
171 depends on PLATFORM_USES_FSP1_1
172 help
173 Select this option to add an Intel FSP binary to
174 the resulting coreboot image.
175
176 Note: Without this binary, coreboot builds relying on the FSP
177 will not boot
178
179config FSP_FILE
180 string "Intel FSP binary path and filename"
181 default "3rdparty/blobs/soc/intel/quark/fsp.bin"
182 depends on PLATFORM_USES_FSP1_1
183 depends on ADD_FSP_RAW_BIN
184 help
185 The path and filename of the Intel FSP binary for this platform.
186
187config FSP_IMAGE_ID_STRING
188 string "8 byte platform string identifying the FSP platform"
189 default "QUK-FSP0"
190 depends on PLATFORM_USES_FSP1_1
191 help
192 8 ASCII character byte signature string that will help match the FSP
193 binary to a supported hardware configuration.
194
195config FSP_LOC
196 hex
197 default 0xfff80000
198 depends on PLATFORM_USES_FSP1_1
199 help
200 The location in CBFS that the FSP is located. This must match the
201 value that is set in the FSP binary. If the FSP needs to be moved,
202 rebase the FSP with Intel's BCT (tool).
203
204config FSP_ESRAM_LOC
205 hex
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700206 default 0x80000000 if PLATFORM_USES_FSP1_1
207 default 0x80040000
Lee Leahya7ba56e2016-02-07 10:42:14 -0800208 help
209 The location in ESRAM where a copy of the FSP binary is placed.
210
Lee Leahyd4edacb2016-02-08 07:12:30 -0800211config RELOCATE_FSP_INTO_DRAM
212 bool "Relocate FSP into DRAM"
213 default n
214 depends on PLATFORM_USES_FSP1_1
215 help
216 Relocate the FSP binary into DRAM before the call to SiliconInit.
217
Lee Leahyf26fc0f2016-07-25 10:14:07 -0700218config FSP_M_FILE
219 string
220 depends on PLATFORM_USES_FSP2_0
221 default "3rdparty/blobs/soc/intel/quark/FSP_M.fd"
222
223config FSP_S_FILE
224 string
225 depends on PLATFORM_USES_FSP2_0
226 default "3rdparty/blobs/soc/intel/quark/FSP_S.fd"
227
Lee Leahya7ba56e2016-02-07 10:42:14 -0800228#####
Lee Leahy9fd08952016-02-02 07:17:06 -0800229# RMU binary
230# The following options control the Quark chipset microcode file
231# placement in the flash image. This file is required to bring
232# the Quark processor out of reset.
233#####
234
235config ADD_RMU_FILE
236 bool "Should the RMU binary be added to the flash image?"
237 default n
238 help
239 The RMU file is required to get the chip out of reset.
240
241config RMU_FILE
242 string
243 default "3rdparty/blobs/soc/intel/quark/rmu.bin"
244 depends on ADD_RMU_FILE
245 help
246 The path and filename of the Intel Quark RMU binary.
247
248config RMU_LOC
249 hex
250 default 0xfff00000
251 depends on ADD_RMU_FILE
252 help
253 The location in CBFS that the RMU is located. It must match the
254 strap-determined base address.
255
Lee Leahyce9e21a2016-06-05 18:48:31 -0700256#####
257# Bootblock
258# The following options support the C_ENVIRONMENT_BOOTBLOCK.
259#####
260
261config DCACHE_BSP_STACK_SIZE
262 hex
263 default 0x4000
264
265config C_ENV_BOOTBLOCK_SIZE
266 hex
267 default 0x8000
268
Lee Leahy2ed7eb72016-01-01 18:08:48 -0800269endif # SOC_INTEL_QUARK