[Business request] Intel NUC microcode update

I have troubles flashing modified NUC BIOS.

1. I found latest microcode (matching cpu signature from original BIOS) in this repository:
https://github.com/platomav/CPUMicrocodes/tree/master/Intel
2. I opened original BIOS with UefiTool NE 0.51

3.png


(this one properly reads sections) and I found ucode sections - after that I know where ucodes in original BIOS begins.
3. I opened original BIOS with UefiTool 0.28 and exported entire section containing ucodes.

1.png


4. Using hex editor I replaced 2 ucodes and verified does it properly fit defined space - it is ok.
5. In UefiTool 0.28 I replaced section with modified one, saved.
6. Again opened in UefiTool NE 0.51 to verify modification. All ucodes are updated, revision number is proper and checksum of ucode also valid.

4.png



But when I try to flash that BIOS I’m getting error:
"Incompatible BIOS version, Update aborted."

I guessing there is some other checksum verifying BIOS integrity, but I don’t know where should I search it.
Or maybe it is related to UefiTool rebuild actions - maybe it breaks something?

2.png



I have already asked Intel for help… but I don’t know will they help me in reasonable time. That is why I wanted to do it myself.

EDIT:
I have edited title to mention I’m willing to pay for help.

Ur issue has nothing to do with mcodes… its bios security issues as always.
As usually in Intel HW, the problem is always the flash.
Search the forum for NUC users posts.
U may need to use Intel FPT tools (Part of Intel ME tools of the ME FW version used) to dump, edit and then flash it back.
Intel HW boards/bios never were easy to flash mod files, some last resources is the use of a SPI Flash programmer.
Good luck.

EDIT: U cant use a different version from wot ur system ME Engine is… drop ur bios dump in ME Analyzer and it will show u., Then use the correct ME package tools (FPT)
I cant identify nothing by ur previous photos, dont know wot NUC u have and wot bios ur working on.

I have tried multiple versions of FPT
Intel (Converged Security) Management Engine: Drivers, Firmware and Tools (C2. (CS)ME System Tools section)
https://mega.nz/folder/qdVAyDSB#FLCPaDVIsPYiy2TAUjD7RQ

from 8, 9, 10, 14, 15
for <=10 I’m getting error “Cannot be run on current platform” (Win10)
for >10 I’m getting error "39: PCH is not supported, 620: Unknown hardware platform"

The same error when trying on linux64 version. (only provider with >10 versions)

I can’t run FreeDOS as NUC works only in UEFI
I can’t enable legacy boot (UEFI boot is enabled and can’t be disabled)

PS. I have struggling with it for last 8 hours… shitty :confused:

Post a screenshot of third (Mainboard) tab of CPU-Z.

@DeathBringer

mobo.jpg

Download CSTXE System Tools v4.
Run TXEInfo in command line with administrative rights and show results.

@DeathBringer
I noticed one driver was missing (this Windows installation is temporary and for testing purpose only, I work on linux in general).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 
Intel(R) TXEInfo Version: 4.0.26.1337
Copyright(C) 2005 - 2020, Intel Corporation. All rights reserved.
 

 
Intel(R) TXE code versions:
 
BIOS Version JYGLKCPX.86A.0062.2021.0419.1701
Vendor ID 8086
PCH Version 3
FW Version 4.0.30.1386
Security Version (SVN) 2
TXEI Driver Version 4.0.0.1062
Number of IFWI Modules 3
IFWI Module Name/Version
FTPR.man Version: 4.0.30.1386
PMCP.man Version: 0.1.0.0
SMIP.man Version: 4.0.30.1392
 
FW Capabilities 0x31109040
 
Intel(R) Capability Licensing Service - PRESENT/ENABLED
Protect Audio Video Path - PRESENT/ENABLED
Intel(R) Dynamic Application Loader - PRESENT/ENABLED
Intel(R) Platform Trust Technology - PRESENT/ENABLED
Persistent RTC and Memory - PRESENT/ENABLED
 
