Blame SPECS/intel_readme

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