Intel, AMD, VIA & Freescale CPU Microcode Repositories Discussion

Which microcode is latest for 206D2h (SNB-E ES)?

!New_cpu50653_plat97_ver01000144_2018-04-20_PRD_5F6D2EC3.bin

!New_cpu50653_plat97_ver01000144_2018-04-20_PRD_5F6D2EC3.zip (30.2 KB)

Linux Processor Microcode Data File
Version: 20180807 Date: 8/7/2018
https://downloadcenter.intel.com/download/28039/

I looked through the commit history and I’m interested in CPUID 306C3 MCU 0x22 last posted 20171117 before the Spectre/Meltdown stuff.

Downloaded the linux .tgz and unpacked it, ran it through Intel Microcode.dat Converter and I can’t make sense of the output files.

I can see that 06-3c-03 is my input file that I need as .bin for UBU but no idea on the output file as the name is 000000010000002201272017000306c3ad518a4e0000000100000032000057d0 and it’s 66kb in size whereas the latest .bin from MCEDB (0x25) is only 22kb

What am I doing wrong?

I don’t understand what you are doing. If you want to convert dat to binary, use MCE with -cont parameter. The 23KB (0x5C00) for cpu306C3_plat32 is correct.

That’s exactly what I am trying to do!

It’s not working though :frowning:

Untitled.png

Obviously. That is not a .dat text file, it’s binary. No conversion is needed.

Hi, I have an old processor. Here is an info obtained by using cat /proc/cpuinfo:

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
 

processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 47
model name : AMD Athlon(tm) 64 Processor 3800+
stepping : 0
cpu MHz : 1000.000
cache size : 512 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow rep_good nopl pni lahf_lm 3dnowprefetch vmmcall
bogomips : 2009.78
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc
 
 


If linux program cpuinfo2cpuid is correct CPUID for this processor is 20FF0. I did not find any microcode for this CPUID in the database. I extracted CPUCODE.BIN from BIOS file and feeded it to MCE.EXE. Here are the results:
1
2
3
4
5
6
7
 

# CPUID Revision Date Size Offset Last
1 00000F48 00000039 2004-02-06 0x3C0 0x0 No
2 00000F4A 0000003A 2004-02-06 0x3C0 0x800 No
3 00010F50 00000041 2004-02-25 0x3C0 0x1000 Yes
4 00020F10 0000004D 2005-04-28 0x3C0 0x1800 Yes
 
 


My questions would be:

1) Does this mean that AMD never released an updated microcode for my particular CPU?
2) Is there any microcode with different CPUID which could be compatible with my CPU?

Hi,

AMD tends to use one microcode CPUID for multiple actual/reported CPUIDs. The logical thing is that a microcode with a different CPUID is being loaded so you need to update that, if required. What microcode has the system loaded currently?

That’s the thing, I cant find any indication of loaded microcode. I installed amd64-microcode Debian package and used dmesg | grep -i microcode command but nothing relevant showed up.

I don’t know how you can do that in Linux. But at Windows you can use the registry or 3rd party tools such as HWInfo, AIDA64 etc to view info on the loaded microcode.

I see that two microcodes are missing on the github page (for me):

106E3 platform 13
106E0 platform 13

Capture.PNG



I don’t know which others actually have an update besides the first 3 which show up as outdated.

They are not Production. Read the github Readme.

cpu906EC_plat22_ver0000009E_2018-08-26_PRD_1813F262

cpu906EC_plat22_ver0000009E_2018-08-26_PRD_1813F262.zip (96.2 KB)


Nice to find ”C 837 in the repository, thanks! If others are interested, the script checking for the Spectre status on Linux tells me 3a as open still and a warning about this ”C causes stability problems but it runs fine here on a Q2900 ASRock.

I’ve found some interesting things.
I updated my Windows 10 to 17763.1 and got stuck at Boot Logo .
After delete mcupdate_GenuineIntel.dll I can boot to system .
So I have a test .
My CPU is QN8J , CPUID = 906EA , my mothetboard is Gigabyte B150M D3H DDR3 .
If my BIOS have uCode 6A/70/74/7C , Win10 won’t let me boot . But if I delete the mcupdate dll , it can boot .
If my BIOS have uCode 84/96 , I can boot with the mcupdate dll , and use AIDA64 checked , the uCode version is 96 .
I also tried InSpectre to disabled both protection and nothing happens , I still cannot boot with old uCode in BIOS and new uCode in system .

For test purpose , I reinstall 17134 , and I can not boot with 4 version of mcupdate_GenuineIntel.dll ( 17134.1 17134.48 17134.253 17314.318 ).
I must delete it to boot with 6A uCode in BIOS .

Sounds like Intel/MS got together to stop microcode changes by end user, of course they would say for security reasons, but you know some of that is to stop hacks we do

It is likely either a bug (and it is not the first time something like this happened, either), or downgrade of microcode past one of the security level barriers.

Intel has no reason at all to get in the way of overclocking “K” parts as long as it is done according to its specifications for the platform, and they care not if you mess with the microcode revision as long as it is not going to look like “downgrading to avoid a security fix”. And Microsoft doesn’t care either way.

Any one know when next update 306c3?

!New_cpu906EB_plat02_ver000000A4_2018-10-24_PRD_EDDD5F72
!New_cpu906EC_plat22_ver000000A2_2018-09-29_PRD_FCAF004B

!New_cpu906EB_plat02_ver000000A4_2018-10-24_PRD_EDDD5F72.zip (97.2 KB)

!New_cpu906EC_plat22_ver000000A2_2018-09-29_PRD_FCAF004B.zip (96.2 KB)