blob: 4b882bd553ae02e6fa5bb6e82093f5405a52d476 [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
Nicola Corna364f2e12018-03-31 18:24:44 +0200106config ME_CLEANER_ARGS
107 string
108 depends on USE_ME_CLEANER
109 default "-S"
110
Martin Rothc6a177d2015-07-09 20:50:51 -0600111config HAVE_GBE_BIN
112 bool "Add gigabit ethernet firmware"
113 depends on HAVE_IFD_BIN
114 help
115 The integrated gigabit ethernet controller needs a firmware file.
116 Select this if you are going to use the PCH integrated controller
117 and have the firmware.
118
119config GBE_BIN_PATH
120 string "Path to gigabit ethernet firmware"
121 depends on HAVE_GBE_BIN
122 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/gbe.bin"
123
Lijian Zhao0fb65682017-05-16 12:11:45 -0700124config HAVE_EC_BIN
125 bool "Add EC firmware"
126 depends on HAVE_IFD_BIN
127 help
128 The embedded controller needs a firmware file.
129
130 Select this if you are going to use the PCH integrated controller
131 and have the EC firmware. EC firmware will be added to final image
132 through ifdtool.
133
134config EC_BIN_PATH
135 string "Path to EC firmware"
136 depends on HAVE_EC_BIN
137 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/ec.bin"
138
Martin Roth59aa2b12015-06-20 16:17:12 -0600139##### Fake IFD #####
140
141config BUILD_WITH_FAKE_IFD
142 bool "Build with a fake IFD" if !HAVE_IFD_BIN
143 help
144 If you don't have an Intel Firmware Descriptor (descriptor.bin) for your
145 board, you can select this option and coreboot will build without it.
146 The resulting coreboot.rom will not contain all parts required
147 to get coreboot running on your board. You can however write only the
148 BIOS section to your board's flash ROM and keep the other sections
149 untouched. Unfortunately the current version of flashrom doesn't
150 support this yet. But there is a patch pending [1].
151
152 WARNING: Never write a complete coreboot.rom to your flash ROM if it
153 was built with a fake IFD. It just won't work.
154
155 [1] http://www.flashrom.org/pipermail/flashrom/2013-June/011083.html
156
157config IFD_BIOS_SECTION
158 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600159 string "BIOS Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600160 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600161 help
162 The BIOS region is typically the size of the CBFS area, and is located
163 at the end of the ROM space.
164
165 For an 8MB ROM with a 3MB CBFS area, this would look like:
166 0x00500000:0x007fffff
Martin Roth59aa2b12015-06-20 16:17:12 -0600167
168config IFD_ME_SECTION
169 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600170 string "ME/TXE Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600171 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600172 help
173 The ME/TXE region typically starts at around 0x1000 and often fills the
174 ROM space not used by CBFS.
175
176 For an 8MB ROM with a 3MB CBFS area, this might look like:
177 0x00001000:0x004fffff
Martin Roth59aa2b12015-06-20 16:17:12 -0600178
179config IFD_GBE_SECTION
180 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600181 string "GBE Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600182 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600183 help
184 The Gigabit Ethernet ROM region is used when an Intel NIC is built into
185 the Southbridge/SOC and the platform uses this device instead of an external
186 PCIe NIC. It will be located between the ME/TXE and the BIOS region.
187
188 Leave this empty if you're unsure.
Martin Roth59aa2b12015-06-20 16:17:12 -0600189
190config IFD_PLATFORM_SECTION
191 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600192 string "Platform Region Starting:Ending addresses within the Rom"
Martin Roth59aa2b12015-06-20 16:17:12 -0600193 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600194 help
195 The Platform region is used for platform specific data.
196 It will be located between the ME/TXE and the BIOS region.
197
198 Leave this empty if you're unsure.
Martin Roth59aa2b12015-06-20 16:17:12 -0600199
Martin Roth775d5082015-06-23 21:47:19 -0600200config LOCK_MANAGEMENT_ENGINE
201 bool "Lock ME/TXE section"
Martin Roth775d5082015-06-23 21:47:19 -0600202 default n
203 help
204 The Intel Firmware Descriptor supports preventing write accesses
205 from the host to the ME or TXE section in the firmware
206 descriptor. If the section is locked, it can only be overwritten
207 with an external SPI flash programmer. You will want this if you
208 want to increase security of your ROM image once you are sure
209 that the ME/TXE firmware is no longer going to change.
210
211 If unsure, say N.
212
Martin Roth59ff3402016-02-09 09:06:46 -0700213config CBFS_SIZE
214 hex
215 default 0x100000
216 help
217 Reduce CBFS size to give room to the IFD blobs.
218
Martin Roth59aa2b12015-06-20 16:17:12 -0600219endif #INTEL_FIRMWARE