Last TXE reset reason Power up
Host Read Access to TXE Disabled
Host Write Access to TXE Disabled
Host Read Access to EC Disabled
Host Write Access to EC Disabled
SPI Flash ID 1 C22538
SPI Flash ID 2 Not Available
BIOS boot State Post Boot
Re-key needed False
Capability Licensing Service Enabled
OEM Tag 0x00000000
Slot 1 Board Manufacturer 0x00000000
Slot 2 System Assembler 0x00000000
Slot 3 Reserved 0x00000000
EPID Group ID 0x15A9
Keybox Not Provisioned
Crypto HW Support Enabled
Replay Protection Not Supported
Replay Protection Bind Counter 0
Storage Device Type SPI
Replay Protection Bind Status Pre-bind
Replay Protection Rebind Not Supported
Replay Protection Max Rebind 0
Intel(R) PTT Supported Yes
Intel(R) PTT initial power-up state Enabled
PAVP Supported Yes
Integrated Sensor Hub Initial Power State Disabled
End of Manufacturing Enable Yes
Post Manufacturing NVAR Config Enabled No
Protect BIOS Environment Enabled
CPU Debugging Disabled
BSP Initialization Disabled
Measured Boot Enabled
Verified Boot Enabled
OEM Public Key Hash FPF 327FDD65E3F2143B14E38CAC970EC719FCA3C563DBF140B202F9192CEC4C6DB9
OEM Public Key Hash UEP 327FDD65E3F2143B14E38CAC970EC719FCA3C563DBF140B202F9192CEC4C6DB9
OEM Public Key Hash TXE FW 327FDD65E3F2143B14E38CAC970EC719FCA3C563DBF140B202F9192CEC4C6DB9
 
FPF UEP TXE FW
--- --- ------
Boot Guard Profile 2 - VM 2 - VM 2 - VM
Key Manifest ID 0x1 0x1 0x1
PTT Enabled Enabled Enabled
UFS Boot Source Disabled Disabled Disabled
EMMC Boot Source Disabled Disabled Disabled
SPI Boot Source Enabled Enabled Enabled
LED Indication Disabled Disabled Disabled
DnX Disabled Disabled Disabled
OEM ID 0x0 0x0 0x0
OEM Platform ID 0x0 0x0 0x0
SOC Config Lock Done Not set Done
RPMB Bind Counter 0x0 0x0 0x0
RPMB Migration Done No Not set No
Persistent PRTC Backup Power Exists Exists Exists
Allow OEM Signing of DAL Applets No No No
PTT Lockout Override Counter 0x0 0x0 0x0
EK Revoke State Not Revoked Not Revoked Not Revoked
CSE SVN 1 1 1
OEM Key Manifest SVN 0 0 0
Ucode SVN 0 0 0
 

I also tried now with FPT - dump successful but
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
PS C:\Users\temp\Desktop\CSTXE System Tools v4 r6\Flash Programming Tool\WIN64> .\FPTW64.exe -bios -d bios.rom
 
Intel (R) Flash Programming Tool. Version: 4.0.26.1337
Copyright (c) 2007 - 2020, Intel Corporation. All rights reserved.
Reading HSFSTS register... Flash Descriptor: Valid
 
--- Flash Devices Found ---
MX25U12835F ID:0xC22538 Size: 16384KB (131072Kb)
 

- Reading Flash [0x0EFF000] 15352KB of 15352KB - 100 percent complete.
Writing flash contents to file "bios.rom"...
 
Memory Dump Complete
FPT Operation Successful.
PS C:\Users\temp\Desktop\CSTXE System Tools v4 r6\Flash Programming Tool\WIN64> .\FPTW64.exe -bios -f bios-mod.rom
 
Intel (R) Flash Programming Tool. Version: 4.0.26.1337
Copyright (c) 2007 - 2020, Intel Corporation. All rights reserved.
Reading HSFSTS register... Flash Descriptor: Valid
 
--- Flash Devices Found ---
MX25U12835F ID:0xC22538 Size: 16384KB (131072Kb)
 

Error 559: EOM prevents IFWI Prepare to Update from completing
FPT Operation Failed.
 

Ouu and note I added "-bios" flag to FPT cuz without it I got error when dumping
1
 
Error 318: The host CPU does not have read access to the target flash area. To enable read access for this operation you must modify the descriptor settings to give host access to this region.
 

EDIT by Fernando: I have put the codes into "spoilers" (to save space and for better readability).

Run:
FPTW64.exe -desc -d desc.rom
And give me files desc.rom and bios.rom

@DeathBringer
https://mega.nz/folder/8fBlSYRB#9VkYFXOPRSUGja4838EaIg

OK. Please run TXEInfo with key -verbose

@DeathBringer :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 
Intel(R) TXEInfo Version: 4.0.26.1337
Copyright(C) 2005 - 2020, Intel Corporation. All rights reserved.
 

 

Windows OS Version : 10.0
 
