WTF? Can this be true??
The microcode updater program I am working on shows this with the -i(dentify) option:
Code:
# cpupdate -i
Found CPU(s) from Intel
/dev/cpuctl0 identification successful!
Processor Core: 0
ProcessorType: 00
ExtFamily: 00 ExtModel: 01
IntFamily: 06 IntModel: 0A Stepping: 05
-> Family: 06 Model: 1A
Flags: 2
-> Family: 06 Model: 1A uCodeRev: 001B
/dev/cpuctl1 identification successful!
<snipped identical output for the other cores>
#
This is confirmed by dmesg:
Code:
CPU: Intel(R) Xeon(R) CPU W3520 @ 2.67GHz (2666.72-MHz K8-class CPU)
Origin="GenuineIntel" Id=0x106a5 Family=0x6 Model=0x1a Stepping=5
And now, I look at the microcode update file supplied by Intel in the Jan 8 update release:
Code:
# cpupdate -f /etc/microcode-20180108/intel-ucode/06-1a-05
Update file properties:
Header version 1 (0x1)
Revision 25 (0x19)
Date 06212013
File is to be used for processors with these stats:
ProcessorType: 00
ExtFamily: 00 ExtModel: 01
IntFamily: 06 IntModel: 0A Stepping: 05
-> Family: 06 Model: 1A
Loader revision required to upload this microcode: 1 (0x1)
Processor Flags 3 (0x00000003)
Data size 10192 (0x27d0)
Has no extended header.
#
Can this be real?
Look at the date - Jun 21, 2013.
Look at the microcode revision: 0x19.
It is
lower than the built-in version of the processor...
Am I hallucinating?
The microcode update file format is described in detail in section 9.11.1 (pages 9-28 to 9-31) of the
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A.
I believe I programmed strictly after the Intel instructions.
Further examinations of other microcode files from that release seem no less irritating:
Code:
# cpupdate -f /etc/microcode-20180108/intel-ucode/06-17-06
Update file properties:
Header version 1 (0x1)
Revision 1551 (0x60f)
Date 09292010
File is to be used for processors with these stats:
ProcessorType: 00
ExtFamily: 00 ExtModel: 01
IntFamily: 06 IntModel: 07 Stepping: 06
-> Family: 06 Model: 17
Loader revision required to upload this microcode: 1 (0x1)
Processor Flags 1 (0x00000001)
Data size 4048 (0xfd0)
Has no extended header.
#
This release seems even older. Sep 29, 2010.
Examining more of the files gives me the impression most of them seem to be quite old microcode releases, some around 10 yrs old or more...
I wonder what is going on... so let's examine the biggest files, assuming these are for the most modern, most complex processors of which still some are in production use.
Code:
# cpupdate -f /etc/microcode-20180108/intel-ucode/06-4e-03
Update file properties:
Header version 1 (0x1)
Revision 194 (0xc2)
Date 11162017
File is to be used for processors with these stats:
ProcessorType: 00
ExtFamily: 00 ExtModel: 04
IntFamily: 06 IntModel: 0E Stepping: 03
-> Family: 06 Model: 4E
Loader revision required to upload this microcode: 1 (0x1)
Processor Flags 192 (0x000000c0)
Data size 99280 (0x183d0)
Has no extended header.
#
The biggest file is from Nov 17, 2017. Quite recent, but still from last year.
After examining a few of the biggest files which all were from Nov 2017, I finally managed to find a file updated this year, which is more recent than Intels' last microcode release. Which was on Nov 17, 2017:
Code:
# cpupdate -f /etc/microcode-20180108/intel-ucode/06-9e-0b
Update file properties:
Header version 1 (0x1)
Revision 128 (0x80)
Date 01042018
File is to be used for processors with these stats:
ProcessorType: 00
ExtFamily: 00 ExtModel: 09
IntFamily: 06 IntModel: 0E Stepping: 0B
-> Family: 06 Model: 9E
Loader revision required to upload this microcode: 1 (0x1)
Processor Flags 2 (0x00000002)
Data size 98256 (0x17fd0)
Has no extended header.
#
Yeah... Jan 4, 2018. At least one file.
I have to admit, I did
not at all expect to find out such when attempting to test the microcode uploader.
Code:
# cpupdate
Usage: cpupdate [-i] | [-h] | -f <microcodefile> | -u <datadir> [-q]
-i show processor information
-f show version information of microcode file
-u update microcode using microcode files in <datadir>
-q quiet mode
-h show this help
#
I can still not believe what I see.
I will add another function to give a neat output of all microcode file stats, each a line.
So one can see at a glimpse what internal date and revision every microcode file has.
After that I will put the program onto Github. This will be today afternoon/evening (German time), as it is now 5 a.m. here and I am tired as hell.
So everybody can check out whether I made some mistake, or something other is foul.
Did Intel actually release updated microcodes?
Or did they only pretend to do so, hoping that nobody actually will take a deep look into the microcode files and notice the con art?
If it's true what I suspect, I guess Intel will have to explain some more things.