System Tools User Guide
System Tools User Guide
September 2019
Revision 1.12
Intel Confidential
You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning
Intel products described herein. You agree to grant Intel a non-exclusive, royalty-free license to any patent claim thereafter
drafted which includes subject matter disclosed herein.
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service
activation. Learn more at Intel.com, or from the OEM or retailer.
No computer system can be absolutely secure. Intel does not assume any liability for lost or stolen data or systems or any
damages resulting from such losses.
The products described may contain design defects or errors known as errata which may cause the product to deviate from
published specifications. Current characterized errata are available on request.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness
for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or
usage in trade.
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service
activation. Learn more at intel.com, or from the OEM or retailer.
All information provided here is subject to change without notice. Contact your Intel representative to obtain the latest Intel
product specifications and roadmaps.
Copies of documents which have an order number and are referenced in this document may be obtained by calling 1-800-548-
4725 or visit www.intel.com/design/literature.htm.
By using this document, in addition to any agreements you have with Intel, you accept the terms set forth below.
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries.
*Other names and brands may be claimed as the property of others.
Copyright © 2019, Intel Corporation. All rights reserved.
Figures
Figure 3-1. SPI Flash Image Regions ................................................................ 22
Figure 3-2. Environment Variables Dialog .......................................................... 25
Figure 3-3. Build Settings Dialog ...................................................................... 27
Figure 3-4. FWUpdate image build icon ............................................................. 27
Figure 3-5. Descriptor Region Length Parameter ................................................. 28
Figure 3-6. Flash Settings > Flash Components .................................................. 28
Figure 3-7. Flash Settings → Flash Configuration ................................................ 29
Figure 3-8. Descriptor Region → Master Access Section ....................................... 32
Figure3-9. Add VSCC Table Entry Dialog ............................................................ 33
Figure 3-10. Deleting VSCC Table Entry Dialog ................................................... 34
Figure 3-11. Intel® ME Kernel .......................................................................... 35
Figure 3-12. Power......................................................................................... 36
Figure 3-13. Power Delivery PD Controller Configuration ...................................... 36
Figure 3-14. Manageability Application Section ................................................... 37
Figure 3-15. Provisioning Configuration Section .................................................. 39
Figure 3-16. Provisioning Configuration Section (Cont..) ...................................... 40
Figure 3-17. GbE Region Options ...................................................................... 40
Figure 3-18. PDR Region Options ..................................................................... 41
Figure 3-19. BIOS Region Parameters ............................................................... 42
Tables
Table 2-1. OS Support for Tools ....................................................................... 18
Table 2-2. Tools Summary .............................................................................. 19
Table 3-1. Flash Image Regions – Description .................................................... 23
Table 3-2. Build Settings Dialog Options ............................................................ 26
Table 3-3. Region Access Control Table ............................................................. 29
Table 3-4. CPU/BIOS Access ............................................................................ 31
Table 3-5. FIT Command Line Options .............................................................. 44
Table 4-1. Named Variables Options ................................................................. 49
Table 4-2. Command Line Options for fpt.efi, fpt.exe and fptw.exe ........................ 51
Table 4-3. FPT–closemnf Behavior .................................................................... 55
Table 4-4. Intel-Recommend Access Settings ..................................................... 55
Table 5-1. Options for Tool .............................................................................. 65
Table 5-2. Intel® MEManuf Test Matrix .............................................................. 68
Table 5-3. MEManuf - EOL Config Tests ............................................................ 122
Table 6-1. Intel® MEInfo Command Line Options ............................................... 125
0.61 • Updated Firmware Update Errors list in Appendix B: B.2 January, 2018
• Added new section 3.4.18 under Intel FIT tool describing Power
Delivery PD Controller Configuration
• Updated Intel® MEInfo and Intel® MEManuf with RPMC implementation.
• Updated section 6.3 – Added “*In Use* to indicate the currently used
column for FPFs values in the Intel® MEInfo results examples.
• Add details in Chapter 5 for –ALL command for Intel® MEManuf.
• Added a note clarifying Privacy/Security Level Default Setting under
0.7 March, 2018
“Appendix A – Intel® NVARs”.
• Updated Chapter 6 Intel® MEInfo list of components table.
• Added a new section 3.4.15 for setting the PMC binary.
• Added details across Intel® MEInfo, Intel® MEManuf, and Intel® FPT
tools’ sections related to Anti Rollback Mechanism.
• Update section 3.4.5 Intel® FIT tool with the new ability to build a
FWUpdate image without full image.
• Fixed OEM Secure Boot Policy bit definition & length under Appendix A
0.81 June 2018
Intel® ME NVARs
§§
1 Introduction
The purpose of this document is to describe the tools that are used in the platform
design, manufacturing, testing, and validation process.
1.1.1 Terminology
Acronym/Term Definition
AC Alternating Current
CM0 Intel® ME power state where all HW power planes are activated. Host
power state is S0.
CM1 Intel® ME power state where all HW power planes are activated but the
host power state is different than S0. (Some host power planes are not
activated.) The Host PCI-E* interface is unavailable to the host SW. This
power state is not available in Cougar Point.
CM3 Intel® ME power state where all HW power planes are activated but the
host power state is different than S0. (Some host power planes are not
activated.) The Host PCI-E* interface is unavailable to the host SW. The
main memory is not available for Intel® ME use.
EC Embedded Controller
Acronym/Term Definition
EID Endpoint ID
End User The person who uses the computer (either Desktop or Mobile). In
corporate, the user usually does not have administrator privileges.
The end user may not be aware to the fact that the platform is managed
by Intel® AMT.
Full Image A full image starts with an FPT and contains FTP and NFTP partitions
FW Firmware
Host or Host CPU The processor running the operating system. This is different than the
management processor running the Intel® ME FW.
HW Hardware
ID Identification
Intel® MEI driver Intel® AMT host driver that runs on the host and interfaces between ISV
Agent and the Intel® AMT HW.
Intel®
Windows® version of Intel® Manageability Engine Manufacturing Tool
MEManufWin
NM Number of Masters
OOB interface Out Of Band interface. An SOAP/XML interface over secure or non-
secure TCP protocol.
OS Operating System
OS not Functional The Host OS is considered non-functional in Sx power state in any one
of the following cases when the system is in S0 power state:
OS is hung.
After PCI reset.
OS watch dog expires.
OS is not present.
OVR Override
Partial Image A partial image starts with either WVOD or LOCL partitions. No FPT, FTP,
and NFTP in the file
Partial Update Only updates regions that require an update such as WECOD or LOCL
PC Personal Computer
PID Provisioning ID
PM Power Management
S0 A system state where power is applied to all HW devices and the system
is running normally.
S1, S2, S3 A system state where the host CPU is not running but power is
connected to the memory system (memory is in self refresh).
S4 A system states where the host CPU and memory are not active.
S5 A system state where all power to the host system is off but the power
cord is still connected.
Snooze mode Intel® ME activities are mostly suspended to save power. Intel® ME
monitors HW activities and can restore its activities depending on the
HW event.
Standby OS state where the OS state is saved in memory and resumed from the
memory when the mouse/keyboard is clicked.
SW Software
System States Operating System power states such as S0, S1, S2, S3, S4, and S5.
UI User Interface
Un-configured The state of the Intel® ME FW when it leaves the OEM factory. At this
state stage the Intel® ME FW is not functional and must be configured.
§§
2 Preface
2.1 Overview
This document covers the system tools used for creating, modifying, and writing
binary image files, manufacturing testing, Intel® ME setting information gathering,
and Intel® ME FW updating. The tools are located in Kit\Tools\System tools. For
information about other tools, refer Tool's user guides in the other directories in the
FW release.
The system tools described in this document are platform specific in the following
ways:
• Ice Lake PCH platform – All tools in the Ice Lake PCH FW release kit are designed
for 9th Generation Intel® Core™ Processor and Ice Lake PCH platforms only. These
tools will also work with Lewisburg PCH series platforms. These tools do not work
properly on any other legacy platforms. Tools designed for other platforms also do
not work properly on the 9th Generation Intel® Core™ Processor or Ice Lake PCH
platform.
• Intel® ME Firmware 13.0 SKU – A common set of tools are provided for the
following Intel® ME FW 13.0 SKUs: Consumer Intel® ME FW SKU and Corporate
Intel® ME FW SKU. The following features are only available for Corporate Intel®
ME FW SKUs and Consumer Intel® ME FW SKU users should generally ignore
them:
The description of each tool command or option that is not available for
Consumer Intel® ME FW SKU contains a note indicating this.
• FPT:
Programs the SPI flash memory of individual regions or the entire flash
device.
Modifies some Intel® ME settings (NVAR), FPFs after Intel® ME is flashed
on the SPI part.
Note: The firmware update tool provided by Intel only works on the platforms that support
FWUpdate feature.
Notes:
1. 64 bit support does NOT mean that a tool is compiled as a 64 bit application –
but that it can run as a 32 bit application on a 64 bit platform.
2. ISH is not supported on MEInfo/ MEManuf for Linux or Windows® Server. Also,
Separate ISH tool needs to be used where functionalities are ported from
MEInfo and MEManuf tool.
3. Currently the System Tools use the EDK Development Kit.
Runs on Intel®
Tool Name Feature Tested
ME device
• For Linux:
o Tools return the error category only.
• For Windows*:
o The first 8 bits will be the error category, and the rest of the bits
will represent the error code.
For example, an error with error code = 29 (i.e. 0001 1101), and error category = 11
(i.e. 0000 1011). In Linux, tools will return the Error Category only which is 11. In
Windows*, tools will return the combination of ErrorCode and the ErrorCategory (0001
1101 0000 1011) which is 7435.
The command shell used to invoke the tools in EFI and Windows® has a built-in CLI.
The command shell was intended to be used for invoking applications as well as
running in batch mode and performing basic system and file operations. For this
reason, the CLI has special characters that perform additional processing upon
command.
The double-quote is the only character which needs special consideration as input. The
various quoting mechanisms are the backslash escape character (/), single-quotes ('),
and double-quotes ("). A common issue encountered with this is the need to have a
double-quote as part of the input string rather than using a double-quote to define the
beginning and end of a string with spaces.
For example, the user may want these words – one two – to be entered as a single
string for a vector instead of dividing it into two strings ("one", "two"). In that case,
the entry – including the space between the words – must begin and end with double-
quotes ("one two") in order to define this as a single string.
When double-quotes are used in this way in the CLI, they define the string to be
passed to a vector, but are NOT included as part of the vector. The issue encountered
with this is how to have the double-quote character included as part of the vector as
well as bypassed during the initial processing of the string by the CLI. This can be
resolved by preceding the double-quote character with a backslash (\").
For example, if the user wants these words to be input – input"string – the command
line is: input\"string.
§§
FIT supports a set of command line parameters that can be used to build an image
from the CLI or from a make file. When a previously stored configuration is used to
define the image layout, the user does not have to interact with the GUI.
Note: FIT just generates a complete SPI image file; it does not program the flash device.
This complete SPI image must be programmed into the flash with FPT, any third-party flash
burning tool, or some other flash burner device.
Intel ME Applications
®
Region Description
Descriptor This region contains information such as the space allocated for each region
of the flash image, read-write permissions for each region, and a space
which can be used for vendor-specific data. It takes up a fixed amount of
space at the beginning of the flash memory.
Note: This region MUST be locked before the serial flash device is
shipped to end users. Refer section 3.4.9 below for more information.
Failure to lock the Descriptor Region leaves the Intel® ME device
vulnerable to security attacks.
IFWI: Intel® This region contains code and configuration data for Intel® ME applications,
ME and PMC such as Intel® AMT technology. It takes up a variable amount of space at the
end of the Descriptor.
GbE This region contains code and configuration data for an Intel Integrated LAN
(Gigabit Ethernet). It takes up a variable amount of space at the end of the
Intel® ME region.
BIOS This region contains code and configuration data for the entire computer.
PDR This region lets system manufacturers describe custom features for the
platform.
Note: The user can also open a file by dragging and dropping a configuration file into the
main window of the application.
2. Click button next to an environment variable and select the directory where
that variable's files will be stored; the name and relative path of that directory
appears in the field next to the variable's name.
3. Repeat Step 2 until the directories of all relevant environment variables have been
defined.
Note: The environment variables are saved in the XML file. They can be overridden on the
command line if using the XML file on multiple systems.
FIT lets the user set several options that control how the image is built. The options
that can be modified are described in Table 3-2.
Option Description
Output path The path and filename where the final image should be
saved after it is built.
Build FWUpdate With Full Allows for the FWUpdate image to be built along with the
Image final full image. If set to no, then a full image will be created
only.
Enable Boot Guard Warning Allows to enable boot guard warning messages at the build
message at build time. time.
Enable Intel® Platform Trust Allows to enable Intel® Platform Trust Technology warning
Technology messages at messages at the build time
build time.
Environment Variables
Note: Intel® FIT tool has the ability to build images meant for FWUpdate purposes. To do
so, click on the build icon as marked below. This action would build a FWUpdate image only
and save it in the earlier defined path in the Build Settings Dialog.
3. Double-click the value of Number of Flash Components in the right pane (3-).
4. Select the number of flash components (valid values are 1 or 2) from the
dropdown.
Note: The size of the second flash component is only editable if the number of flash
components is set to 2.
Descriptor (0) Not Accessible Not Accessible Not Accessible Not Accessible
ME can always
read from and
ME (2) Read / Write Read / Write Read / Write
write to ME
region
PDR (4) Not Accessible Not Accessible Not Accessible Not Accessible
EC - EC can always
Embedded read from and
Read / Write Read / Write Read / Write
Controller write to EC
(Optional) (8) region
NOTES:
1. Descriptor and PDR region is not a master, so they will not have Master R/W access.
2. Descriptor should NOT have write access by any master in production systems.
3. PDR region should only have read and/or write access by CPU/Host. GbE and ME should
NOT have access to PDR region.
IOSF Sideband
PDR Intel® ME GbE BIOS Privileged Descriptor
Master
read from
and write to
Intel® ME
Region
There are three parameters in the Descriptor that specify access for each chipset. The
bit structure of these parameters is shown below.
Key:
0 – Denied access
1 – Allowed access
Read Access
Bit Number 7 6 5 4 3 2 1 0
Write Access
Bit Number 7 6 5 4 3 2 1 0
If the CPU/BIOS needs read access to the GbE and Intel® ME and write access to
Intel® ME, then the bits are set to:
Note: These settings should only be used if the PDR region is implemented.
To lock the SPI in the image creation phase: select the recommended
settings for production (e.g., select 0x0C for Intel® ME read access
and 0x0D for Intel® ME write access).
Note: To avoid confusion it is recommended that each table entry name be unique. There is
no checking mechanism in FIT to prevent table entries that have the same name and no
error message is displayed in such cases.
3. User can enter into the values for the flash device. (Figure3-9, which shows the
parameters of a new VSCC table.)
Note: The VSCC register value will be automatically populated by FIT using the
vsccommn.bin file the appropriate information for the Vendor and Device ID.
Note: If the descriptor region is being built manually the user will need to reference the
VSCC table information for the parts being supported from the manufacturers’ serial flash
data sheet. The Ice Lake PCH-LP SPI Programming Guide should be used to calculate the
VSSC values. For C620 family of workstation systems, use the LBG SPI Programming Guide
for further reference concerning the VSCC table definitions.
2. Click close, the table and all of the information will be removed.
Note: Changing the Intel® ME Region will prompt the user and require the users to reset
parameters in Intel® FIT.
Note: Intel® FIT tool would return a build error in case wrong PMC binary is selected for
stitching.
Click on Intel® ME Kernel Tab on the left pane to configure Intel® ME parameters. The
parameter values can be found in the Help Text next to the parameter value as shown
in Figure 3-11.
3.4.17 Power
This section describes the platform power configuration settings.
Click on the Power tab on the left pane to configure power parameters.
(Refer Figure 12)
The Manageability section lets the user define the default Intel® AMT parameters. The
values specified in this section are used after the Intel® AMT device is un-provisioned
(full or partial). Click Intel® AMT Tab on the left tab to configure Intel® AMT
parameters.
The ability to change certain options is SKU-dependent and – depending on the SKU
selected – some of default values will be disabled and cannot be changed.
Note: PCH SKU and FW SKU selection is not within the tool. It is based on the PCH SKU part
that customer chooses and the FW SKU they load on that platform.
• Intel® Platform Trusted Technology
• Intel® Content Protection
Click Intel® AMT tab on the left pane to specify the OEM settings.
1. Click on Flash Layout tab on the left pane to load the binary file for Gbe region.
2. Select a file. When the flash image is built, the contents of this file are copied into
the Gbe Region.
– OR –
• Specify an XML file with the /b option in the command line.
FIT uses an XML configuration file and the corresponding binary files to build the SPI
flash image. The following is produced when an image is built:
• Binary file representing the image
• Text file detailing the various regions in the image
• Optional set of intermediate files (refer Section Note:).
• Multiple binary files containing the image broken up according to the flash
component sizes.
Note: These files are only created if two flash components are specified.)
The individual binary files can be used to manually program independent flash devices
using a flash programmer. However, the user should select the single larger binary file
when using FPT.
To decompose an image:
8. Chose File → Open.
9. Change the file type filter to the appropriate file type.
10. Select the required file and click Open; the image is automatically decomposed,
the GUI is updated to reflect the new configuration, and a folder is created with
each of the regions in a separate binary file.
Note: It is also possible to decompose an image by simply dragging and dropping the file
into the main window. When decomposing an image, there are some NVARs will not be able
to be decomposed by FIT. FIT will use Intel default value instead. User might want to check
the log file to find out which NVARs were not parsed.
Note: The ME region binary contained in INT folder after image generation only contains the
firmware default base settings for ME region no FIT customization is applied.
To view all of the supported options: Run the application with the -? option.
Option Description
-b Automatically builds the flash image. The GUI does not appear if this
flag is specified. This option causes the program to run in auto-build
mode. If there is an error, a valid message is displayed and the image
is not built.
If a BIN file is included in the command line, this option decomposes it.
-O <filename> Path and filename where the image is saved. This command overrides
the output file path in the XML file.
-f <filename> Specifies input file. XML, full image binary, or ME only binary.
-me <file> Overrides the binary source file for the Intel® ME Region with the
specified binary file.
-bios <file> Overrides the binary source file for the BIOS Region with the specified
binary file.
-pdr <file> Overrides the binary source file for the PDR Region with the specified
binary file.
-ec <file> Overrides the binary source file for the EC region.
-gbe <file> Overrides the binary source file for the GbE Region with the specified
binary file.
-iunit <file> Overrides the binary source file for the iUnit region.
-pmcp <file> Overrides the binary source file for the PMCP region.
-ish <file> Overrides the binary source file for the ISH region.
-sd_token <file> Overrides the binary source file for the Secure Debug Token.
-iom <file> Overrides the binary source file for the IOM region.
-nphy <file> Overrides the binary source file for the North PHY region.
-tbt <file> Overrides the binary source file for the TBT region.
-oem_km <file> Overrides the binary source file for the OEM KM. override from cli
enabled only in FWUpdate build
-U1 <value> Overrides the $UserVar1 environment variable with the value specified.
Can be any value required.
-U2 <value> Overrides the $UserVar2 environment variable with the value specified.
Can be any value required.
-U3 <value> Overrides the $UserVar3 environment variable with the value specified.
Can be any value required.
-FLASHCOUNT <0, Overrides the number of flash components in the Descriptor Region. If
1 or 2> this value is zero, only the Intel® ME Region is built.
-FLASHSIZE1 <0, Overrides the size of the first flash component with the size of the
1, 2, 3, 4 or 5> option selected as follows:
0 = 512KB
1 = 1MB
2 = 2MB
3 = 4MB
4 = 8MB
5 = 16MB.
-FLASHSIZE2 <0, Overrides the size of the first flash component with the size of the
1, 2, 3, 4 or 5> option selected as follows:
0 = 512KB
1 = 1MB
2 = 2MB
3 = 4MB
4 = 8MB
5 = 16MB.
An image's parameters can also be extracted by entering the following commands into
the command line:
FIT.exe /f output.bin /b
This command would create a folder named "output". The folder contains the
individual region binaries (Descriptor, GBE, Intel® ME, and BIOS) and the Map file.
The Map file contains the start, end, and length of each region.
Note: If using paths defined in the KIT, be sure to put "" around the path as the spaces
cause issues.
Note: The ME override option changes the ME base used on command line but still uses the
values from the xml or binary passed in.
§§
FPT can program each region individually or it can program all of the regions with a
single command. The user can also use FPT to perform various functions such as:
• View the contents of the flash on the screen.
• Write the contents of the flash to a log file.
• Perform a binary file to flash comparison.
• Write to a specific address block.
• Program Named variables.
• Provision HDCP
• Provided FPF’s Access
• Helps doing Closemnf
Note: For proper function in a Multi-SPI configuration the Block Erase, Block Erase
Command and Chip Erase must all match.
In order for tools to work under the Windows® PE environment, you must manually
load the driver with the .inf file in the Intel® MEI driver installation files. Once you
locate the .inf file you must use the Windows® PE cmd drvload HECI.inf to load it
into the running system each time Windows® PE reboots. Failure to do so causes
errors for some features.
Note: Supported drivers are required to reside on the running OS for Intel® FPT tool to
function; idrvdll.dll (or with the proper suffix of 32e when running 64bit OS)
Note: In the Windows® environment for operations involving global reset you should add a
pause or delay when running FPTW using a batch or script file.
Note: After programing the flash device, whether fully or partially, it is recommended to
perform a G3 power cycle to complete the flashing process.
Note: Pulling out DIMM from slot 0 or leaving the Intel® ME region empty to stop Intel® ME
are not valid options for current generation platforms.
SetFileEx API will allow for the host to change the values in UEP (Unified Emulation
Partition). Note: Intel® ME Firmware does NOT require commit File after a UEP SetFile.
Attempting to execute Commit file when not necessary will result in firmware
returning an error.
The variables can be modified individually or all at once via a text file.
Note: Files output when using the Intel® FPT -CFGGEN command line option in EFI
environments do not contain the Carriage Return code 0x0D (‘\r’) as part of EOL (end-
of-line) sequence. As a result, when opened in Windows® environment, some
applications may show all lines of text on a single line. If the output configuration files
are intended to be edited in Windows® environment, it is recommended to use the
Windows® version of Intel® FPT accordingly to collect the configuration data.
Otherwise, they may be opened using a text editor which can process files which
contain only Line Feed 0x0A (‘\n’) EOL sequences.
Option Description
fpt.exe –u –n Overwrites a pending NVAR value update request with the file
<nvar> system's current.
fpt.exe –cfggen Creates a list of blank NVARs in a text file that lets the user update
multiple line configurable NVARS. The variables have the following
format in the text file:
NVAR name = value which will be used by setfile.
fpt.exe –U –IN Accepts cfggen file with values set and will use setFileEx to update
<Text file>
To view all of the supported commands: Run the application with the ‘-?’ Option for
windows* OS, and the ‘–h’ option for EFI.
Table 4-2. Command Line Options for fpt.efi, fpt.exe and fptw.exe
Option Description
Help (-H, -?) Displays the list of command line options supported by FPT
tool.
-CLEAR Overwrites a pending NVAR value update request with the file
system's current.
-VERBOSE [<file>] Displays the tool's debug information or stores it in a log file.
-Y Bypasses Prompt. FPT does not prompt user for input. This
confirmation will automatically be answered with "y".
-F <file> Flash. Programs a binary file into an SPI flash. The user needs
[NOVERIFY] to specify the binary file to be flashed. FPT reads the binary,
and then programs the binary into the flash. After a successful
flash, FPT verifies that the SPI flash matches the provided
image. Without specify the length with –L option, FPT will use
the total SPI size instead of an image size.
The NOVERFY sub-option *must* follow the file name. This
will allow flashing the SPI without verifying the programming
was done correctly. The user will be prompted before
proceeding unless ‘-y’ is used.
-ERASE Block Erase. Erases all the blocks in a flash. This option does
not use the chip erase command but instead erases the SPI
flash block by block. This option can be used with a specific
region argument to erase that region. This option cannot be
used with the –f, -b, -c, -d or –verify options.
-VERIFY <file> Verify. Compares a binary to the SPI flash. The image file
name has to be passed as a command line argument if this
flag is specified.
-D <file> Dump. Reads the SPI flash and dumps the flash contents to a
file or to the screen using the STDOUT option. The flash device
must be written in 4KB sections. The total size of the flash
device must also be in increments of 4KB.
-SAVESXID Saves the GbE SSID and SVID when GbE is being reflashed.
-E Skip Erase. Does not erase blocks before writing. This option
skips the erase operation before writing and should be used if
the part being flashed is a blank SPI flash device.
-CFGGEN NVAR Input file generation option. This creates a file which can
be used to update the line configurable NVARS.
-U Update. Updates the NVARs and FPFs in the flash. The user
can update by specifying their names and values in the
parameter file. The parameter file must be in an INI file format
(the same format generated by the –cfggen command). The -
in <file> option is used to specify the input file.
-O <file> Output File. The file used by FPT to output NVAR information.
-IN <file> Input File. The file used by FPT for NVAR input. This option flag
must be followed by a text file (i.e., fpt –u –in FPT.cfg). The
tool updates the NVARs contained in the text file with the
values provided in the input file.
User can also use FPT –cfggen to generate this file.
-N <value> Name. Specifies the name of the NVAR that the user wants to
update in the image file or flash. The name flag must be used
with Value (-v).
-V <value> Value. Specifies the value for the NVAR variable. The name of
variable is specified in the Name flag. The Value flag must
follow the Name flag.
-CLOSEMNF [NO] [PDR] End of Manufacturing. This option is executed at the end of
[EC] [BIOS] <file> manufacturing phase. This option does the following:
Sets the Intel® ME manufacturing mode done bit (Global
Locked bit).
Verifies that the Intel® ME manufacturing mode done bit
(Global Locked) is set.
Sets the master region access permission in the Descriptor
region to its Intel-recommended value
Verifies that flash regions are locked.
If the image was properly set before running this option, FPT
skips all of the above and reports PASS. If anything was
changed, FPT automatically forces a global reset through the
CF9GR mechanism. The user can use the no reset option to
bypass the reset. If nothing was changed, based on the
current setting, the tool reports PASS without any reset.
The "NO" addition will prevent the system from doing a global
reset following a successful update of the ME Manufacturing
Mode Done, the Region Access permissions, or both.
The PDR, BIOS, EC, or GBE addition will allow CPU\BIOS Read
and Write access to the PDR region of flash.
It is now supported to run -closemnf in master_access.xml
Note: Running FPT-closemnf also sets the default value for any
unprovisioning process. Run FPT –closemnf first if the user
wants to test any unprovisioning related process. In order to
allow FPT to perform a global reset, BIOS should not lock
CF9GR when Intel® ME is in manufacturing mode. This step is
highly recommended to the manufacturing process. Without
doing proper end of manufacturing process would lead to ship
platform with potential security/privacy risk.
Important:
Before using this option with Production MCP / FW verify that
the values for the PTT and Anchor Cove are correct in your
image. Once this setting is used it will permanently commit
values into the Field Programmable Fuses and cannot be
undone.
-PAGE Pauses the screen when a page of text has been reached. Hit
any key to continue.
-SPIBAR Display SPI BAR. FPT uses this option to display the SPI Base
Address Register.
-R <name> NVAR and FPFs Read. FPT uses this option to retrieve NVAR
value for a specific NVAR file name. The value of the variable
is displayed. By default, all non- secure variables are displayed
in clear-text and secure NVAR will be displayed in HASH. The -
hashed option can be used to display the hash of a value
instead of the clear-text value.
-VARS Display Supported Variables. FPT uses this option to display all
variables supported for the -R and -COMPARE commands.
Note: This will no longer display UEP based values which are
tied to configuring iFPF’s.
-COMMIT Commit. FPT uses this option to commit all setfile commands
NVARs changes to NVAR and cause relevant reset accordingly
If no pending variable changes are present, Intel® ME does not
reset and the tool displays the status of the commit operation.
-COMMITFPF <name> Commits NVAR values to FPF via firmware and prevents
further modification of FPFs.
-PROVHDCP <file><file> Provision platform with the key and cert provided.
-REWRITE Allows to rewrite the SPI with file data even if flash is identical.
-WRITETOKEN <file> Write the token where the file name is the token name.
-COMMITARBSVN Commits ARB SVN to FPFs. This would commit the Anti
Rollback SVN to the FPFs.
Note: After programing the flash device, whether fully or partially, it is recommended to
perform a G3 power cycle to complete the flashing process.
** Return value 0 indicates successful completion. In the second case, FPT –closemnf returns 1
(= error) because it is unable to set the Intel ME Mfg Done bit, because flash permissions are
already set to Intel recommended values (host cannot access Intel ME Region).
ME GBE BIOS EC
0b 0000 000† 000‡ 1011 = 0b 0000 0001 0000 00*1 =
Read 0b 0000 0000 1101 = 0x00d 0b 0000 0000 1000 = 0x009
0x0†‡F 0x0101 or 0x0103
Write 0b 0000 0000 1100 = 0x004 0b 0000 0000 1000 = 0x008 0b 000† 000‡ 1010 = 0x†‡A 0b 0000 0001 0000 0x100
Note:
1. ‡ = Value dependent on if PDR is implemented and if Host access is desired.
2. † = Optional BIOS access to the EC region.
3. * = Optional EC Read access to BIOS.
Notes:
1. Case A depends on platform design if optional BIOS access to PDR, add PDR
parameter after -closemnf; BIOS Read = 0x1F, BIOS Write = 0x1A.
2. Case B depends on platform design if optional BIOS access to the EC region, add
EC parameter after -closemnf; BIOS Read = 0x10F, BIOS Write = 0x10A.
4.8 Examples
The following examples illustrate the usage of the EFI versions of the tool (fpt.efi and
fpt.exe respectively). The Windows® version of the tool (Fptw.exe) behaves in the
same manner apart from running in a Windows® environment.
EFI:
>fpt.efi –f spi.bin or fs0 :\> fpt.efi –f spi.bin
This command writes the data in the spi.bin file into a whole SPI flash from address
0x0.
EFI:
fpt.efi –f bios.rom –BIOS
This command writes the data in bios.bin into the BIOS region of the SPI flash and
verifies that the operation ran successfully.
EFI:
fpt.efi -F image.bin -A 0x100 -L 0x800
Warning: Not all of the file data will be written to flash because
the file is longer than the flash area to be written to!
This command loads 0x800 of the binary file image.bin starting at address 0x0100.
The starting address and the length needs to be a multiple of 4KB.
EFI:
fpt.efi –d imagedump.bin
--------------------------------------------
Intel (R) Flash Programming Tool. Version: x.x.x.xxxx
Copyright (c) 2005-2019, Intel Corporation. All rights reserved.
Warning: There are some addresses that are not defined in any regions.
Read/Write/Erase operations are not possible on those addresses.
--------------------------------------------
Intel (R) Flash Programming Tool. Version: x.x.x.xxxx
Copyright (c) 2005-2019, Intel Corporation. All rights reserved.
Warning: There are some addresses that are not defined in any regions.
Read/Write/Erase operations are not possible on those addresses.
This command writes the contents of the Descriptor region to the file descdump.bin.
Total Accessible SPI Memory: 16384KB, Total Installed SPI Memory: 32768KB
Warning: There are some addresses that are not defined in any regions.
This command displays information about the flash devices present in the computer.
The base address refers to the start location of that region and the limit address refers
to the end of the region.
EFI:
fpt.efi -verify outimage.bin
--------------------------------------------
Intel(R) Flash Programming Tool. Version: x.x.x.xxxx
Copyright (c) 2005-2019, Intel Corporation. All rights reserved.
Warning: There are some addresses that are not defined in any
regions.Read/Write/Erase operations are not possible on those addresses.
This command compares the Intel® ME region programmed on the flash with the
specified FW image file outimage.bin. If the -y option is not used; the user is
notified that the file is smaller than the binary image. This is due to extra padding that
is added during the program process. The padding can be ignored when performing a
comparison. The -y option proceeds with the comparison without warning.
EFI:
fpt.efi -verify outimage.bin
--------------------------------------------
Intel (R) Flash Programming Tool. Version: x.x.x.xxxx
Copyright (c) 2005-2019, Intel Corporation. All rights reserved.
Platform: Intel(R) Qxx Express Chipset
Reading HSFSTS register... Flash Descriptor: Valid
--- Flash Devices Found ---
W25Q256FV ID: 0xEF4019 Size: 32768KB (65536Kb)
-Verifying Flash [0x800000] 32768KB of 32768KB - 100% complete.
RESULT: The data is identical.
FPT Operation Successful
Note: Only –r (get command) supports the –hashed optional command argument. When –
hashed is used, variable value will be returned in hashed format, otherwise it will be returned
in clear txt. There are a few exceptions in the case of variables MEBxPassword, PID and PPS,
their value will be always returned in hashed format regardless –hashed is used or not. This
is primarily because of security concern.
;
; Flash Programming Tool FOV Programming File
;
; Any entry that is not included, or does not have a value
; following the label will not be updated.
;
; Comments can be added by using a ';' as the first entry
FWUpdLcl = 0x01
GPIO =
0x01040100060001010000000001040200070001010000000001040A000800010100000
00001040B00090001010000000001040C000A0001010000000001040D000B0001010000
000001070E00000001000000000001070D000100010000000000
OEM ID = 0x0000
S3 Optimization = 0x00
§§
Intel® MEManuf validates all components and flows that need to be tested according
to the FW installed on the platform in order to ensure the functionality of Intel® ME
applications: BIOS-FW, Flash, SMBus, M-Link, etc. This tool is meant to be run on the
manufacturing line.
Intel® MEManuf is intelligent enough to know if it should run the test or report a
result. If there is no test result available for an Intel® ME enabled platform, MEManuf
calls the test. Otherwise, it reports the result or the failure message from the previous
test.
Intel® MEManuf tools report the result or cause a reboot. If there is a reboot, Intel®
MEManuf should be run again.
Option Description
No option There are differences depending on the firmware SKU type the system is
running on:
If BIST is disabled in the Intel® ME Boot: The first time running Intel®
MEManuf, since there is no CM3 test result stored in SPI, the tool will
request the FW to run a complete BIST which includes a power reset at
the end of the test for the Hibernation for the Windows® version. This
power reset is only host side power cycle that triggered by Intel® ME.
When host resets, Intel® ME FW will transition from CM0 to CM3, and
then attempt automatically transition back from CM3 to CM0 along
bringing host back to S0. Once host is booted back into OS, user needs to
run the tool again in order to run runtime BIST and retrieve the test
result.
If BIST is enabled in the Intel® ME Boot: If there is no CM3 test result,
the tool will report error and request user to use –test to run a full BIST.
If there is CM3 test result, the tool will execute the runtime BIST and
report the result.
If running on a Consumer SKU image, the tool will request the FW to run
a complete BIST which does not involve any power transition at the end
of the test. Test result will be reported back right after the test is done
and cleared.
If BIST test result is not displayed after BIST test is done, the tool needs
to be run again (with or without any BIST related argument
combinations) to retrieve the result, once test result is displayed, it will
be cleared.
Tool is capable of remembering whether/what tests (including host based
tests) have been run from previous invocation. Host based tests will be
run for all cases (whether it’s retrieving test result or run the actual
BIST). Currently there are two host based tests; they are VSCC Table
validation check and ICC data check.
-NOWLAN Note: This option is not applicable for Consumer Intel® ME FW SKU.
This option only applies to the AMT test so that the user can skip the
wireless LAN NIC test if there is no wireless LAN NIC attached to the
hardware. When –nowlan switch is not used, Intel® MEManuf also checks
for the HW presence of Intel WLAN card based on a pre-defined list. If
Intel® MEManuf detects an Intel WLAN card present on the platform,
Intel® MEManuf runs the WLAN BIST test and reports pass/fail
accordingly. If Intel® MEManuf cannot find any known WLAN card, Intel®
MEManuf skips the WLAN BIST test and does not report errors. With the –
verbose option, it displays "No Intel wireless LAN card detected"
Note:
-S0 can only be used on the platform which Intel® AMT is present and
can be enabled in the field.
-BLOCKNET Note: This option is not applicable for Consumer Intel® ME FW SKU.
This option blocks any network traffic that goes in/out of the integrated
GbE wired/wireless LAN interface. If Intel® AMT is disabled, "Error 9257:
Cannot run the command since Intel® AMT is not available" is returned.
-ALLOWNET Note: This option is not applicable for Consumer Intel® ME FW SKU.
This option allows any network traffic that goes in/out of the integrated
GbE wired/wireless LAN interface. If Intel® AMT is disabled, "Error 9257:
Cannot run the command since Intel® AMT is not available" is returned.
-EOL This option runs several checks for the use of OEMs to ensure that all
<Var|Config> - settings and configurations have been made according to Intel
F <filename> requirements before the system leaves the manufacturing process. The
check can be configured by the customer to select which test items to run
and their expected value (only applicable for Variable Values, FW Version,
BIOS Version, and Gbe Version). The sub option config or var is optional.
Using -EOL without a sub option is equivalent to the –EOL config. ICC
data check is performed for all options.
The Full BIST test for ME13.0 is a combination of M0_HW, Live_HW and
M0_Config. The Runtime BIST is a combination of M0_HW and
M0_Config.
Intel® MEManuf Sx test will require system is capable to enter sleep
state, keep pinging the platform with network package and keep the
system up will make the test failed.
Host based Tests
ME/BIOS VSCC validation, Intel® MEManuf verifies that flash SPI ID on
the system is described in VSCC table. If found, VSCC entry for relevant
SPI part should match the known good values that pre-populated in the
file.
Intel® ME state check, Intel® MEManuf verifies Intel® ME is in normal
state. This is done by checking the value of 4 fields (initialization state,
mode of operation, current operation state, and error state) in FW status
register1. If any of these fields indicates Intel® ME is in abnormal state,
Intel® MEManuf will report error without running BIST test.
ICC data check, Intel® MEManuf verifies that valid OEM ICC data is present
and programmed accordingly. This is done by checking FW status
register2 ICC bits (which are bit 1 and 2 equal to 3).
Intel® MEManuf –EOL Check.)
When –f flag is used along with a file name (<filename>), the tool will
load the file as the configuration file, instead of using MEManuf.xml.
Note: This is a standalone command and will only work if CM3 Autotest
has been enabled in the firmware image. CM3 Autotest will be executed
on the next CMoff – CM0 transition (example: Cold Reset), Global Reset
or G3. The option itself will not trigger any platform reboots.
-CFGGEN Use this option along with a filename to generate a default configuration
<filename> file. This file (with or without modification) can be used for the -EOL
option. Rename it MEManuf.xml before using it. It is highly recommended
to use this option to generate a new MEManuf.xml with an up-to-date
variable names list before using the Intel® MEManuf End-Of-Line check
feature.
-ALL Use this option to generate all possible tests for configuration file.
All BIST, EOLConfig, and EOLVAR types of tests will be included in the
generated XML.
-VERBOSE Displays the debug information of the tool or stores it in a log file.
<file>
–PAGE When it takes more than one screen to display all the information, this
option lets the user pause the display and then press any key to continue
on to the next screen.
-NOLAN Note: This option is not applicable for Consumer Intel® ME FW SKU.
This option only applies to the Intel® AMT test so that the user can skip
the wired LAN NIC test if there is no wired LAN NIC attached to the
hardware.
Note:
-S0 can only be used on the platform which Intel® AMT is present and
can be enabled in the field.
Note: The KVM test will be skipped if the platform being tested contains both internal and
external GFX and BIOS has disabled internal GFX.
No After: Run Runtime BIST and query CM3 test result Run runtime BIST
BIST Disabled in
-Test -Run full BIST test with host triggered hibernation in Run runtime BIST
Windows® test (with no reset)
- Save the CM3 test result in SPI.
No Run the Runtime BIST and query M3 test result from Run runtime BIST
BIST Enabled in the
option SPI without reset, if not CM3 test result retrieved, test (with no reset)
return error.
ME BOOT
-Test -Run full BIST test with and host triggered Run runtime BIST
hibernation in Windows® test (with no reset)
- Save the CM3 test result in SPI.
Note: The Full BIST test for ME13.0 is a combination of M0_HW, Live_HW and M0_Config.
The Runtime BIST is a combination of M0_HW and M0_Config.
Intel® MEManuf Sx test will require system is capable to enter sleep state, keep
pinging the platform with network package and keep the system up will make the test
failed.
If it is desired to change this default behavior, ‘ErrorAction’ field can be used. In other
words, ErrorAction is used to define the importance of a test. It can be defined with
one of the following values:
1. ErrorContinue: this is the default value, it reports the error and continue to
the next check.
2. ErrorStop: When an error is encountered, it’s reported and the testing
process stops.
3. WarnContinue: reports a warning regarding the error and continues to the
next check.
Lines which start with <! -- -- > are comments. They are also used to inform users of
the available test group names and the names of specific checks that are included in
each test that Intel® MEManuf recognizes.
To select which test items to run: Modify the State item as <State> Enabled
</State>to enable the subtest
Wherever there is a section for Required Value, Example: <RequiredValue
format="major_ver.minor_ver" example="0.6"> </RequiredValue>, Please enter the
required values in the xml file which will be used by MEManuf for testing.
Note: -EOL Variable check. The system must be in Intel® ME manufacturing mode when
-EOL Variable check is run or No EOP Message Sent.
FPFs in UEP Committed All UEPs committed and equal to the FPFs’ values.
Boot Guard Status Complicated check – BootGuard files in FWStatus are ok.
Note: -EOL Config check. If the system is in Intel® ME manufacturing mode when
-EOL Config check is run there will be an error report or No EOP Message Sent.
5.4.5 Output/Result
The following test results can be displayed at the end-of-line checking:
5.5 Examples
5.5.1 Example 1
CurrentState: Normal
ManufacturingMode: Enabled
FlashPartition: Valid
OperationalState: CM0 with UMA
InitComplete: Complete
BUPLoadState: Success
ErrorCode: No Error
ModeOfOperation: Normal
SPI Flash Log: Not Present
Phase: HOSTCOMM Module
ME File System Corrupted: No
PhaseStatus: UNKNOWN
FPF and ME Config Status: Not committed
RPMC status: OK
Error 255: Sensor could not be found. Either no sensor is connected, the sensor
has not yet initialized,
or the system is improperly configured.
Error 255: Sensor could not be found. Either no sensor is connected, the sensor
has not yet initialized,
or the system is improperly configured.
Error 255: Sensor could not be found. Either no sensor is connected, the sensor
has not yet initialized,
or the system is improperly configured.
Meinfo reports an LMS error. This behavior is expected as the LMS driver cannot be
installed on Windows® PE.
6.2 Usage
The executable can be invoked by:
Option Description
-FEAT Compares the value of the given feature name (and optional column name
<name> for features displayed in a table) with the value in the command line. If the
<column> feature name or value is more than one word, the entire name or value must
-VALUE be enclosed in quotation marks (together with the optional column name).
<value> For example –feat “PTT FPF”.
If the values are identical, a message indicating success appears. If the
values are not identical, the actual value of the feature is returned. Only one
feature may be requested in a command line.
-FEAT Retrieves the current value for the specified feature (and optional column
<name> name for features displayed in a table). If the feature name is more than one
<column> word, the entire feature name (and optional column name) must be enclosed
in quotation marks. For example –feat “PTT FPF”. The feature name entered
must be the same as the feature name displayed by Intel® MEINFO.
Intel® MEINFO can retrieve all of the information detailed below. However,
depending on the SKU selected, some information may not appear.
Note: For the EFI shell version you need to add additional “^” to enclose the
text string in order for it to be properly parsed.
CurrentState Normal
ManufacturingMode Enabled
FlashPartition Valid
OperationalState CM0 with UMA
InitComplete Complete
BUPLoadState Success
ErrorCode No Error
ModeOfOperation Normal
SPI Flash Log Not Present
Phase HOSTCOMM Module
ME File System Corrupted No
PhaseStatus UNKNOWN
FPF and ME Config Status Not committed
RPMC status OK
-VERBOSE Turns on additional information about the operation for debugging purposes.
<filename> This option has to be used together with the above mentioned option(s).
Failure to do so generates the error: "Error 9254: Invalid command line
option".
This option works with no option and -feat.
-H Displays the list of command line options supported by the Intel® MEINFO
tool.
- PAGE When it takes more than one screen to display all the information, this option
lets the user pause the display and then press any key to continue on to the
next screen.
No option: If the tool is invoked without parameters, it reports information for all
components listed in Table 6-2 below for full SKU FW.
Feature Data
Source (Intel® Specific
Feature ME Kernel/ Consumer
Feature Field Value
Name Intel® SKU
AMT/SW/ Dependency
Other)
SPI Flash ID Other (Directly X Only when there A JEDEC ID number (in Hex)
reading from SPI) are flash parts
HW installed
ME/BIOS VSCC Other (Directly X Only when there A 32bit VSCC number (in Hex)
register values reading from SPI) are flash parts
HW installed
OEM Id Intel® ME Kernel X Only if fw image UUID for OEM to check during
supports OEM Id FW Update
Image Anti Intel® ME Kernel X BIOS Counter indicating the ARB SVN
Rollback SVN existing in the FW Image
BSMM SVN FPF Intel® ME Kernel X BIOS Hash of Public Key to verify Boot
Policy Manifest
Key Manifest ID Intel® ME Kernel All BIOS Hash of Public Key to verify Boot
Policy Manifest
6.3 Examples
This is a simple test that indicates whether the FW is alive. If the FW is alive, the test
returns device-specific parameters. The output is from the Windows® version.
Note: If EOM is set, for FPF’s the FPF and ME column values both will be
displayed.
6.3.1 Consumer Intel® ME FW SKU
PCH Information
PCH Version 0
PCH Device ID 284
PCH Step Data A0
PCH SKU Type Pre-Production ES
PCH Replacement Counter 0
PCH Replacement State Disabled
PCH Unlocked State Enabled
FW Capabilities 0x31309640
FW Type Pre-Production
Last ME reset reason Unknown
BIOS Config Lock Enabled
Host Read Access to ME Enabled
Host Write Access to ME Enabled
Host Read Access to EC Enabled
Host Write Access to EC Enabled
SPI Flash ID 1 EF4019
SPI Flash ID 2 Not Available
BIOS boot State Post Boot
M3 Autotest Disabled
EPID Group ID 0x4DC
Keybox Not Provisioned
RPMC Replay Protection Unsupported
RPMC Replay Protection Bind Counter 0
RPMC Replay Protection Bind Status Pre-bind
RPMC Replay Protection Rebind Unsupported
RPMC Replay Protection Max Rebind 1
Storage Device Type SPI
Minimum Allowed Anti Rollback SVN 1
Image Anti Rollback SVN 2
Trusted Computing Base SVN 1
Re-key needed False
HW Binding Enabled
FPF UEP ME FW
*In Use
--- --- -----
ACM SVN 0x00 0x00 0x00
BSMM SVN 0x00 0x00 0x00
EK Revoke State Not Revoked Not Revoked Not Revoked
Error Enforcement Policy 0 Disabled Disabled Disabled
Error Enforcement Policy 1 Disabled Disabled Disabled
Intel(R) PTT Enabled Enabled Enabled
KM SVN 0x00 0x00 0x00
OEM ID 0x00 0x00 0x00
OEM KM Present Enabled Enabled Enabled
OEM Platform ID 0x00 0x00 0x00
OEM Secure Boot Policy 0x78 0x78 0x78
CPU Debugging Enabled Enabled Enabled
BSP Initialization Enabled Enabled Enabled
Protect BIOS Environment Enabled Enabled Enabled
Measured Boot Enabled Enabled Enabled
Verified Boot Enabled Enabled Enabled
Key Manifest ID 0x01 0x01 0x01
Force Boot Guard ACM Disabled Disabled Disabled
PTT Lockout Override Counter 0x00 0x00 0x00
Persistent PRTC Backup Power Enabled Enabled Enabled
RPMC Rebinding Disabled Disabled Disabled
RPMC Support Disabled Disabled Disabled
SOC Config Lock State Enabled Disabled Enabled
SPI Boot Source Enabled Enabled Enabled
Txt Supported Disabled Disabled Disabled
§§
FWUpdate does not update the BIOS, GbE, or Descriptor Regions. It updates the FW
code portion along with the WCOD and LOCL partitions that Intel provides on the OEM
website. Intel® FWUpdate updates the entire Intel® ME code area. In addition
FWUpdate local can perform a partial update to change / update the different IUP
portions.
It is important to note that WCOD & LOCL are part of Intel® CSME and therefore
included in the *_base*.bin file.
After FWUpdate a host reset is needed to complete FW update. The user can also use
the –FORCERESET option to do this automatically.
Note: In previous generations there were two tools: Intel® ME Local Firmware Update and
Intel® ME Remote Firmware Update. Now there is just a local firmware update tool that is
called Intel® ME Firmware Update (FWUpdate).
7.1 Requirements
FWUpdLcl.exe is a command line executable that can be run on an Intel® ME-enabled
system that needs updated FW.
FW can only be updated when the system is in an S0 state. FW updates are NOT
supported in the S3/S4/S5 state.
The Intel® ME Interface driver must be installed for running this tool in a Windows®
environment.
FWUpdLcl.exe must be run with Administrator privilege for access to the Intel® MEI
driver
PMC Firmware Update: This will be handled as part of the Full FWUpdate flow and
cannot be updated on its own. PMC Firmware needs to be stitched with Intel® ME
Firmware using Intel® FIT Tool and that image will be used as the payload to Full
FWUpdate Flow for updating PMC Firmware.
Intel® ME Firmware Update: This will be handled as part of the Full FWUpdate Flow.
Requirement: Only CSE Image won’t be allowed as the payload to execute update. Pre-
Stitched ME + PMC binary needs to be used as the payload to execute ME update.
For optional IUP’s like ISH Firmware Update only, ISH Firmware can be directly used
as the payload to update ISH FW only using Partial FWUpdate. No stitching with Intel®
ME Firmware required.
7.5 Usage
Note: In this section, <Image File> refers to an Intel-provided image file of the section of
the FW to be updated, not the image file used in FIT to program the entire flash memory.
Image File is the image file of the FW to be updated. Is the same image file used by
FIT.
Option Description
-VERBOSE Verbose. Enables additional information about the tool's operation to be displayed for
[<FILE>] debugging purposes.
-Y Ignore warning. If the warning asks for input “Y/N”, this flag makes the tool
automatically take “y” as the input.
-F <FILE> File. Specifies the FWUpdate image file to be used for performing an update.
-SAVE <file> Restore Point. Retrieves an update image from the FW based on the currently running
FW. The update image is saved to the user-specified file.
-ALLOWSV Allow Same Version. Allows the version of the input FW (based on the file input) to be
the same as the version of the FW currently on the platform. Without this option, an
attempt to perform an update on the same version will not proceed.
-FORCERESET Force Reset. The tool automatically reboots the system after the update process with FW
is complete. The system reboot is necessary for the new FW to take effect. An attempt
to update the FW without this option will end with a message telling the user to reset the
platform for the changes to take effect.
-OEMID OEM ID. The tool uses the specified OEM ID during the transaction of the new FW image
<UUID> with the Manageability Engine. The purpose of the OEM ID is for manufacturers to have
an identifier for their system. Using any other OEM ID value other than what is on the
FW running on the target platform results in a failure of the FWUpdate process. The full
image (including all necessary flash partitions) flashed to the system can be configured
with the Flash Image Tool to specify the OEM ID (this tool specifies a default of zeros for
the OEM ID.) If this command line option is not used, the default OEM ID used for the
update is zeros. The OEM ID is configured in the existing FW image running on the
platform. The OEM ID value is specified in the UUID format (8-4-4-4-12).
-H or -? Displays the list of command line options supported by the Intel® MEINFO tool.
Note: Use -H for help when running in the EFI Shell.
Note: In order to execute FWUpdLcl in EFI, make sure all the payload files and FWUpdate
executable are located in the root folder.
FWUpdLcl.exe –f FW.BIN
EFI:
FWUpdLcl.efi –f FW.BIN
EFI:
FWUpdLcl.efi -f upd.bin -partid <PARTID>
Non-Verbose Mode
…\FWUpdLcl.exe –f FW.bin –partid WCOD
FW Update: [ 100%(|)]
FW Update is completed successfully.
Verbose Mode
The arguments relevant for this usage are any of the command line options with the
prefix ‘-‘ removed. The tool will display all valid command sequences based on the
options provided. Below is an example which displays valid command sequences with
the –ipu option
…\FWUpdLcl.exe -exp partid
EFI:
> FWUpdLcl.efi -exp partid
English 0x01
French 0x02
German 0x03
Japanese 0x05
Russian 0x06
Italian 0x07
Spanish 0x08
Korean 0x0A
Arabic 0x0C
Czech 0x0D
Danish 0x0E
Greek 0x0F
Finnish 0x10
Hebrew 0x11
Hungarian 0x12
Dutch 0x13
Norwegian 0x14
Polish 0x15
Portuguese-Portugal 0x16
Slovak 0x17
Slovenian 0x18
Swedish 0x19
Thai 0x1A
Turkish 0x1B
8.1.1 Introduction
This chapter will describe the Firmware Update Full Library as well as the RS (reduced
size) library that will be used for Intel® Management Engine (Intel® ME) update. It
contains a description of the various APIs to be used.
8.1.2 Environment
The provided FWUpdate Libraries, both the full and the RS, are compiled using EDKII .
8.1.3 Setup
OEMs will need to include the relevant “*.h” file in their program and links it to the
relevant *.lib file. Both *.h and *.lib exist in the relevant FW Kit.
In FWUpdate (Full Size) folder, multiple OSs are supported; Taking Windows64 as
example for the below table:
errorlist.c & errorlist.h Source and header files for the error generation.
fwupdatelib.h Header file including all the functions that can be used
by customers.
errorlist.c & errorlist.h Source and header files for the error generation.
fwupdatelib.h Header file including all the functions that can be used
by customers
Note: Some function titles are marked as deprecated, this is intended for functions
that have new replacement functions and will be deprecated in future projects.
Note: Some function titles are marked with the initials RS. This is intended for
functions that apply for the FWUpdate RS library.
Note: Some function titles are marked with the initials FS. This is intended for
functions that apply for the FWUpdate Full Size library.
All other functions are in both Reduced Size library and full size library.
Removed function,
since it is returned in
FwuUpdateCheckProgr
ess().
Removed function
Purpose: This function starts executing a partial FWUpdate using buffer as the base
for the FWUpdate for the specified partition using PartitionId. Please note the not all
partitions can be updated independently.
Purpose: This function checks and reports the progress of the update flow. If in
progress, it would return the current percentage of completion, if finished, it would
return the status of the update and the required reset to follow with. This function is
to follow Update functions (Full or Partial)
FwuCheckUpdateProgress
Arguments
Success, otherwise failure with error code. A success would return the
Returns following:
InProgress – True if update is in progress. False if update is finished
CurrentPercent – Current percent of the update if the update is in
progress
Purpose: This function checks and reports the FW’s ability to perform a FWUpdate
(Enabled, Disabled
FwuEnabledState
Arguments
Success, otherwise failure with error code. A success would return the
Returns following:
FW_UPDATE_DISABLED = 0
FW_UPDATE_ENABLED = 1
FwuOemId
Arguments
Success, otherwise failure with error code. A success would return the
Returns following:
OEMID
FwuFwType
Arguments
Success, otherwise failure with error code. A success would return the
Returns following:
0 = FWU_FW_TYPE_INVALID
1 = FWU_FW_TYPE_RESERVED
FwuPchSku
Arguments
Success, otherwise failure with error code. A success would return the
Returns following:
0 = FWU_PCH_SKU_INVALID
1 = FWU_PCH_SKU_H
2 = FWU_PCH_SKU_LP
Purpose: This function retrieves the version of the specified partition ID from the
flash image.
Purpose: This function retrieves the version of the specified partition ID from the
buffer.
Purpose: This function retrieves the vendor of the specified partition ID from the
flash image.
Purpose: This function retrieves the current and expected instance ID of an IUP
partition from the FW.
Purpose: This function performs a partial FWUpdate with the provided instance ID
from a buffer
Buffer – Buffer of the update image read from the update image file
Arguments
BufferLength – Length of the buffer in bytes
PartitionId – ID of the partition to update, only partially updateable
partitions apply
InstanceId – Instance ID of the partition to update
func – A callback function that reports the progress of sending the buffer
to FW.
Success, otherwise failure with error code.
Returns
Purpose: This function performs a partial FWUpdate with the provided instance ID
from a file.
Purpose: This function retrieves the image from the flash and saves it to a buffer.
FwuSaveRestorePointToBuffer
Arguments
Success, otherwise failure with error code. A success would return the
Returns following:
Buffer – Buffer of the saved restore image read from flash
BufferLength – Length of the buffer in bytes
Purpose: This function retrieves the image from the flash and saves it to a file.
fileName – Name of the file to save the restore point image into.
Arguments
Success, otherwise failure with error code.
Returns
Purpose: This function checks the current power source (AC or DC).
Purpose: This function returns the PDT and VDV versions from ISH file INTC_pdt
FwuGetIshPdtVersion
Arguments
Success, otherwise failure with error code. A success would return the
Returns following:
PdtVersion – Version of the PDT
VdvVersion – Version of the VDV
Purpose: This function gets the local FW update settings from Intel® Management
Engine BIOS Extension (Intel® MEBX) to determine whether Firmware can be
updated.
Purpose: This function will get the previous FW update status to ensure that FW
update was successfully executed.
Purpose: This function will get the last Update Reset type to determine what type of
system reset is required to load the partition into the memory.
Global - 3
Gets the last FW update status from HECI
Returns
0 = Success
Non-zero value = Failure
Purpose: This function verifies the OEM ID provided by the user with the one embedded in
the FW.
Arguments Id - OEM id
True=OEMID matched
Returns False = OEM id mismatch
Purpose: This function gets the number of Independent partial update partition
attributes that is currently present and also the list of expected IPUs to be updated.
Note: This API is not used by the FWUpdate tool. It is being used by the UNS
services.
StatusFlags -
Arguments
BITS 0:1 (2 bits)
0 = No recovery;
1 = Full Recovery Mode;
2 = Partial Recovery Mode (unused at present).
BIT2; IPU_NEEDED bit, if set we are in IPU_NEEDED state.
BIT3; FW_INIT_STATUS done.
BIT4; FWU_IN_PROGRESS
0 = Success
Returns
Non-zero value = Failure
Purpose: This function queries FW to get response regarding the different stages of
FW Update process.
Purpose: This function performs the full FW Update using the Buffer provided by the
calling function.
Purpose: This function performs the Partial FW Update. If the requested partition is
expected by the Firmware, it will search for the expected partition in the image
provided, extract it and send it to the FW to perform the update. If the expected
partition is not found in the image an invalid file error will be returned by the tool. If
the requested partition is not expected by the firmware an error will be returned to
the user.
FWUpdate API Library supports only Partial FWUpdate for ISH only. –i is the command
line switch.
Buffer - Buffer
Arguments
Buffer Length – Length of buffer
Partition ID - denotes the partition ID, which could be WLAN (wcod) or
Returns language (locl).
WOCD ID = 0x244f4357 and LOCL ID = 0x4C434F4C
Flags: not used.
IpuUpdatedInfo – not used.
0 = Success
EFI_STATUS
HeciPdt (
IN char *buffer,
IN UINT32 bufferLength
);
Purpose: The function performs PDT Data Update i.e. Sensor Calibration Data
Update.
Buffer - Buffer
Arguments
Buffer Length – Length of buffer
0 = Success
Returns
Non-zero value = Failure
int
GetPartVersion (
UINT32 partID,
UINT16 *major,
UINT16 *minor,
UINT16 *hotfix,
UINT16 *build);
The Intel® Manifest Extension Utility (MEU) tool can also be used to create OEM Key
Manifest and OEM Unlock Token.
9.1 Usage
Refer to the ICL Signing & Manifesting Guide in the latest Intel ME FW kit for details
on MEU usages, signing & manifesting flows, etc.
§§
This table is for reference use only and will be updated later.
Data
Mfg. Post
Fixed Offset Length Reset
Description Expected Value EOM/Pre
Name (in Type
Bytes) EOP
Notes: Reserved
30
There are reserved
29 PTT
bits that the must
not be changed for Reserved
29:22
proper platform
operation. The user 21 TLS
should only modify
20 DAL
the bit(s) for the
feature(s) they Reserved
19
wish to change.
There is NO ability 18 KVM 2
to change features
17 Reserved
one at a time. This
NVAR sets OEM ME Network
16
Permanent Disable Disable
for ALL features. In Reserved
15:13
addition prior
updating or 12 PAVP
changing any of
11 Reserved
available settings it
is highly 10 ISH
recommended that
the user first 9:6 Reserved
retrieves the Reserved
current OEM Sku 5
Rule and toggling 4:3 Reserved
only the desired
bits, and then 2 Manageability 1
resave them. and Security
Application
This will not enable
1 Reserved
functionality that is
not capable of Manageability
0 1
working in the target Full
hardware SKU.
1. For corporate SKUs bits 0 and
Please see the
2 need to be both set to ‘1’
respective Firmware
to allow for Intel® AMT to
Bring-up Guide for a
work.
list of what features
are capable with what 2. KVM (bit 18) should only be set
firmware bundle and to ‘1’ when Manageability
Hardware SKU of Intel Application (bit 2) is set to
9 Series Chipset. ‘1’. If using a Corporate
SKU, then Manageability Full
(bit 0) must also be set to
‘1’.
For LP platforms:
GPP_A 0-23
GPP_B 0-23
GPP_C 0-23
GPP_D 0-19
GPP_E 0-23
GPP_F 0-19
GPP_G 0-7
GPP_H 0-23
GPD 0-11
For H platforms:
GPP_A 0-23
GPP_B 0-23
GPP_C 0-23
GPP_D 0-15
GPP_E 0-12
GPP_F 0-23
GPP_G 0-15
GPP_H 0-23
GPP_I 0-14
GPP_J 0-9
GPP_K 0-11
GPD 0-11
Variable: "gpio"
Value:
0x0000 : 00 00 00 00 04 00 00 00 06
00 00 00 01 00 00 00
0x0010 : 00 00 00 00 01 00 00 00 04
00 00 00 0C 00 00 00
0x0020 : 01 00 00 00 00 00 00 00 08
00 00 00 01 00 00 00
0x0030 : 0F 00 00 00 01 00 00 00 00
00 00 00
Gpio =
0x000000000300000011000000010000
00000000000100000002000000170000
00010000000000000008000000030000
00130000000100000000000000
RST = GPP_D_17
IRQ = GPP_C_23
DFU = GPP_D_19
OEM Custom Cert Hash Data. See 55 => n Valid Certificate Hash Entry ME Yes
Cert 1 Certificate Hash Entry >= 83 (SHA1, SHA256 or SHA384)
Structure definition
Note: If the
platform is un-
configured the
Certificate Hash
will be deleted.
OEM Custom Cert Hash Data. See 55 => n Valid Certificate Hash Entry ME Yes
Cert 2 Certificate Hash Entry >= 83 (SHA1, SHA256 or SHA384)
Structure definition
Note: If the
platform is un-
configured the
Certificate Hash
will be deleted.
OEM Custom Cert Hash Data. See 55 => n Valid Certificate Hash Entry ME Yes
Cert 3 Certificate Hash Entry >= 83 (SHA1, SHA256 or SHA384)
Structure definition
Note: If the
platform is un-
configured the
Certificate Hash
will be deleted.
Enhanced:
SOL enabled = true
Storage Redirection enabled =
true
KVM enabled = true
Opt-in can be disabled= false
Opt-in configurable remotely =
true
RCFG and CCM = true
Extreme
SOL enabled = false
Storage Redirection enabled =
false
KVM enabled = false
Opt-in can be disabled= false
KVM opt-in configurable remotely
= N/A
RCFG and CCM = false
PKI Domain PKI DNS Suffix. Null 32 PKI DNS Suffix in dotted string ME Yes
Name Suffix terminated string format
OEM Public Key Hash of the provided 32 32 Hex Pairs with space between
pairs ME No
Hash OEM public key