Intel (Converged Security) Management Engine: Drivers, Firmware and Tools (2-15)





I thank you for these very complete and precise explanations.When i read it it seemed insurmountable to me,too complex,but i reread it several times and i came to understand,i think
-I clicked on your ME analyzer link to install it . But i thought it was an .exe file this, which would have been easy for me. Unfortunately it must be installed with python. And i am completely noob to the python language i know absolutely nothing
-but like the other day you put my bios in your ME Analyzer then posted the screenshot to me,then you sent me the flash tool + the firmware for my motherboard that i downloaded,idon’t need ME Analyzer?
and I just have to do this sequel that you indicated to me ? :

" copy the firmware file,find FWUpdate folder inside the system tools.you may see two more inside,windows and dos.pick the windows.if you have found FWUpdLcl or FWUpdLcl64.exe you are in the right place.now paste the firmware file
run cmd with admin rights,open up the folder where the FWUpdLcl and the firmware is (cd C:\Users\your name\Downloads\ME System Tools v9.1 r7\FWUpdate\Windows)
run it with the command, FWUpdLcl -f your firmware’s mane.bin
wait till it finished,restart,enjoy.you can use Intel’s CSME Version Detection Tool to verify
then visit the other section to update your other devices,chipset,rapid storage etc "

Me Analyzer works without pyhton.you simply drag and drop your bios file into MeAnalyzer.exe and it will show you the results.as the same suggest,it analyze and shows you the information you need to find the right firmware,what kind of engine you have
and yes,that’s the correct sequence.file names are can be bit different though
C:\Users\yourname\Downloads\Intel ME System Tools v9.1 r7\FWUpdate\WIN64 in your case

you can find the rest of the firmware files in plutomaniac’s firmware repository
Intel ME 9.1 Firmware Repository r21 in your case
read the guide again,then my summary (previous post),it will make more sense then

PMC TGP LP C (B) v150.1.20.1030

Capture.PNG


but the win-raid link for ME Analyser points to github here :
https://github.com/platomav/MEAnalyzer
and it is in python that of github!

circled in red .py = python :


where is the .exe version please?

@vegzos => releases, check the rar-file.



I took a while to find your indication that it was here on the right, thank you :



EDIT : my bitdefender antivirus reacted :
" The file ME_Analyzer_v1.185.0_r227 \ ME Analyzer v1.185.0 r227 \ MEA.exe is infected with Gen: Variant.Mikey.118245 and has been placed in quarantine. "

Its a false alarm, allow it and add exception.

Hi @plutomaniac ,

I need your assistance once again for v15.

Intel(R) ME Code Versions
BIOS Version X421EAY.212
MEI Driver Version 2047.100.0.1039
FW Version 15.0.10.1469 LP Consumer
LMS Version Not Installed

IUPs Information
PMC FW Version 150.1.20.1028
OEM FW Version 0.0.0.0000
IOM FW Version 17.14.0.0000
NPHY FW Version 11.220.194.0220
PCHC FW Version 15.0.0.1014

I am trying to create a new firmware as there is a new version for PHY and PMC for v15 TGP.
I am using the following binaries:

B1. (Converged Security) Management Engine - (CS)ME: CSME 15.0 Consumer LP B v15.0.10.1469 (15.0.10.1469_CON_LP_B_PRD_EXTR.bin)
B2. Power Management Controller - PMC: PMC TGP LP C (B) v150.1.20.1030 (TGP_150.1.20.1030_LP_C_PRD.bin)
B3. Platform Controller Hub Configuration - PCHC: PCHC TGP H/LP v15.0.0.1014 (TGP_15.0.0.1014_PRD.bin)
B4. USB Type C Physical - PHY: PHY P TGP v12.14.211.2011 (TGP_P_12.14.211.2011_PRD.bin)

When trying to create the image with FIT, I get the follow error:

Error 236: [Ifwi Actions] Failed to load input file. Format appears invalid: PHY Binary File: C:\1\Intel CSME System Tools v15.0 r3\Flash Image Tool\WIN32\TGP_P_12.14.211.2011_PRD.bin
Error 20: [Csme Binary Gen] Error executing pre-build actions.
Error 2: Failed to build.
Failed to build FWUpdate Image!

There are no errors if I do not add PHY P TGP v12.14.211.2011 (TGP_P_12.14.211.2011_PRD.bin).

I see that this PHY binary is for v12, but I am not certain if it is applicable or not.
The image prepared by you for v14 for instance does also have this v12 of PHY if I am not mistaken (whereas the other major versions show v14).
Do I need to check the main version of PHY (v11.xxx.xxx.xxx in my case) specifically and that can only be updated by another of the same major version (PHY v11.xxx.xxx.xxx)?

