summaryrefslogtreecommitdiff
path: root/system/intel-microcode/README
diff options
context:
space:
mode:
Diffstat (limited to 'system/intel-microcode/README')
-rw-r--r--system/intel-microcode/README63
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