blob: ed7dd295070c7ff3b4b87aa6e6a95a64bed6eddb [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"
63 default y
64 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 || \
68 SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
69 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 || \
79 SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
80 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
94 https://github.com/corna/me_cleaner
95 or the wiki
96 https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F
97 https://github.com/corna/me_cleaner/wiki/me_cleaner-status
98 for more info about this tool
99
100 If unsure, say N.
101
102comment "Please test the modified ME/TXE firmware and coreboot in two steps"
103 depends on USE_ME_CLEANER
104
Martin Rothc6a177d2015-07-09 20:50:51 -0600105config HAVE_GBE_BIN
106 bool "Add gigabit ethernet firmware"
107 depends on HAVE_IFD_BIN
108 help
109 The integrated gigabit ethernet controller needs a firmware file.
110 Select this if you are going to use the PCH integrated controller
111 and have the firmware.
112
113config GBE_BIN_PATH
114 string "Path to gigabit ethernet firmware"
115 depends on HAVE_GBE_BIN
116 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/gbe.bin"
117
Lijian Zhao0fb65682017-05-16 12:11:45 -0700118config HAVE_EC_BIN
119 bool "Add EC firmware"
120 depends on HAVE_IFD_BIN
121 help
122 The embedded controller needs a firmware file.
123
124 Select this if you are going to use the PCH integrated controller
125 and have the EC firmware. EC firmware will be added to final image
126 through ifdtool.
127
128config EC_BIN_PATH
129 string "Path to EC firmware"
130 depends on HAVE_EC_BIN
131 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/ec.bin"
132
Martin Roth59aa2b12015-06-20 16:17:12 -0600133##### Fake IFD #####
134
135config BUILD_WITH_FAKE_IFD
136 bool "Build with a fake IFD" if !HAVE_IFD_BIN
137 help
138 If you don't have an Intel Firmware Descriptor (descriptor.bin) for your
139 board, you can select this option and coreboot will build without it.
140 The resulting coreboot.rom will not contain all parts required
141 to get coreboot running on your board. You can however write only the
142 BIOS section to your board's flash ROM and keep the other sections
143 untouched. Unfortunately the current version of flashrom doesn't
144 support this yet. But there is a patch pending [1].
145
146 WARNING: Never write a complete coreboot.rom to your flash ROM if it
147 was built with a fake IFD. It just won't work.
148
149 [1] http://www.flashrom.org/pipermail/flashrom/2013-June/011083.html
150
151config IFD_BIOS_SECTION
152 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600153 string "BIOS Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600154 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600155 help
156 The BIOS region is typically the size of the CBFS area, and is located
157 at the end of the ROM space.
158
159 For an 8MB ROM with a 3MB CBFS area, this would look like:
160 0x00500000:0x007fffff
Martin Roth59aa2b12015-06-20 16:17:12 -0600161
162config IFD_ME_SECTION
163 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600164 string "ME/TXE Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600165 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600166 help
167 The ME/TXE region typically starts at around 0x1000 and often fills the
168 ROM space not used by CBFS.
169
170 For an 8MB ROM with a 3MB CBFS area, this might look like:
171 0x00001000:0x004fffff
Martin Roth59aa2b12015-06-20 16:17:12 -0600172
173config IFD_GBE_SECTION
174 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600175 string "GBE Region Starting:Ending addresses within the ROM"
Martin Roth59aa2b12015-06-20 16:17:12 -0600176 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600177 help
178 The Gigabit Ethernet ROM region is used when an Intel NIC is built into
179 the Southbridge/SOC and the platform uses this device instead of an external
180 PCIe NIC. It will be located between the ME/TXE and the BIOS region.
181
182 Leave this empty if you're unsure.
Martin Roth59aa2b12015-06-20 16:17:12 -0600183
184config IFD_PLATFORM_SECTION
185 depends on BUILD_WITH_FAKE_IFD
Martin Roth57eff2a2015-06-23 21:49:56 -0600186 string "Platform Region Starting:Ending addresses within the Rom"
Martin Roth59aa2b12015-06-20 16:17:12 -0600187 default ""
Martin Roth57eff2a2015-06-23 21:49:56 -0600188 help
189 The Platform region is used for platform specific data.
190 It will be located between the ME/TXE and the BIOS region.
191
192 Leave this empty if you're unsure.
Martin Roth59aa2b12015-06-20 16:17:12 -0600193
Martin Roth775d5082015-06-23 21:47:19 -0600194config LOCK_MANAGEMENT_ENGINE
195 bool "Lock ME/TXE section"
Martin Roth775d5082015-06-23 21:47:19 -0600196 default n
197 help
198 The Intel Firmware Descriptor supports preventing write accesses
199 from the host to the ME or TXE section in the firmware
200 descriptor. If the section is locked, it can only be overwritten
201 with an external SPI flash programmer. You will want this if you
202 want to increase security of your ROM image once you are sure
203 that the ME/TXE firmware is no longer going to change.
204
205 If unsure, say N.
206
Martin Roth59ff3402016-02-09 09:06:46 -0700207config CBFS_SIZE
208 hex
209 default 0x100000
210 help
211 Reduce CBFS size to give room to the IFD blobs.
212
Martin Roth59aa2b12015-06-20 16:17:12 -0600213endif #INTEL_FIRMWARE