Microcode
Contents
What is a Microcode update
Processor microcode is akin to processor firmware. Linux is unique in that the kernel is able to update the processor's firmware without the need to update it via a BIOS update. From the Intel's website:
"The microcode data file contains the latest microcode definitions for all Intel processors. Intel releases microcode updates to correct processor behavior as documented in the respective processor specification updates. While the regular approach to getting this microcode update is via a BIOS upgrade, Intel realizes that this can be an administrative hassle. The Linux Operating System and VMware ESX products have a mechanism to update the microcode after booting. For example, this file will be used by the operating system mechanism if the file is placed in the /etc/firmware directory of the Linux system."
Updating microcode
Install either intel-ucode OR amd-ucode, depending on your processor vendor, and add microcode
to the MODULES array in Template:Filename
Reboot your machine and then execute:
# dmesg | grep microcode
The output of this command should indicate the current version of your processor's microcode and whether any additional update was applied to it.
How to tell if a microcode update is needed
The best way to tell is to download and run the microcode update from [extra]. Then inspect dmesg, if it reports that an update was applied, the microcode in the BIOS of your motherboard predates the one in either intel-ucode or amd-ucode. Users should therefore use the microcode update!
Examples, note that in each case, the BIOS on the motherboard is the latest version from each respective vendor:
Intel X3360:
microcode: CPU0 sig=0x10677, pf=0x10, revision=0x705 microcode: CPU1 sig=0x10677, pf=0x10, revision=0x705 microcode: CPU2 sig=0x10677, pf=0x10, revision=0x705 microcode: CPU3 sig=0x10677, pf=0x10, revision=0x705 microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba microcode: CPU0 updated to revision 0x70a, date = 2010-09-29 microcode: CPU1 updated to revision 0x70a, date = 2010-09-29 microcode: CPU2 updated to revision 0x70a, date = 2010-09-29 microcode: CPU3 updated to revision 0x70a, date = 2010-09-29
Intel E5200:
microcode: CPU0 sig=0x1067a, pf=0x1, revision=0xa07 microcode: CPU1 sig=0x1067a, pf=0x1, revision=0xa07 microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28 microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28
Intel Atom 330:
microcode: CPU0 sig=0x106c2, pf=0x8, revision=0x20d microcode: CPU1 sig=0x106c2, pf=0x8, revision=0x20d microcode: CPU2 sig=0x106c2, pf=0x8, revision=0x20d microcode: CPU3 sig=0x106c2, pf=0x8, revision=0x20d microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba microcode: CPU0 updated to revision 0x219, date = 2009-04-10 microcode: CPU1 updated to revision 0x219, date = 2009-04-10 microcode: CPU2 updated to revision 0x219, date = 2009-04-10 microcode: CPU3 updated to revision 0x219, date = 2009-04-10
It is believed that the date returned corresponds to the date that Intel implemented a microcode update. This date does not correspond to the version of the the microcode database included in the microcode_ctl package!
Which CPUs accept microcode updates
According to Intel's download center, the following CPUs support microcode updates:
- Intel® Celeron® Processor Family
- Mobile Intel® Celeron® Processors
- Intel® Pentium® 4 Processors
- Intel® Xeon® Processor
- Mobile Intel® Pentium® 4 Processors - M
- Intel® Pentium® M Processor
- Intel® Pentium® 4 Processor Extreme Edition
- Intel® Pentium® Processor Extreme Edition
- Intel® Pentium® D Processor
- Intel® Core™ Duo Processor
- Intel® Core™ Solo processor
- Intel® Xeon® Processor 5000 Sequence
- Intel® Core™2 Duo Desktop Processor
- Intel® Core™2 Extreme Processor
- Intel® Core™2 Duo Mobile Processor
- Intel® Xeon® Processor 7000 Sequence
- Intel® Xeon® Processor 3000 Sequence
- Intel® Core™2 Quad Processor
- Intel® Pentium® Processor for Desktop
- Intel® Pentium® Processor for Mobile
- Intel® Core™2 Solo Processor
- Intel® Core™2 Extreme Mobile Processor
- Intel® Atom™ Processor
- Intel® Core™2 Quad Mobile Processor
- Intel® Core™ i7 Processor
- Intel® Core™ i7 Processor Extreme Edition
- Intel® Core™ i5 Processor
- Intel® Core™ i7 Mobile Processor
- Intel® Core™ i7 Mobile Processor Extreme Edition
- Intel® Core™ i3 Mobile Processor
- Intel® Core™ i5 Mobile Processor
- Intel® Core™ i3 Desktop Processor
- Intel® Xeon® Processor 6000 Sequence