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