diff options
Diffstat (limited to 'system/intel-microcode/README')
-rw-r--r-- | system/intel-microcode/README | 63 |
1 files changed, 36 insertions, 27 deletions
diff --git a/system/intel-microcode/README b/system/intel-microcode/README index 9eb300f9c0..549d53c700 100644 --- a/system/intel-microcode/README +++ b/system/intel-microcode/README @@ -1,36 +1,45 @@ -Linux Processor Microcode Data File - -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. +CPU microcode is a mechanism to correct certain errata in existing +systems. The normal preferred method to apply microcode updates is +using the system BIOS, but for a subset of Intel processors this +can be done at runtime using the operating system. This package +contains those processors that support OS loading of microcode +updates. + +Linux can update processor microcode very early in the kernel boot +sequence. In situations when the BIOS update isn't available, early +loading is the next best alternative to updating processor microcode. +Microcode states are reset on a power reset, hence it is required to +be updated every time during the boot process. + +Loading microcode using the initrd method is recommended so that +the microcode is loaded at the earliest time for best coverage. +Systems that cannot tolerate downtime may use the late reload +method to update a running system without a reboot. This SlackBuild repackages the official Intel microcode archive. -The "microcode.dat" file is placed under /lib/firmware/microcode.dat and can be -later uploaded using microcode_ctl utility (available from SlackBuilds.org). -This approach (microcode.dat + microcode_ctl) is kept for compatibility reasons -and should be avoided whenever possible. * Use the solution described below. * +NOTES: +1. microcode_ctl utility is no longer supported. + +2. Microcodes with the file names as expected by the Linux kernel + firmware loader are placed under /lib/firmware/intel-ucode + directory. The correct microcode is uploaded when the Intel + microcode driver kernel's module is loaded. -If the iucode_tool (available from SlackBuilds.org) is installed on the system, -this SlackBuild will: +3. An early initramfs archive: /boot/intel-ucode.cpio is created. + This archive can be prepended to the regular initramfs to allow + the kernel to update the processor microcode early during boot. -1) write the microcodes with the file names as expected by the Linux kernel - firmware loader and place them under /lib/firmware/intel-ucode directory. - The correct microcode is uploaded when the Intel microcode kernel's module - is loaded. + For example, on systems using syslinux, this can be done with + a config line that reads something like that: -2) write the microcodes to an early initramfs archive: /boot/intel-ucode.cpio - This archive should be prepended to the regular initramfs to allow - the kernel to update processor microcode very early during system boot. + INITRD /boot/intel-ucode.cpio,/boot/initrd-generic.gz -To get started with early microcode loading, please have a look at: -1) https://www.kernel.org/doc/Documentation/x86/early-microcode.txt -2) iucode_tool man page, especially about --write-earlyfw option. +4. Microcodes for some processors require special attention. To find + out if you're affected, read the release notes for the particular + microcode release. The release notes file (releasenote) can be + found in the microcode tarball file. -For example, on my system that uses syslinux, to load the microcode early -during the boot process, the configuration file reads something like that: + To include these special microcodes files, run the script like that: - INITRD /boot/intel-ucode.cpio,/boot/initrd-generic-4.4.x.gz + $ INCLUDE_UCODE_WITH_CAVEATS=yes ./intel-microcode.SlackBuild |