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