blob: aa55444e02bcf93159f9e77ad82765b33eb8987a [file] [log] [blame]
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -05001config SOC_INTEL_BAYTRAIL
2 bool
3 help
4 Bay Trail M/D part support.
5
6if SOC_INTEL_BAYTRAIL
7
8config CPU_SPECIFIC_OPTIONS
9 def_bool y
Furquan Shaikh99ac98f2014-04-23 10:18:48 -070010 select ARCH_BOOTBLOCK_X86_32
11 select ARCH_ROMSTAGE_X86_32
12 select ARCH_RAMSTAGE_X86_32
Kein Yuan35110232014-02-22 12:26:55 -080013 select BACKUP_DEFAULT_SMM_REGION
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -050014 select CACHE_MRC_SETTINGS
Vadim Bendeburyc04e1712013-09-27 16:21:04 -070015 select CAR_MIGRATION
Aaron Durbin794bddf2013-09-27 11:38:36 -050016 select COLLECT_TIMESTAMPS
Aaron Durbin59d1d872014-01-14 17:34:10 -060017 select CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED
Vadim Bendeburyc04e1712013-09-27 16:21:04 -070018 select CPU_MICROCODE_IN_CBFS
19 select DYNAMIC_CBMEM
Aaron Durbince7ecf92013-10-24 08:42:10 -050020 select HAVE_MONOTONIC_TIMER
Vadim Bendeburyc04e1712013-09-27 16:21:04 -070021 select HAVE_SMI_HANDLER
Aaron Durbin6ecdb682013-10-10 20:54:57 -050022 select HAVE_HARD_RESET
Vadim Bendeburyc04e1712013-09-27 16:21:04 -070023 select MMCONF_SUPPORT
24 select MMCONF_SUPPORT_DEFAULT
25 select RELOCATABLE_MODULES
Kyösti Mälkkid05d0db2014-10-16 14:54:03 +030026 select RELOCATABLE_RAMSTAGE
Aaron Durbin302cbd62013-10-21 12:36:17 -050027 select PARALLEL_MP
Duncan Lauriec6313db2014-01-16 11:18:36 -080028 select PCIEXP_ASPM
29 select PCIEXP_COMMON_CLOCK
Vadim Bendeburyc04e1712013-09-27 16:21:04 -070030 select SMM_MODULES
31 select SMM_TSEG
32 select SMP
33 select SPI_FLASH
34 select SSE2
35 select SUPPORT_CPU_UCODE_IN_CBFS
36 select TSC_CONSTANT_RATE
Aaron Durbince7ecf92013-10-24 08:42:10 -050037 select TSC_MONOTONIC_TIMER
Vadim Bendeburyc04e1712013-09-27 16:21:04 -070038 select TSC_SYNC_MFENCE
39 select UDELAY_TSC
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -050040
41config BOOTBLOCK_CPU_INIT
42 string
43 default "soc/intel/baytrail/bootblock/bootblock.c"
44
45config MMCONF_BASE_ADDRESS
46 hex
47 default 0xe0000000
48
49config MAX_CPUS
50 int
51 default 4
52
53config CPU_ADDR_BITS
54 int
55 default 36
56
57config SMM_TSEG_SIZE
58 hex
59 default 0x800000
60
61config SMM_RESERVED_SIZE
62 hex
63 default 0x100000
64
65config HAVE_MRC
66 bool "Add a Memory Reference Code binary"
67 default y
68 help
69 Select this option to add a blob containing
70 memory reference code.
71 Note: Without this binary coreboot will not work
72
73if HAVE_MRC
74
75config MRC_FILE
76 string "Intel memory refeference code path and filename"
77 default "3rdparty/northbridge/intel/sandybridge/systemagent-r6.bin"
78 help
79 The path and filename of the file to use as System Agent
80 binary. Note that this points to the sandybridge binary file
81 which is will not work, but it serves its purpose to do builds.
82
83config MRC_BIN_ADDRESS
84 hex
85 default 0xfffa0000
86
Shawn Nematbakhsh13d93412013-11-26 15:37:43 -080087config MRC_RMT
88 bool "Enable MRC RMT training + debug prints"
89 default n
90
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -050091config CACHE_MRC_SETTINGS
92 bool "Save cached MRC settings"
93 default n
94
95if CACHE_MRC_SETTINGS
96
97config MRC_SETTINGS_CACHE_BASE
98 hex
99 default 0xffb00000
100
101config MRC_SETTINGS_CACHE_SIZE
102 hex
103 default 0x10000
104
105endif # CACHE_MRC_SETTINGS
106
107endif # HAVE_MRC
108
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -0500109# Cache As RAM region layout:
110#
111# +-------------+ DCACHE_RAM_BASE + DCACHE_RAM_SIZE + DCACHE_RAM_MRC_VAR_SIZE
112# | MRC usage |
113# | |
114# +-------------+ DCACHE_RAM_BASE + DCACHE_RAM_SIZE
115# | Stack |\
116# | | | * DCACHE_RAM_ROMSTAGE_STACK_SIZE
117# | v |/
118# +-------------+
119# | ^ |
120# | | |
121# | CAR Globals |
122# +-------------+ DCACHE_RAM_BASE
123#
124# Note that the MRC binary is linked to assume the region marked as "MRC usage"
125# starts at DCACHE_RAM_BASE + DCACHE_RAM_SIZE. If those values change then
126# a new MRC binary needs to be produced with the updated start and size
127# information.
128
129config DCACHE_RAM_BASE
130 hex
Aaron Durbin08a46132013-10-07 16:24:44 -0500131 default 0xff800000
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -0500132
133config DCACHE_RAM_SIZE
134 hex
Aaron Durbin08a46132013-10-07 16:24:44 -0500135 default 0x8000
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -0500136 help
137 The size of the cache-as-ram region required during bootblock
138 and/or romstage. Note DCACHE_RAM_SIZE and DCACHE_RAM_MRC_VAR_SIZE
139 must add up to a power of 2.
140
141config DCACHE_RAM_MRC_VAR_SIZE
142 hex
Aaron Durbin08a46132013-10-07 16:24:44 -0500143 default 0x8000
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -0500144 help
145 The amount of cache-as-ram region required by the reference code.
146
147config DCACHE_RAM_ROMSTAGE_STACK_SIZE
148 hex
149 default 0x800
150 help
151 The amount of anticipated stack usage from the data cache
Daniele Forsi53847a22014-07-22 18:00:56 +0200152 during pre-RAM ROM stage execution.
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -0500153
154config RESET_ON_INVALID_RAMSTAGE_CACHE
155 bool "Reset the system on S3 wake when ramstage cache invalid."
156 default n
157 depends on RELOCATABLE_RAMSTAGE
158 help
159 The baytrail romstage code caches the loaded ramstage program
160 in SMM space. On S3 wake the romstage will copy over a fresh
161 ramstage that was cached in the SMM space. This option determines
162 the action to take when the ramstage cache is invalid. If selected
163 the system will reset otherwise the ramstage will be reloaded from
164 cbfs.
165
166config CBFS_SIZE
167 hex "Size of CBFS filesystem in ROM"
168 default 0x100000
169 help
170 On Bay Trail systems the firmware image has to store a lot more
171 than just coreboot, including:
172 - a firmware descriptor
173 - Intel Management Engine firmware
174 - MRC cache information
175 This option allows to limit the size of the CBFS portion in the
176 firmware image.
177
178config ENABLE_BUILTIN_COM1
179 bool "Enable builtin COM1 Serial Port"
180 default n
181 help
182 The PMC has a legacy COM1 serial port. Choose this option to
183 configure the pads and enable it. This serial port can be used for
184 the debug console.
185
186config HAVE_ME_BIN
187 bool "Add Intel Management Engine firmware"
188 default y
189 help
190 The Intel processor in the selected system requires a special firmware
191 for an integrated controller called Management Engine (ME). The ME
192 firmware might be provided in coreboot's 3rdparty repository. If
193 not and if you don't have the firmware elsewhere, you can still
194 build coreboot without it. In this case however, you'll have to make
195 sure that you don't overwrite your ME firmware on your flash ROM.
196
197config ME_BIN_PATH
198 string "Path to management engine firmware"
199 depends on HAVE_ME_BIN
200 default "3rdparty/mainboard/$(MAINBOARDDIR)/me.bin"
201
202config HAVE_IFD_BIN
203 bool
204 default y
205
206config BUILD_WITH_FAKE_IFD
207 bool "Build with a fake IFD"
208 default y if !HAVE_IFD_BIN
209 help
210 If you don't have an Intel Firmware Descriptor (ifd.bin) for your
211 board, you can select this option and coreboot will build without it.
212 Though, the resulting coreboot.rom will not contain all parts required
213 to get coreboot running on your board. You can however write only the
214 BIOS section to your board's flash ROM and keep the other sections
215 untouched. Unfortunately the current version of flashrom doesn't
216 support this yet. But there is a patch pending [1].
217
218 WARNING: Never write a complete coreboot.rom to your flash ROM if it
219 was built with a fake IFD. It just won't work.
220
221 [1] http://www.flashrom.org/pipermail/flashrom/2013-June/011083.html
222
223config IFD_BIOS_SECTION
224 depends on BUILD_WITH_FAKE_IFD
225 string
226 default ""
227
228config IFD_ME_SECTION
229 depends on BUILD_WITH_FAKE_IFD
230 string
231 default ""
232
233config IFD_PLATFORM_SECTION
234 depends on BUILD_WITH_FAKE_IFD
235 string
236 default ""
237
238config IFD_BIN_PATH
239 string "Path to intel firmware descriptor"
240 depends on !BUILD_WITH_FAKE_IFD
241 default "3rdparty/mainboard/$(MAINBOARDDIR)/descriptor.bin"
242
Vladimir Serbinenkof1d6e7e2014-08-09 07:16:10 +0200243config HAVE_REFCODE_BLOB
244 depends on ARCH_X86
245 bool "An external reference code blob should be put into cbfs."
246 default n
247 help
248 The reference code blob will be placed into cbfs.
249
250if HAVE_REFCODE_BLOB
251
252config REFCODE_BLOB_FILE
253 string "Path and filename to reference code blob."
254 default "refcode.elf"
255 help
256 The path and filename to the file to be added to cbfs.
257
258endif # HAVE_REFCODE_BLOB
259
Aaron Durbin9a7d7bc2013-09-07 00:41:48 -0500260endif