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