FW Status Register1: 0x80000245
FW Status Register2: 0x09F40400
FW Status Register3: 0x30A6060E
FW Status Register4: 0x00080000
FW Status Register5: 0x00000000
FW Status Register6: 0x40000000
 
CurrentState: Normal
ManufacturingMode: Disabled
FlashPartition: Valid
OperationalState: CM0 with UMA
InitComplete: Complete
BUPLoadState: Success
ErrorCode: No Error
ModeOfOperation: Normal
SPI Flash Log: Not Present
Phase: ROM/Preboot
TXE File System Corrupted: No
PhaseStatus: FUSES_PULLED
FPF and TXE Config Status: Committed
FW Capabilities value is 0x31109040
Feature enablement is 0x31109040
Platform type is 0x73FF0321
Intel(R) TXE code versions:
 
Table Type 255 ( 0x FF ) found, size of 0 (0x 00 ) bytes
BIOS Version JYGLKCPX.86A.0062.2021.0419.1701
Vendor ID 8086
PCH Version 3
FW Version 4.0.30.1386
Security Version (SVN) 2
TXEI Driver Version 4.0.0.1062
Number of IFWI Modules 3
IFWI Module Name/Version
FTPR.man Version: 4.0.30.1386
PMCP.man Version: 0.1.0.0
SMIP.man Version: 4.0.30.1392
 
FW Capabilities 0x31109040
 
Intel(R) Capability Licensing Service - PRESENT/ENABLED
Protect Audio Video Path - PRESENT/ENABLED
Intel(R) Dynamic Application Loader - PRESENT/ENABLED
Service Advertisement & Discovery - NOT PRESENT
Intel(R) Platform Trust Technology - PRESENT/ENABLED
Persistent RTC and Memory - PRESENT/ENABLED
 
Last TXE reset reason Power up
Get flash master region access status...done
Host Read Access to TXE Disabled
Host Write Access to TXE Disabled
Get EC region access status...done
Host Read Access to EC Disabled
Host Write Access to EC Disabled
Protected Range Register Base #0 0x0
Protected Range Register Limit #0 0x0
Protected Range Register Base #1 0x0
Protected Range Register Limit #1 0x0
Protected Range Register Base #2 0x0
Protected Range Register Limit #2 0x0
Protected Range Register Base #3 0x0
Protected Range Register Limit #3 0x0
Protected Range Register Base #4 0x0
Protected Range Register Limit #4 0x0
SPI Flash ID 1 C22538
SPI Flash ID 2 Not Available
BIOS boot State Post Boot
Re-key needed False
Capability Licensing Service Enabled
OEM Tag 0x00000000
Slot 1 Board Manufacturer 0x00000000
Slot 2 System Assembler 0x00000000
Slot 3 Reserved 0x00000000
EPID Group ID 0x15A9
Keybox Not Provisioned
Crypto HW Support Enabled
Replay Protection Not Supported
Replay Protection Bind Counter 0
Storage Device Type SPI
Replay Protection Bind Status Pre-bind
Replay Protection Rebind Not Supported
Replay Protection Max Rebind 0
Intel(R) PTT Supported Yes
Intel(R) PTT initial power-up state Enabled
PAVP Supported Yes
Integrated Sensor Hub Initial Power State Disabled
End of Manufacturing Enable Yes
Post Manufacturing NVAR Config Enabled No
Protect BIOS Environment Enabled
CPU Debugging Disabled
BSP Initialization Disabled
Measured Boot Enabled
Verified Boot Enabled
OEM Public Key Hash FPF 327FDD65E3F2143B14E38CAC970EC719FCA3C563DBF140B202F9192CEC4C6DB9
OEM Public Key Hash UEP 327FDD65E3F2143B14E38CAC970EC719FCA3C563DBF140B202F9192CEC4C6DB9
OEM Public Key Hash TXE FW 327FDD65E3F2143B14E38CAC970EC719FCA3C563DBF140B202F9192CEC4C6DB9
 
FPF UEP TXE FW
--- --- ------
Boot Guard Profile 2 - VM 2 - VM 2 - VM
Key Manifest ID 0x1 0x1 0x1
PTT Enabled Enabled Enabled
UFS Boot Source Disabled Disabled Disabled
EMMC Boot Source Disabled Disabled Disabled
SPI Boot Source Enabled Enabled Enabled
LED Indication Disabled Disabled Disabled
DnX Disabled Disabled Disabled
OEM ID 0x0 0x0 0x0
OEM Platform ID 0x0 0x0 0x0
SOC Config Lock Done FW returned status: 0x5
Not set Done
RPMB Bind Counter 0x0 0x0 0x0
RPMB Migration Done No FW returned status: 0x5
Not set No
Persistent PRTC Backup Power Exists Exists Exists
Allow OEM Signing of DAL Applets No No No
PTT Lockout Override Counter 0x0 0x0 0x0
EK Revoke State Not Revoked Not Revoked Not Revoked
CSE SVN 1 1 1
OEM Key Manifest SVN 0 0 0
Ucode SVN 0 0 0
 

