Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The old method for loading microcode was to use the microcode_ctl tool in user space to decode and load the microcode via a kernel driver (or in OpenXT's case via a kernel driver that used a hypercall to get Xen to do it). Intel stopped supporting microcode_ctl in 2008 and this method and package are considered obsolete. Xen has the ability to load the microcode and apply it via GRUB modules and a command line argument.  First the iucode-tool must be used to decode and convert the microcode into a binary format that is consumable by a Linux kernel and Xen (note Xen actually contains the Linux code to update Intel microcode). Do the following:

$ sudo iucode-tool -w intel-microcode.bin microcode.dat

Copy the .bin file to the /boot or similar directory on the target system running Xen (may or may not be OpenXT). Add a module line to the grub.conf:

module /boot/intel-microcode.bin

Finally update the Xen command line to include:

ucode=<index>

The index is a zero based index indicating the location of the microcode file in the list. Negative numbers mean start from the end of the list and count backwards (e.g. -1 is the last module). See the Xen command line documentation for more details. On a reboot, the microcode will be loaded by Xen (e.g. on the Dell E7440 above as was expected):

(XEN) microcode: collect_cpu_info : sig=0x40651, pf=0x40, rev=0x1c
(XEN) microcode: CPU2 found a matching microcode update with version 0x1f (current=0x1c)
(XEN) microcode: CPU2 updated from revision 0x1c to 0x1f, date = 2016-04-01