blob: 97fb99320a228a689ad862081620dec8c8c1e8e0 [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
Stefan Tauneref8b9572018-09-06 00:34:28 +020019 default y if INTEL_DESCRIPTOR_MODE_CAPABLE
Martin Roth59aa2b12015-06-20 16:17:12 -060020 help
Stefan Tauneref8b9572018-09-06 00:34:28 +020021 Platform uses the Intel Firmware Descriptor to describe the
22 layout of the SPI ROM chip. Enabling this option will allow you to
23 select further features that rely on this like providing individual
24 firmware blobs.
Martin Roth59aa2b12015-06-20 16:17:12 -060025
26if HAVE_INTEL_FIRMWARE
27
28comment "Intel Firmware"
29
30config HAVE_IFD_BIN
31 bool "Add Intel descriptor.bin file"
Simon Glass46255f72018-07-12 15:26:07 -060032 select HAVE_EM100_SUPPORT # We use ifdtool to enable this.
Martin Roth59aa2b12015-06-20 16:17:12 -060033 help
34 The descriptor binary
35
36config IFD_BIN_PATH
37 string "Path and filename of the descriptor.bin file"
Stefan Reinauercecabc12015-07-01 17:37:57 -070038 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/descriptor.bin"
Angel Pons240eaaa2018-08-20 16:32:22 +020039 depends on HAVE_IFD_BIN
Martin Roth59aa2b12015-06-20 16:17:12 -060040
41config HAVE_ME_BIN
Martin Rothc407cb92015-06-23 19:59:30 -060042 bool "Add Intel ME/TXE firmware"
Martin Rothc528c2e2015-06-27 08:59:10 -060043 depends on HAVE_IFD_BIN
Martin Roth59aa2b12015-06-20 16:17:12 -060044 help
45 The Intel processor in the selected system requires a special firmware
Martin Rothc407cb92015-06-23 19:59:30 -060046 for an integrated controller. This might be called the Management
47 Engine (ME), the Trusted Execution Engine (TXE) or something else
48 depending on the chip. This firmware might or might not be available
49 in coreboot's 3rdparty/blobs repository. If it is not and if you don't
50 have access to the firmware from elsewhere, you can still build
51 coreboot without it. In this case however, you'll have to make sure
52 that you don't overwrite your ME/TXE firmware on your flash ROM.
Martin Roth59aa2b12015-06-20 16:17:12 -060053
54config ME_BIN_PATH
55 string "Path to management engine firmware"
Stefan Reinauercecabc12015-07-01 17:37:57 -070056 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/me.bin"
Martin Roth59aa2b12015-06-20 16:17:12 -060057 depends on HAVE_ME_BIN
58
Nicola Corna16719ad2017-03-10 11:27:39 +010059config CHECK_ME
60 bool "Verify the integrity of the supplied ME/TXE firmware"
Naresh G Solanki95d6dd22017-04-12 20:15:53 +053061 default n
Nicola Corna16719ad2017-03-10 11:27:39 +010062 depends on HAVE_ME_BIN && (NORTHBRIDGE_INTEL_NEHALEM || \
63 NORTHBRIDGE_INTEL_SANDYBRIDGE || \
64 NORTHBRIDGE_INTEL_IVYBRIDGE || NORTHBRIDGE_INTEL_HASWELL || \
65 SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || \
Nicola Cornad58dd5c2018-03-31 16:40:03 +020066 SOC_INTEL_KABYLAKE || SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
Nicola Corna16719ad2017-03-10 11:27:39 +010067 help
68 Verify the integrity of the supplied Intel ME/TXE firmware before
69 proceeding with the build, in order to prevent an accidental loading
70 of a corrupted ME/TXE image.
71
Nicola Corna92e95ca2017-01-23 15:29:03 +010072config USE_ME_CLEANER
73 bool "Strip down the Intel ME/TXE firmware"
Nicola Corna04d26012018-06-21 14:57:26 +020074 depends on HAVE_ME_BIN && (NORTHBRIDGE_INTEL_NEHALEM || \
75 NORTHBRIDGE_INTEL_SANDYBRIDGE || \
Nicola Corna92e95ca2017-01-23 15:29:03 +010076 NORTHBRIDGE_INTEL_IVYBRIDGE || NORTHBRIDGE_INTEL_HASWELL || \
77 SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || \
Nicola Cornad58dd5c2018-03-31 16:40:03 +020078 SOC_INTEL_KABYLAKE || SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
Nicola Corna92e95ca2017-01-23 15:29:03 +010079 help
80 Use me_cleaner to remove all the non-fundamental code from the Intel
81 ME/TXE firmware.
82 The resulting Intel ME/TXE firmware will have only the code
83 responsible for the very basic hardware initialization, leaving the
84 ME/TXE subsystem essentially in a disabled state.
85
86 Don't flash a modified ME/TXE firmware and a new coreboot image at the
87 same time, test them in two different steps.
88
89 WARNING: this tool isn't based on any official Intel documentation but
90 only on reverse engineering and trial & error.
91
92 See the project's page
Nicola Corna98f30342017-08-08 21:24:49 +020093 https://github.com/corna/me_cleaner
Nicola Corna92e95ca2017-01-23 15:29:03 +010094 or the wiki
Nicola Corna98f30342017-08-08 21:24:49 +020095 https://github.com/corna/me_cleaner/wiki/How-to-apply-me_cleaner
96 https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F
97 https://github.com/corna/me_cleaner/wiki/me_cleaner-status
Nicola Corna92e95ca2017-01-23 15:29:03 +010098 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
Nicola Corna364f2e12018-03-31 18:24:44 +0200105config ME_CLEANER_ARGS
106 string
107 depends on USE_ME_CLEANER
108 default "-S"
109
Martin Rothc6a177d2015-07-09 20:50:51 -0600110config HAVE_GBE_BIN
111 bool "Add gigabit ethernet firmware"
112 depends on HAVE_IFD_BIN
113 help
114 The integrated gigabit ethernet controller needs a firmware file.
115 Select this if you are going to use the PCH integrated controller
116 and have the firmware.
117
118config GBE_BIN_PATH
119 string "Path to gigabit ethernet firmware"
120 depends on HAVE_GBE_BIN
121 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/gbe.bin"
122
Lijian Zhao0fb65682017-05-16 12:11:45 -0700123config HAVE_EC_BIN
124 bool "Add EC firmware"
125 depends on HAVE_IFD_BIN
126 help
127 The embedded controller needs a firmware file.
128
129 Select this if you are going to use the PCH integrated controller
130 and have the EC firmware. EC firmware will be added to final image
131 through ifdtool.
132
133config EC_BIN_PATH
134 string "Path to EC firmware"
135 depends on HAVE_EC_BIN
136 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/ec.bin"
137
Martin Roth775d5082015-06-23 21:47:19 -0600138config LOCK_MANAGEMENT_ENGINE
139 bool "Lock ME/TXE section"
Martin Roth775d5082015-06-23 21:47:19 -0600140 default n
141 help
142 The Intel Firmware Descriptor supports preventing write accesses
143 from the host to the ME or TXE section in the firmware
144 descriptor. If the section is locked, it can only be overwritten
145 with an external SPI flash programmer. You will want this if you
146 want to increase security of your ROM image once you are sure
147 that the ME/TXE firmware is no longer going to change.
148
149 If unsure, say N.
150
Martin Roth59ff3402016-02-09 09:06:46 -0700151config CBFS_SIZE
152 hex
153 default 0x100000
154 help
155 Reduce CBFS size to give room to the IFD blobs.
156
Martin Roth59aa2b12015-06-20 16:17:12 -0600157endif #INTEL_FIRMWARE