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