I believe this binary was only added recently, so last time I could not encounter this issue yet.
Apologies if I am confusing the version matching in this case.
I was not too sure even based on the instructions from "Warning for all CSME v13.30+" unfortunately, so I figured I should rather ask.

Thank you very much in advance.

Hi @tempdrive

The FWUpdate instructions for CSME 15 are confusing/wrong right now honestly. I need to update them, probably tomorrow. I’ll let you know once I do so that you can follow them and see if they make more sense. Here is a quick explanation based on my current understanding and that old FIT tool version we have:

CSME 15.0 TGP-LP uses PHY N v11 (not obligatory by FWUpdate tool)
CSME 15.0 TGP-H uses PHY P v12 (obligatory for FWUpdate tool)

So in your case, you just follow the same steps/procedure as last time (CSME + PMC + PCHC), without any PHY.

@plutomaniac

Thank you very much!

If I may suggest, it would be nice if (commonly encountered) error messages of these tools would be added including the corresponding action for them.
For example, in this case it could be something like [Ifwi Actions] Failed to load input file. Format appears invalid: PHY Binary File → Do not include the PHY binary when building the image.
Too bad that these tools do not come with such instructions by default.
All these generic error messages are not providing pretty much any useful information for newcomers at least.

I am certain that any such additional information (including multiple scenarios for same or similar error messages) in general would help a lot of people using your instructions.
That goes double if people have different understanding of instructions even though they may sound obvious for most of them.
Not to mention that you would not need to put effort into looking for something that may or may not be found.

Either way, your help is much appreciated!


No, it’s not possible.

@ ALL @tempdrive

The CSME 13+ FWUpdate instructions have been updated/corrected and split into 3 categories (for now, will probably be 2 in the future). Please read them, try to follow them and let me know if you don’t understand something. The categories are these:

CSME v13.0, v13.50, v14.0, v14.5, v15.0 LP & v15.40
CSME v13.30 & v15.0 H
CSME v14.1 H


As for 14.1 H, it turns out the PHY input field does exist in our current (old) FIT version but it is burried within “Flex I/O” tab and appears only when “H series Chipset with RocketLake” SKU is selected. It should have been present elsewhere as well, this is clearly a design oversight by Intel which might have already been corrected at newer FIT 14 releases. In such case, the 14.1 H instructions will be merged into CSME v13.30 & v15.0 H.

hello
@onuracengiz or another
I would like to skip the step of analyzing ME
I put the 2 files to flash here (menus in french because i’m french sorry) :


then i opened powershell in admin
but then what i don’t understand is this :
" run it with the command, FWUpdLcl -f your firmware’s mane.bin "
-what should i write in place of “your firmware”?and mane.bin is attached how?

thank you in advance for your help

your firmware’s name.bin = 9.1.40.1000_1.5MB_PRD_EXTR.bin
So this;
C:\Users\yourname\Downloads\Intel ME System Tools v9.1 r7\FWUpdate\WIN64> FWUpdLcl64 -f your firmware’s name.bin
Will look like this in your case;
F:\Intel ME System Tools v9.1 r7\Intel ME System Tools v9.1 r7\FWUpdate\WIN64>FWUpdLcl64 -f 9.1.40.1000_1.5MB_PRD_EXTR.bin
don’t forget to check the repo if it contains more suitable firmware for you device

@plutomaniac

Thank you for all your efforts.

It does look somewhat better, but remember that you and I already know what is going on, so we can figure out what the instructions stand for.
I only used the word “somewhat”, because I see very basic questions popping up even lately, and for people posting such questions I have no doubt that the instructions will still be confusing.

I am fine with it as it is, but I would like to give you some suggestion (if you do not mind) on how to possibly eliminate even more confusion:

Current instructions:
For example, a hypothetical CSME 13.30 LKF S v10 system must use LKF_S_10.xxx.xxx.xxxx firmware, a hypothetical CSME 15.0 TGP P v12 system must use TGP_P_12.xxx.xxx.xxxx firmware etc

I would write this (and similar) part(s) as following (highlighting my additions):
For example, a hypothetical CSME 13.30 LKF S PHY v10 system must use PHY LKF_S_10.xxx.xxx.xxxx firmware, a hypothetical CSME 15.0 TGP P PHY v12 system must use PHY TGP_P_12.xxx.xxx.xxxx firmware etc

The reason for that is that we are already talking about 2 binary versions (the CSME and PHY in this case), and believe me, it is confusing, and this is pretty much why I wrote you in the first place.
The more explicit you are, the less questions will arise and users are prone to less mistakes as well.

I would also restructure the description for all the CSME versions.
For me (and I am sure for some others as well) having to read different sections for applicable information only adds to the confusion.
What I would do is to separate everything by CSME version and write everything that belongs to that specific CSME version so that all information is available at one place.
I do understand that this would add redundancy and length to the post, however, the other, not relevant descriptions would not need to be reviewed and people would not even notice the redundancy therefore.

