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