Blame SPECS/intel_readme

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