If I work with CSME v15 for instance, I only would like to read about v15, unless the steps are exactly the same for other versions as well, but they are not as far as I can tell.
With the instructions available currently, I should review at least the following:
- Warning for CSME v13+
- Warning for CSME v13.30, v14.1 & v15.0 H
- How to use CSME v13.0, v13.50, v14.0, v14.5, v15.0 LP & v15.40 FWUpdate Tool
- How to use CSME v13.30 & v15.0 H FWUpdate Tool

Every time the post gets updated, I would need to review them most likely (and definitely should actually) before performing an update.

So I would just segregate everything by the main CSME version (e.g. 12.x, 13.x, 14.x, 15.x - assuming there is no real difference between the sub versions) like I said.
Should there be actually notable difference for the sub versions, I would just explicitly refer to them under the main version.
Every important information in one place, no need to look around elsewhere and potentially miss out something important.
For the targeted audience it will greatly increase the experience, for you and experienced users it would be just a bit more lengthy post.

Professionals would rarely consult the instructions anyway, whereas for newcomers it would be much more helpful in my opinion.
Not too much additional effort, as the text is mostly already there, you just need to re-organize (copy-paste) it should you go for it.
All these “build yourself” parts add a lot to the complexity of the process already, and if the tools do not cover every scenario, people might end up damaging the system.

Again, for me it is fine as it is right now, especially that you are here to help me out.

Forgot to mention last time, that if you do go for collecting the errors and instructions for them, they should be put in a separate section (e.g. Common Errors).

For your information, I did not perform the update this time.
The image was built, but the FWUpdate tool gave me an error:
Error 328: Full FW Update using same version is not allowed. Include -allowsv in command line to allow it.

I decided not to go for the update as it looks to be a minor change (PMC FW Version 150.1.20.1028 → PMC FW Version 150.1.20.1030) in this case, and I am sure a new CSME binary will be out soon enough anyway.
It would also be nice to see some instructions for such scenarios (where the CSME version is already the latest) and you need to use the -allowsv switch.
Comments here get buried rather too soon with new pages being created.

I personally am rather hesitant when it comes to performing a task first time, as I have no idea what needs to happen and therefore if any minor step is not listed it is difficult to verify whether things are exactly as they should be.
This (listing everything and every possible scenario explicitly) is pretty much key in having the perfect documentation in my opinion.

Thank you for all your hard work once again.


hello, thank you :slight_smile:
in my repo there is my firmware that i put in brackets in blue color : 9.1.40.1000_1.5MB_PRD_EXTR.bin
and at the very bottom of the list there is the most recent one that i put in brackets in blue color : 9.1.45.3000_5MB_PRD_RGN.bin

sreenshot of my repo :


can i flash this last on : 9.1.45.3000_5MB_PRD_RGN.bin ?
if yes, does it change something that he wears the letters :
" PRD_RGN "
instead of :
" PRD_EXTR " ?
the flash method is the same, will it work?

5mb ones are not for you :slight_smile:
You can change their names that does not matter

703F912D-70A8-4792-9D80-F7DC52DED1AB.jpeg

PMC TGP LP C (B) v150.1.20.1031

Capture.PNG



@tempdrive

Thank you very much for your detailed and very helpful suggestions. I thought a lot about what you suggested and a few scenarios passed through my head (i.e. sharing pre-stitched CSME + IUP instead of instructions) but in the end I decided to try to find and solve the “pain points” from the standpoint of someone reading this for the first time. I added some new stuff but I also simplified a lot other stuff.

The goal of section B1 is for the end user to read all the red parts, one after the other, in that order. If something does not apply, it can be skipped. Usually the first sentence indicates the target (i.e. At CSME 12 etc etc). Most things are universal and apply to everything, from ME 2 (2005) to CSME 15 (2021). Only the FWUpdate instructions for CSME 12+ need some more explanation. It is thus neither sustainable nor needed to keep separate sections per (CS)ME generation. It leads to severe duplication (terrible for maintenance/updates) and unnecessary clutter.

One pain point I noticed had to do with CSME 12+ Independent Update Partitions (PMC, PCHC, PHY). There was no explanation as to what they are and why they are required. Thus, I have added a new red section called “Independent Update Partitions (IUP)”. I also noticed that the actual PMC, PCHC and PHY paragraphs needed an actual indicative title and simpler (to the point) instructions on how they are recognized and how they fit with the actual CSME firmware provided at section B2. That extends mainly to the provided examples (i.e. For example, a CSME 15.0 Consumer LP B system must use PMC TGP LP B firmware). Moreover, the actual “How to use FWUpdate Tool” sections for CSME 12+ have an equivalent simplified/cleaner first paragraph.

