blob: a1026e84cfd9adacb837e884420da24090d6113f [file] [log] [blame]
Elyes HAOUAS87415102020-05-07 11:49:08 +02001# SPDX-License-Identifier: GPL-2.0-only
Martin Roth59aa2b12015-06-20 16:17:12 -06002
3config HAVE_INTEL_FIRMWARE
4 bool
Stefan Tauneref8b9572018-09-06 00:34:28 +02005 default y if INTEL_DESCRIPTOR_MODE_CAPABLE
Martin Roth59aa2b12015-06-20 16:17:12 -06006 help
Stefan Tauneref8b9572018-09-06 00:34:28 +02007 Platform uses the Intel Firmware Descriptor to describe the
8 layout of the SPI ROM chip. Enabling this option will allow you to
9 select further features that rely on this like providing individual
10 firmware blobs.
Martin Roth59aa2b12015-06-20 16:17:12 -060011
12if HAVE_INTEL_FIRMWARE
13
14comment "Intel Firmware"
15
16config HAVE_IFD_BIN
17 bool "Add Intel descriptor.bin file"
Simon Glass46255f72018-07-12 15:26:07 -060018 select HAVE_EM100_SUPPORT # We use ifdtool to enable this.
Martin Roth59aa2b12015-06-20 16:17:12 -060019 help
20 The descriptor binary
21
22config IFD_BIN_PATH
23 string "Path and filename of the descriptor.bin file"
Patrick Georgib8fba862020-06-17 21:06:53 +020024 default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/descriptor.bin"
Angel Pons240eaaa2018-08-20 16:32:22 +020025 depends on HAVE_IFD_BIN
Martin Roth59aa2b12015-06-20 16:17:12 -060026
27config HAVE_ME_BIN
Martin Rothc407cb92015-06-23 19:59:30 -060028 bool "Add Intel ME/TXE firmware"
Martin Rothc528c2e2015-06-27 08:59:10 -060029 depends on HAVE_IFD_BIN
Martin Roth59aa2b12015-06-20 16:17:12 -060030 help
31 The Intel processor in the selected system requires a special firmware
Martin Rothc407cb92015-06-23 19:59:30 -060032 for an integrated controller. This might be called the Management
33 Engine (ME), the Trusted Execution Engine (TXE) or something else
34 depending on the chip. This firmware might or might not be available
35 in coreboot's 3rdparty/blobs repository. If it is not and if you don't
36 have access to the firmware from elsewhere, you can still build
37 coreboot without it. In this case however, you'll have to make sure
38 that you don't overwrite your ME/TXE firmware on your flash ROM.
Martin Roth59aa2b12015-06-20 16:17:12 -060039
40config ME_BIN_PATH
41 string "Path to management engine firmware"
Patrick Georgib8fba862020-06-17 21:06:53 +020042 default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/me.bin"
Martin Roth59aa2b12015-06-20 16:17:12 -060043 depends on HAVE_ME_BIN
44
Nicola Corna16719ad2017-03-10 11:27:39 +010045config CHECK_ME
46 bool "Verify the integrity of the supplied ME/TXE firmware"
Naresh G Solanki95d6dd22017-04-12 20:15:53 +053047 default n
Angel Pons95de2312020-02-17 13:08:53 +010048 depends on HAVE_ME_BIN && (NORTHBRIDGE_INTEL_IRONLAKE || \
Nicola Corna16719ad2017-03-10 11:27:39 +010049 NORTHBRIDGE_INTEL_SANDYBRIDGE || \
Nico Huber772a1542019-05-10 16:48:14 +020050 NORTHBRIDGE_INTEL_HASWELL || \
Nicola Corna16719ad2017-03-10 11:27:39 +010051 SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || \
Nicola Cornad58dd5c2018-03-31 16:40:03 +020052 SOC_INTEL_KABYLAKE || SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
Nicola Corna16719ad2017-03-10 11:27:39 +010053 help
54 Verify the integrity of the supplied Intel ME/TXE firmware before
55 proceeding with the build, in order to prevent an accidental loading
56 of a corrupted ME/TXE image.
57
Sridhar Siricilla416b8282020-12-03 17:56:49 +053058config ME_REGION_ALLOW_CPU_READ_ACCESS
59 bool "Allows HOST/CPU read access to ME region"
Angel Pons862064c2021-07-06 13:50:23 +020060 depends on HAVE_IFD_BIN
Sridhar Siricilla315ebb22021-01-22 17:15:00 +053061 default y if SOC_INTEL_CSE_LITE_SKU
Sridhar Siricilla416b8282020-12-03 17:56:49 +053062 default n
63 help
64 The config ensures Host has read access to the ME region if it is locked
65 through LOCK_MANAGEMENT_ENGINE config. This config is enabled when the CSE
66 Lite SKU is integrated.
67
Nicola Corna92e95ca2017-01-23 15:29:03 +010068config USE_ME_CLEANER
69 bool "Strip down the Intel ME/TXE firmware"
Angel Pons95de2312020-02-17 13:08:53 +010070 depends on HAVE_ME_BIN && (NORTHBRIDGE_INTEL_IRONLAKE || \
Nicola Corna04d26012018-06-21 14:57:26 +020071 NORTHBRIDGE_INTEL_SANDYBRIDGE || \
Nico Huber772a1542019-05-10 16:48:14 +020072 NORTHBRIDGE_INTEL_HASWELL || \
Nicola Corna92e95ca2017-01-23 15:29:03 +010073 SOC_INTEL_BROADWELL || SOC_INTEL_SKYLAKE || \
Nicola Cornad58dd5c2018-03-31 16:40:03 +020074 SOC_INTEL_KABYLAKE || SOC_INTEL_BAYTRAIL || SOC_INTEL_BRASWELL)
Nicola Corna92e95ca2017-01-23 15:29:03 +010075 help
76 Use me_cleaner to remove all the non-fundamental code from the Intel
77 ME/TXE firmware.
78 The resulting Intel ME/TXE firmware will have only the code
79 responsible for the very basic hardware initialization, leaving the
80 ME/TXE subsystem essentially in a disabled state.
81
82 Don't flash a modified ME/TXE firmware and a new coreboot image at the
83 same time, test them in two different steps.
84
85 WARNING: this tool isn't based on any official Intel documentation but
86 only on reverse engineering and trial & error.
87
88 See the project's page
Nicola Corna98f30342017-08-08 21:24:49 +020089 https://github.com/corna/me_cleaner
Nicola Corna92e95ca2017-01-23 15:29:03 +010090 or the wiki
Nicola Corna98f30342017-08-08 21:24:49 +020091 https://github.com/corna/me_cleaner/wiki/How-to-apply-me_cleaner
92 https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F
93 https://github.com/corna/me_cleaner/wiki/me_cleaner-status
Nicola Corna92e95ca2017-01-23 15:29:03 +010094 for more info about this tool
95
96 If unsure, say N.
97
98comment "Please test the modified ME/TXE firmware and coreboot in two steps"
99 depends on USE_ME_CLEANER
100
Nicola Corna364f2e12018-03-31 18:24:44 +0200101config ME_CLEANER_ARGS
102 string
103 depends on USE_ME_CLEANER
104 default "-S"
105
Jan Tatje83a127a2019-01-09 20:39:28 +0100106config MAINBOARD_USES_IFD_GBE_REGION
107 def_bool n
108
Martin Rothc6a177d2015-07-09 20:50:51 -0600109config HAVE_GBE_BIN
Nico Hubere81f3342019-01-26 14:24:41 +0100110 bool "Add gigabit ethernet configuration"
Jan Tatje83a127a2019-01-09 20:39:28 +0100111 depends on HAVE_IFD_BIN && MAINBOARD_USES_IFD_GBE_REGION
Martin Rothc6a177d2015-07-09 20:50:51 -0600112 help
Nico Hubere81f3342019-01-26 14:24:41 +0100113 The integrated gigabit ethernet controller needs a configuration
114 file. Select this if you are going to use the PCH integrated
115 controller and want to add that file.
Martin Rothc6a177d2015-07-09 20:50:51 -0600116
117config GBE_BIN_PATH
Nico Hubere81f3342019-01-26 14:24:41 +0100118 string "Path to gigabit ethernet configuration"
Martin Rothc6a177d2015-07-09 20:50:51 -0600119 depends on HAVE_GBE_BIN
Patrick Georgib8fba862020-06-17 21:06:53 +0200120 default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/gbe.bin"
Martin Rothc6a177d2015-07-09 20:50:51 -0600121
Jan Tatje82a4e272019-01-06 17:38:36 +0100122config MAINBOARD_USES_IFD_EC_REGION
123 def_bool n
124
Lijian Zhao0fb65682017-05-16 12:11:45 -0700125config HAVE_EC_BIN
126 bool "Add EC firmware"
Jan Tatje82a4e272019-01-06 17:38:36 +0100127 depends on HAVE_IFD_BIN && MAINBOARD_USES_IFD_EC_REGION
Lijian Zhao0fb65682017-05-16 12:11:45 -0700128 help
129 The embedded controller needs a firmware file.
130
131 Select this if you are going to use the PCH integrated controller
132 and have the EC firmware. EC firmware will be added to final image
133 through ifdtool.
134
135config EC_BIN_PATH
136 string "Path to EC firmware"
137 depends on HAVE_EC_BIN
Patrick Georgib8fba862020-06-17 21:06:53 +0200138 default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/ec.bin"
Lijian Zhao0fb65682017-05-16 12:11:45 -0700139
Mario Scheithauer26874432019-02-27 10:29:01 +0100140choice
Angel Pons862064c2021-07-06 13:50:23 +0200141 prompt "Protect flash regions" if HAVE_IFD_BIN
142 default UNLOCK_FLASH_REGIONS if HAVE_IFD_BIN
Mario Scheithauer26874432019-02-27 10:29:01 +0100143 help
144 This option allows you to protect flash regions.
145
146config DO_NOT_TOUCH_DESCRIPTOR_REGION
147 bool "Use the preset values to protect the regions"
148 help
149 Read and write access permissions to different regions in the flash
150 can be controlled via dedicated bitfields in the flash descriptor.
151 These permissions can be modified with the Intel Flash Descriptor
152 Tool (ifdtool). If you don't want to change these permissions and
153 keep the ones provided in the initial descriptor, use this option.
154
Martin Roth775d5082015-06-23 21:47:19 -0600155config LOCK_MANAGEMENT_ENGINE
156 bool "Lock ME/TXE section"
Martin Roth775d5082015-06-23 21:47:19 -0600157 help
Sridhar Siricilla416b8282020-12-03 17:56:49 +0530158 The Intel Firmware Descriptor supports preventing write and read
159 accesses from the host to the ME or TXE section. If the section
160 is locked, it can only be overwritten with an external SPI flash
161 programmer or HECI HMRFPO_ENABLE command needs to be sent to CSE
162 before writing to the ME Section. If CSE Lite SKU is integrated,
163 the Kconfig prevents only writing to the ME section.
Martin Roth775d5082015-06-23 21:47:19 -0600164
Mario Scheithauer26874432019-02-27 10:29:01 +0100165 If unsure, select "Unlock flash regions".
166
167config UNLOCK_FLASH_REGIONS
168 bool "Unlock flash regions"
169 help
170 All regions are completely unprotected and can be overwritten using
171 a flash programming tool.
172
173endchoice
Martin Roth775d5082015-06-23 21:47:19 -0600174
Martin Roth59ff3402016-02-09 09:06:46 -0700175config CBFS_SIZE
176 hex
177 default 0x100000
178 help
179 Reduce CBFS size to give room to the IFD blobs.
180
Martin Roth59aa2b12015-06-20 16:17:12 -0600181endif #INTEL_FIRMWARE