Blame SOURCES/intel_readme

b24a43
Older RHEL 7 kernels try to early load microcode even inside virtual
b24a43
machine, which may lead to panic on some hypervisors.  In order to circumvent
b24a43
that, microcode is installed into a kernel-version-specific directory (which
b24a43
is not scanned by the dracut script, that constructs early microcode binary
b24a43
in initramfs, by default), and path to microcode files provided only in case
b24a43
initramfs is generated for the kernel version that properly handles early
b24a43
microcode inside a virtual machine (i.e. do not attempts yo load it).
b24a43
The versions of the kernel package that properly handle early microcode load
b24a43
inside a virtual machine are as follows:
b24a43
 * RHEL 7.6: kernel-3.10.0-930 or newer;
b24a43
 * RHEL 7.5: kernel-3.10.0-862.14.1 or newer;
b24a43
 * RHEL 7.4: kernel-3.10.0-693.38.1 or newer;
b24a43
 * RHEL 7.3: kernel-3.10.0-514.57.1 or newer;
b24a43
 * RHEL 7.2: kernel-3.10.0-327.73.1 or newer.
b24a43
RHEL 8 kernels are not affected.
b24a43
b24a43
If you want to avoid early load of microcode for a specific kernel, please
b24a43
create "disallow-early-intel" file inside /lib/firmware/<kernel_version>
b24a43
directory and run dracut -f --kver "<kernel_version>":
b24a43
b24a43
    touch /lib/firmware/3.10.0-862.9.1/disallow-intel
b24a43
    /usr/libexec/microcode_ctl/update_ucode
b24a43
    dracut -f --kver 3.10.0-862.9.1
b24a43
b24a43
If you want to avoid early load of microcode for all kernels, please create
b24a43
"disallow-early-intel" file inside the "/etc/microcode_ctl/ucode_with_caveats"
b24a43
directory and run dracut -f --regenerate-all:
b24a43
b24a43
    mkdir -p /etc/microcode_ctl/ucode_with_caveats
b24a43
    touch /etc/microcode_ctl/ucode_with_caveats/disallow-intel
b24a43
    dracut -f --kver 3.10.0-862.9.1
b24a43
b24a43
If you want to enforce early load of microcode for a specific kernel, please
b24a43
create "force-early-intel" file inside /lib/firmware/<kernel_version> directory
b24a43
and run dracut -f --kver "<kernel_version>":
b24a43
b24a43
    modir -p/lib/firmware/3.10.0-862.9.1/
b24a43
    touch /lib/firmware/3.10.0-862.9.1/force-early-intel
b24a43
    dracut -f --kver 3.10.0-862.9.1
b24a43
b24a43
If you want to enforce early load of microcode for all kernels, please create
b24a43
"force-early-intel" file inside /etc/microcode_ctl/ucode_with_caveats
b24a43
directory and run dracut -f --kver "<kernel_version>":
b24a43
b24a43
    mkdir -p /etc/microcode_ctl/ucode_with_caveats
b24a43
    touch /etc/microcode_ctl/ucode_with_caveats/force-early-intel
b24a43
    dracut -f --regenerate-all
b24a43
b24a43
In order to override late load behaviour, the "early" part of file names should
b24a43
be replaced with "late" (and there is no need to call dracut in that case).
b24a43
b24a43
b24a43
Please refer to /usr/share/doc/microcode_ctl/README.caveats for additional
b24a43
information.