blob: fd6a52397a087499ea9d33c335de4298a10e6302 [file] [log] [blame]
Martin Roth59aa2b12015-06-20 16:17:12 -06001##
2## This file is part of the coreboot project.
3##
4## Copyright (C) 2011 Google Inc.
5## Copyright (C) 2013-2014 Sage Electronic Engineering, LLC.
6##
7## This program is free software; you can redistribute it and/or modify
8## it under the terms of the GNU General Public License as published by
9## the Free Software Foundation; version 2 of the License.
10##
11## This program is distributed in the hope that it will be useful,
12## but WITHOUT ANY WARRANTY; without even the implied warranty of
13## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14## GNU General Public License for more details.
15##
Martin Roth59aa2b12015-06-20 16:17:12 -060016
17config HAVE_INTEL_FIRMWARE
18 bool
19 help
20 Chipset uses the Intel Firmware Descriptor to describe the
21 layout of the SPI ROM chip.
22
23if HAVE_INTEL_FIRMWARE
24
25comment "Intel Firmware"
26
27config HAVE_IFD_BIN
28 bool "Add Intel descriptor.bin file"
29 help
30 The descriptor binary
31
32config IFD_BIN_PATH
33 string "Path and filename of the descriptor.bin file"
Stefan Reinauercecabc12015-07-01 17:37:57 -070034 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/descriptor.bin"
Martin Roth59aa2b12015-06-20 16:17:12 -060035 depends on HAVE_IFD_BIN && !BUILD_WITH_FAKE_IFD
36
Martin Rothb9de78b2015-12-03 14:27:45 -070037config EM100
38 bool "Configure IFD for EM100 usage"
39 depends on HAVE_IFD_BIN && !BUILD_WITH_FAKE_IFD
40 help
41 Set SPI frequency to 20MHz and disable Dual Output Fast Read Support
42
Martin Roth59aa2b12015-06-20 16:17:12 -060043config HAVE_ME_BIN
Martin Rothc407cb92015-06-23 19:59:30 -060044 bool "Add Intel ME/TXE firmware"
Martin Rothc528c2e2015-06-27 08:59:10 -060045 depends on HAVE_IFD_BIN
Martin Roth59aa2b12015-06-20 16:17:12 -060046 help
47 The Intel processor in the selected system requires a special firmware
Martin Rothc407cb92015-06-23 19:59:30 -060048 for an integrated controller. This might be called the Management
49 Engine (ME), the Trusted Execution Engine (TXE) or something else
50 depending on the chip. This firmware might or might not be available
51 in coreboot's 3rdparty/blobs repository. If it is not and if you don't
52 have access to the firmware from elsewhere, you can still build
53 coreboot without it. In this case however, you'll have to make sure
54 that you don't overwrite your ME/TXE firmware on your flash ROM.
Martin Roth59aa2b12015-06-20 16:17:12 -060055
56config ME_BIN_PATH
57 string "Path to management engine firmware"
Stefan Reinauercecabc12015-07-01 17:37:57 -070058 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/me.bin"
Martin Roth59aa2b12015-06-20 16:17:12 -060059 depends on HAVE_ME_BIN
60
Nicola Corna16719ad2017-03-10 11:27:39 +010061config CHECK_ME
62 bool "Verify the integrity of the supplied ME/TXE firmware"
Naresh G Solanki95d6dd22017-04-12 20:15:53 +053063 default n
Nicola Corna16719ad2017-03-10 11:27:39 +010064 depends on HAVE_ME_BIN && (NORTHBRIDGE_INTEL_NEHALEM || \
65 NORTHBRIDGE_INTEL_SANDYBRIDGE || \
66 NORTHBRIDGE_INTEL_IVYBRIDGE || NORTHBRIDGE_INTEL_HASWELL || \
67 SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || \
Nicola Cornad58dd5c2018-03-31 16:40:03 +020068 SOC_INTEL_KABYLAKE || SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
Nicola Corna16719ad2017-03-10 11:27:39 +010069 help
70 Verify the integrity of the supplied Intel ME/TXE firmware before
71 proceeding with the build, in order to prevent an accidental loading
72 of a corrupted ME/TXE image.
73
Nicola Corna92e95ca2017-01-23 15:29:03 +010074config USE_ME_CLEANER
75 bool "Strip down the Intel ME/TXE firmware"
76 depends on HAVE_ME_BIN && (NORTHBRIDGE_INTEL_SANDYBRIDGE || \
77 NORTHBRIDGE_INTEL_IVYBRIDGE || NORTHBRIDGE_INTEL_HASWELL || \
78 SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || \
Nicola Cornad58dd5c2018-03-31 16:40:03 +020079 SOC_INTEL_KABYLAKE || SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
Nicola Corna92e95ca2017-01-23 15:29:03 +010080 help
81 Use me_cleaner to remove all the non-fundamental code from the Intel
82 ME/TXE firmware.
83 The resulting Intel ME/TXE firmware will have only the code
84 responsible for the very basic hardware initialization, leaving the
85 ME/TXE subsystem essentially in a disabled state.
86
87 Don't flash a modified ME/TXE firmware and a new coreboot image at the
88 same time, test them in two different steps.
89
90 WARNING: this tool isn't based on any official Intel documentation but
91 only on reverse engineering and trial & error.
92
93 See the project's page
Nicola Corna98f30342017-08-08 21:24:49 +020094 https://github.com/corna/me_cleaner
Nicola Corna92e95ca2017-01-23 15:29:03 +010095 or the wiki
Nicola Corna98f30342017-08-08 21:24:49 +020096 https://github.com/corna/me_cleaner/wiki/How-to-apply-me_cleaner
97 https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F
98 https://github.com/corna/me_cleaner/wiki/me_cleaner-status
Nicola Corna92e95ca2017-01-23 15:29:03 +010099 for more info about this tool
100
101 If unsure, say N.
102
103comment "Please test the modified ME/TXE firmware and coreboot in two steps"
104 depends on USE_ME_CLEANER
105
Martin Rothc6a177d2015-07-09 20:50:51 -0600106config HAVE_GBE_BIN
107 bool "Add gigabit ethernet firmware"
108 depends on HAVE_IFD_BIN
109 help
110 The integrated gigabit ethernet controller needs a firmware file.
111 Select this if you are going to use the PCH integrated controller
112 and have the firmware.
113
114config GBE_BIN_PATH
115 string "Path to gigabit ethernet firmware"
116 depends on HAVE_GBE_BIN
117 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/gbe.bin"
118
Lijian Zhao0fb65682017-05-16 12:11:45 -0700119config HAVE_EC_BIN
120 bool "Add EC firmware"
121 depends on HAVE_IFD_BIN
122 help
123 The embedded controller needs a firmware file.
124
125 Select this if you are going to use the PCH integrated controller
126 and have the EC firmware. EC firmware will be added to final image
127 through ifdtool.
128
129config EC_BIN_PATH
130 string "Path to EC firmware"
131 depends on HAVE_EC_BIN
132 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/ec.bin"
133
Martin Roth59aa2b12015-06-20 16:17:12 -0600134##### Fake IFD #####
135
136config BUILD_WITH_FAKE_IFD
137 bool "Build with a fake IFD" if !HAVE_IFD_BIN
138 help
139 If you don't have an Intel Firmware Descriptor (descriptor.bin) for your
140 board, you can select this option and coreboot will build without it.
141 The resulting coreboot.rom will not contain all parts required
142 to get coreboot running on your board. You can however write only the
143 BIOS section to your board's flash ROM and keep the other sections
144 untouched. Unfortunately the current version of flashrom doesn't
145 support this yet. But there is a patch pending [1].
146
147 WARNING: Never write a complete coreboot.rom to your flash ROM if it
148 was built with a fake IFD. It just won't work.
149
150 [1] http://www.flashrom.org/pipermail/flashrom/2013-June/011083.html
151
152config IFD_BIOS_SECTION
153 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600154 string "BIOS Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600155 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600156 help
157 The BIOS region is typically the size of the CBFS area, and is located
158 at the end of the ROM space.
159
160 For an 8MB ROM with a 3MB CBFS area, this would look like:
161 0x00500000:0x007fffff
Martin Roth59aa2b12015-06-20 16:17:12 -0600162
163config IFD_ME_SECTION
164 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600165 string "ME/TXE Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600166 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600167 help
168 The ME/TXE region typically starts at around 0x1000 and often fills the
169 ROM space not used by CBFS.
170
171 For an 8MB ROM with a 3MB CBFS area, this might look like:
172 0x00001000:0x004fffff
Martin Roth59aa2b12015-06-20 16:17:12 -0600173
174config IFD_GBE_SECTION
175 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600176 string "GBE Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600177 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600178 help
179 The Gigabit Ethernet ROM region is used when an Intel NIC is built into
180 the Southbridge/SOC and the platform uses this device instead of an external
181 PCIe NIC. It will be located between the ME/TXE and the BIOS region.
182
183 Leave this empty if you're unsure.
Martin Roth59aa2b12015-06-20 16:17:12 -0600184
185config IFD_PLATFORM_SECTION
186 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600187 string "Platform Region Starting:Ending addresses within the Rom"
Martin Roth59aa2b12015-06-20 16:17:12 -0600188 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600189 help
190 The Platform region is used for platform specific data.
191 It will be located between the ME/TXE and the BIOS region.
192
193 Leave this empty if you're unsure.
Martin Roth59aa2b12015-06-20 16:17:12 -0600194
Martin Roth775d5082015-06-23 21:47:19 -0600195config LOCK_MANAGEMENT_ENGINE
196 bool "Lock ME/TXE section"
Martin Roth775d5082015-06-23 21:47:19 -0600197 default n
198 help
199 The Intel Firmware Descriptor supports preventing write accesses
200 from the host to the ME or TXE section in the firmware
201 descriptor. If the section is locked, it can only be overwritten
202 with an external SPI flash programmer. You will want this if you
203 want to increase security of your ROM image once you are sure
204 that the ME/TXE firmware is no longer going to change.
205
206 If unsure, say N.
207
Martin Roth59ff3402016-02-09 09:06:46 -0700208config CBFS_SIZE
209 hex
210 default 0x100000
211 help
212 Reduce CBFS size to give room to the IFD blobs.
213
Martin Roth59aa2b12015-06-20 16:17:12 -0600214endif #INTEL_FIRMWARE