blob: 2af798d9f8fc8456fd18f93f431c5e6c5f78a7ae [file] [log] [blame]
Elyes HAOUAS87415102020-05-07 11:49:08 +02001# This file is part of the coreboot project.
2# SPDX-License-Identifier: GPL-2.0-only
Martin Roth59aa2b12015-06-20 16:17:12 -06003
4config HAVE_INTEL_FIRMWARE
5 bool
Stefan Tauneref8b9572018-09-06 00:34:28 +02006 default y if INTEL_DESCRIPTOR_MODE_CAPABLE
Martin Roth59aa2b12015-06-20 16:17:12 -06007 help
Stefan Tauneref8b9572018-09-06 00:34:28 +02008 Platform uses the Intel Firmware Descriptor to describe the
9 layout of the SPI ROM chip. Enabling this option will allow you to
10 select further features that rely on this like providing individual
11 firmware blobs.
Martin Roth59aa2b12015-06-20 16:17:12 -060012
13if HAVE_INTEL_FIRMWARE
14
15comment "Intel Firmware"
16
17config HAVE_IFD_BIN
18 bool "Add Intel descriptor.bin file"
Simon Glass46255f72018-07-12 15:26:07 -060019 select HAVE_EM100_SUPPORT # We use ifdtool to enable this.
Martin Roth59aa2b12015-06-20 16:17:12 -060020 help
21 The descriptor binary
22
23config IFD_BIN_PATH
24 string "Path and filename of the descriptor.bin file"
Stefan Reinauercecabc12015-07-01 17:37:57 -070025 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/descriptor.bin"
Angel Pons240eaaa2018-08-20 16:32:22 +020026 depends on HAVE_IFD_BIN
Martin Roth59aa2b12015-06-20 16:17:12 -060027
28config HAVE_ME_BIN
Martin Rothc407cb92015-06-23 19:59:30 -060029 bool "Add Intel ME/TXE firmware"
Martin Rothc528c2e2015-06-27 08:59:10 -060030 depends on HAVE_IFD_BIN
Martin Roth59aa2b12015-06-20 16:17:12 -060031 help
32 The Intel processor in the selected system requires a special firmware
Martin Rothc407cb92015-06-23 19:59:30 -060033 for an integrated controller. This might be called the Management
34 Engine (ME), the Trusted Execution Engine (TXE) or something else
35 depending on the chip. This firmware might or might not be available
36 in coreboot's 3rdparty/blobs repository. If it is not and if you don't
37 have access to the firmware from elsewhere, you can still build
38 coreboot without it. In this case however, you'll have to make sure
39 that you don't overwrite your ME/TXE firmware on your flash ROM.
Martin Roth59aa2b12015-06-20 16:17:12 -060040
41config ME_BIN_PATH
42 string "Path to management engine firmware"
Stefan Reinauercecabc12015-07-01 17:37:57 -070043 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/me.bin"
Martin Roth59aa2b12015-06-20 16:17:12 -060044 depends on HAVE_ME_BIN
45
Nicola Corna16719ad2017-03-10 11:27:39 +010046config CHECK_ME
47 bool "Verify the integrity of the supplied ME/TXE firmware"
Naresh G Solanki95d6dd22017-04-12 20:15:53 +053048 default n
Angel Pons95de2312020-02-17 13:08:53 +010049 depends on HAVE_ME_BIN && (NORTHBRIDGE_INTEL_IRONLAKE || \
Nicola Corna16719ad2017-03-10 11:27:39 +010050 NORTHBRIDGE_INTEL_SANDYBRIDGE || \
Nico Huber772a1542019-05-10 16:48:14 +020051 NORTHBRIDGE_INTEL_HASWELL || \
Nicola Corna16719ad2017-03-10 11:27:39 +010052 SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || \
Nicola Cornad58dd5c2018-03-31 16:40:03 +020053 SOC_INTEL_KABYLAKE || SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
Nicola Corna16719ad2017-03-10 11:27:39 +010054 help
55 Verify the integrity of the supplied Intel ME/TXE firmware before
56 proceeding with the build, in order to prevent an accidental loading
57 of a corrupted ME/TXE image.
58
Nicola Corna92e95ca2017-01-23 15:29:03 +010059config USE_ME_CLEANER
60 bool "Strip down the Intel ME/TXE firmware"
Angel Pons95de2312020-02-17 13:08:53 +010061 depends on HAVE_ME_BIN && (NORTHBRIDGE_INTEL_IRONLAKE || \
Nicola Corna04d26012018-06-21 14:57:26 +020062 NORTHBRIDGE_INTEL_SANDYBRIDGE || \
Nico Huber772a1542019-05-10 16:48:14 +020063 NORTHBRIDGE_INTEL_HASWELL || \
Nicola Corna92e95ca2017-01-23 15:29:03 +010064 SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || \
Nicola Cornad58dd5c2018-03-31 16:40:03 +020065 SOC_INTEL_KABYLAKE || SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
Nicola Corna92e95ca2017-01-23 15:29:03 +010066 help
67 Use me_cleaner to remove all the non-fundamental code from the Intel
68 ME/TXE firmware.
69 The resulting Intel ME/TXE firmware will have only the code
70 responsible for the very basic hardware initialization, leaving the
71 ME/TXE subsystem essentially in a disabled state.
72
73 Don't flash a modified ME/TXE firmware and a new coreboot image at the
74 same time, test them in two different steps.
75
76 WARNING: this tool isn't based on any official Intel documentation but
77 only on reverse engineering and trial & error.
78
79 See the project's page
Nicola Corna98f30342017-08-08 21:24:49 +020080 https://github.com/corna/me_cleaner
Nicola Corna92e95ca2017-01-23 15:29:03 +010081 or the wiki
Nicola Corna98f30342017-08-08 21:24:49 +020082 https://github.com/corna/me_cleaner/wiki/How-to-apply-me_cleaner
83 https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F
84 https://github.com/corna/me_cleaner/wiki/me_cleaner-status
Nicola Corna92e95ca2017-01-23 15:29:03 +010085 for more info about this tool
86
87 If unsure, say N.
88
89comment "Please test the modified ME/TXE firmware and coreboot in two steps"
90 depends on USE_ME_CLEANER
91
Nicola Corna364f2e12018-03-31 18:24:44 +020092config ME_CLEANER_ARGS
93 string
94 depends on USE_ME_CLEANER
95 default "-S"
96
Jan Tatje83a127a2019-01-09 20:39:28 +010097config MAINBOARD_USES_IFD_GBE_REGION
98 def_bool n
99
Martin Rothc6a177d2015-07-09 20:50:51 -0600100config HAVE_GBE_BIN
Nico Hubere81f3342019-01-26 14:24:41 +0100101 bool "Add gigabit ethernet configuration"
Jan Tatje83a127a2019-01-09 20:39:28 +0100102 depends on HAVE_IFD_BIN && MAINBOARD_USES_IFD_GBE_REGION
Martin Rothc6a177d2015-07-09 20:50:51 -0600103 help
Nico Hubere81f3342019-01-26 14:24:41 +0100104 The integrated gigabit ethernet controller needs a configuration
105 file. Select this if you are going to use the PCH integrated
106 controller and want to add that file.
Martin Rothc6a177d2015-07-09 20:50:51 -0600107
108config GBE_BIN_PATH
Nico Hubere81f3342019-01-26 14:24:41 +0100109 string "Path to gigabit ethernet configuration"
Martin Rothc6a177d2015-07-09 20:50:51 -0600110 depends on HAVE_GBE_BIN
111 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/gbe.bin"
112
Jan Tatje82a4e272019-01-06 17:38:36 +0100113config MAINBOARD_USES_IFD_EC_REGION
114 def_bool n
115
Lijian Zhao0fb65682017-05-16 12:11:45 -0700116config HAVE_EC_BIN
117 bool "Add EC firmware"
Jan Tatje82a4e272019-01-06 17:38:36 +0100118 depends on HAVE_IFD_BIN && MAINBOARD_USES_IFD_EC_REGION
Lijian Zhao0fb65682017-05-16 12:11:45 -0700119 help
120 The embedded controller needs a firmware file.
121
122 Select this if you are going to use the PCH integrated controller
123 and have the EC firmware. EC firmware will be added to final image
124 through ifdtool.
125
126config EC_BIN_PATH
127 string "Path to EC firmware"
128 depends on HAVE_EC_BIN
129 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/ec.bin"
130
Mario Scheithauer26874432019-02-27 10:29:01 +0100131choice
132 prompt "Protect flash regions"
133 default UNLOCK_FLASH_REGIONS
134 help
135 This option allows you to protect flash regions.
136
137config DO_NOT_TOUCH_DESCRIPTOR_REGION
138 bool "Use the preset values to protect the regions"
139 help
140 Read and write access permissions to different regions in the flash
141 can be controlled via dedicated bitfields in the flash descriptor.
142 These permissions can be modified with the Intel Flash Descriptor
143 Tool (ifdtool). If you don't want to change these permissions and
144 keep the ones provided in the initial descriptor, use this option.
145
Martin Roth775d5082015-06-23 21:47:19 -0600146config LOCK_MANAGEMENT_ENGINE
147 bool "Lock ME/TXE section"
Martin Roth775d5082015-06-23 21:47:19 -0600148 help
149 The Intel Firmware Descriptor supports preventing write accesses
150 from the host to the ME or TXE section in the firmware
151 descriptor. If the section is locked, it can only be overwritten
152 with an external SPI flash programmer. You will want this if you
153 want to increase security of your ROM image once you are sure
154 that the ME/TXE firmware is no longer going to change.
155
Mario Scheithauer26874432019-02-27 10:29:01 +0100156 If unsure, select "Unlock flash regions".
157
158config UNLOCK_FLASH_REGIONS
159 bool "Unlock flash regions"
160 help
161 All regions are completely unprotected and can be overwritten using
162 a flash programming tool.
163
164endchoice
Martin Roth775d5082015-06-23 21:47:19 -0600165
Martin Roth59ff3402016-02-09 09:06:46 -0700166config CBFS_SIZE
167 hex
168 default 0x100000
169 help
170 Reduce CBFS size to give room to the IFD blobs.
171
Martin Roth59aa2b12015-06-20 16:17:12 -0600172endif #INTEL_FIRMWARE