Another pain point I noticed is that it could be confusing how to use FWUpdate tool. The main instructions did not mention the requirement for IUP merging at CSME 12+, this has been addressed now. Also, the update command has been adjusted to include “-allowsv” which is required when you want to update an IUP only but the main CSME remains the same.

For example, let’s take a difficult case. Your own. Someone with a CSME 15 LP system. At section B1 you are supposed to read in order:

SPI/BIOS Regions (FD/ME/BIOS) → General Knowledge
Engine Firmware Attributes → General Knowledge
Engine Firmware Regions (RGN/EXTR) → General Knowledge
Engine Firmware Configuration (CODE/DATA) → General Knowledge
FWUpdate Update Images (UPD) → General Knowledge
Independent Update Partitions (IUP) → General Knowledge
Engine Security Version Number (SVN) → General Knowledge
Engine Version Control Number (VCN) → General Knowledge
Engine Production Ready Status (PV) → General Knowledge
Power Down Mitigation (PDM) → Skip (not relevant to CSME 15 LP)
Power Management Controller (PMC) IUP → Relevant to CSME 15 LP
Platform Controller Hub Configuration (PCHC) IUP → Relevant to CSME 15 LP
USB Type C Physical (PHY) IUP → Skip (not relevant to CSME 15 LP)
How to update Engine firmware → General Knowledge
How to use FWUpdate Tool at CSME v13.0, v13.50, v14.0, v14.5, v15.0 LP & v15.40 → Relevant to CSME 15 LP
How to use FWUpdate Tool at CSME v13.30 & v15.0 H → Skip (not relevant to CSME 15 LP)
How to use FWUpdate Tool at CSME v14.1 H → Skip (not relevant to CSME 15 LP)
How to use FWUpdate Tool at CSME v12 → Skip (not relevant to CSME 15 LP)

Now, here are two main pain points that I think still exist:

1. How can the user know what (CS)ME firmware they currently have? This is necessary for everything (driver selection, system tool selection, section selection, firmware selection etc).
2. How easily can the user know what CSME combines with that IUP. For example, if someone does not know that CSME 12 is within the Cannon Point (CNP) PCH/SoC, how can the correct (CNP) PMC be chosen?

I think the most important one by far is #1. Even #2 relies on it because one can claim that MEInfo can give all the required info (it has an IUP section). For #2, maybe the dedicated CSME 12+ FWUpdate instructions help though. Now, for #1, I need some way to quickly inform the user of what firmware they’re running. Honestly, maybe a 3rd party tool has to be used for that which uses the Intel AMT SDK to retrieve Engine info via the MEI driver (just like MEInfo does but also platform agnostic). Maybe HWiNFO can help. It has a Motherboard > Intel ME section with various interesting info. Can you run it at your own CSME 15 LP system and show me the output to see how useful it is across multiple hardware generations?

Hi @plutomaniac ,

I think you did manage to make the most out of it at first sight - I am yet to read thoroughly.
Of course, if the the steps are exactly the same for the different versions, they should be merged together.
I already made this remark in my previous post as you may remember, I just had no real oversight of how many of them do belong together based on the previous structure of the post.

I might send you a PM primarily for some visual tweak (readability) related suggestions.
It is fine if you do not plan to make any of the proposed modifications, and therefore I do not wish to spam the comment section with them.
I am already very happy with how the content turned out.

One a side note, I have noticed that the v15 tools do not have the binaries (FWUpdLcl64 and MEInfoWin64) you provided me the last time.
Should they (and their 32-bits counterparts I suppose) not be included as soon as possible?
I am not sure what impact this might have as I have been using the files attached by you for the first update.


The only thing that will be merged in the future is CSME v14.1 H FWUpdate instructions within CSME v13.30 & v15.0 H ones. We just need to find a newer FIT v14 probably. Everything else is unique.


You can post any suggestions here, no problem. It’s 100% relevant to the topic and thread structure. It might also urge someone else to potentially pitch it and suggest something. As for the proposed modifications, I implemented almost all of them. The main omission is the separation into firmware generations but I explained why that is not really possible or needed. You’re the first one to make actual helpful suggestions in such a manner in those past years so I appreciate it and try to follow through.


That has to do with time management. It is actually very time consuming to keep everything updated in real time and don’t forget there is also a lot of research that has to happen at the same time to produce all this info, explanations, ME Analyzer updates etc. Thus, I tend to update the more important things in real time (MEA, FW, Drivers) and the rest (firmware repository, system tools of lesser importance etc) less often. To be honest, from the System Tools, the most important ones (that receive more meaningful/impactful) updates are Flash Image Tool and maybe Manifest Extension Utility. The rest don’t usually matter all that much to be fully up to date right away. It’s not worth my time to prepare, rename, archive, upload, adjust thread etc every time one MEInfo WIN32 or something gets updated. But will certainly update it in batches later down the line. I always do.