Run:
FPTW64.exe -a 0x7F000 -l 0x26000 -d ucode.rom
And give me a file ucode.rom

@DeathBringer Attached on mega storage.
Could you describe your actions a little?

I’ve used dumped descriptor and BIOS region to make a full firmware with empty other regions.
Then I’ve used ME Analyzer:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
----------------------------------------------------------------------------------
| Boot Partition Descriptor Table |
----------------------------------------------------------------------------------
| Name | Type | Partition | Start | Size | End | ID | Empty |
----------------------------------------------------------------------------------
| DLMP | 09 | Primary | | | | 0000 | True |
----------------------------------------------------------------------------------
| UEPB | 10 | Primary | 0x001200 | 0x000010 | 0x001210 | 0000 | False |
----------------------------------------------------------------------------------
| S-BPDT | 05 | Primary | 0x1FD000 | 0x101000 | 0x2FE000 | 0000 | False |
----------------------------------------------------------------------------------
| NFTP | 07 | Secondary | 0x1FE000 | 0x100000 | 0x2FE000 | 0000 | False |
----------------------------------------------------------------------------------
| RBEP | 01 | Primary | 0x004000 | 0x00B000 | 0x00F000 | 0000 | False |
----------------------------------------------------------------------------------
| UFS PHY | 12 | Primary | | | | 0000 | True |
----------------------------------------------------------------------------------
| UFS GPP LUN | 13 | Primary | | | | 0000 | True |
----------------------------------------------------------------------------------
| FTPR | 02 | Primary | 0x01E000 | 0x061000 | 0x07F000 | 0000 | False |
----------------------------------------------------------------------------------
| UEP | 17 | Primary | 0x001210 | 0x000108 | 0x001318 | 0000 | False |
----------------------------------------------------------------------------------
| SMIP | 00 | Primary | 0x002000 | 0x002000 | 0x004000 | 0000 | False |
----------------------------------------------------------------------------------
| PMCP | 14 | Primary | 0x00F000 | 0x00F000 | 0x01E000 | 0001 | False |
----------------------------------------------------------------------------------
| UCOD | 03 | Primary | 0x07F000 | 0x026000 | 0x0A5000 | 0000 | False |
----------------------------------------------------------------------------------
| IBBP | 04 | Primary | 0x0A5000 | 0x156000 | 0x1FB000 | 0000 | False |
----------------------------------------------------------------------------------
| UTOK | 11 | Primary | 0x1FB000 | 0x002000 | 0x1FD000 | 0000 | True |
----------------------------------------------------------------------------------
 
Then you read CPD with name UCOD

OK. Now try to flash it back.
FPTW64.exe -a 0x7F000 -l 0x26000 -f ucode.rom
Show results.

@DeathBringer understood :slight_smile:

Unfortunately it still doesn’t allow to flash.

1
2
3
4
5
6
7
8
9
10
11
12
 
PS C:\Users\temp\Desktop\CSTXE System Tools v4 r6\Flash Programming Tool\WIN64> .\FPTW64.exe -a 0x7F000 -l 0x26000 -f ucode.rom
 
Intel (R) Flash Programming Tool. Version: 4.0.26.1337
Copyright (c) 2007 - 2020, Intel Corporation. All rights reserved.
Reading HSFSTS register... Flash Descriptor: Valid
 
--- Flash Devices Found ---
MX25U12835F ID:0xC22538 Size: 16384KB (131072Kb)
 

Error 559: EOM prevents IFWI Prepare to Update from completing
FPT Operation Failed.
 

@l00k
So you need to find the solution for this error or use a hardware programmer.

Or simply open a support ticket @intel.com and request for a new bios with updated microcode
My experience with intel.com support are very good, most of the time they supply a updated BIOS within a few weeks

@RvdH Yeap I already did it.
"within a few weeks" that is a lot :confused:

@DeathBringer
Using hardware programmer requires soldering?

@l00k
You can try to use soic8 test clip.



Why the urgency?

But if you can not wait a bit, use a SOIC8 clip and programmer and risk bricking your NUC