Early loading of microcode updates with all firmware

From: Paul Menzel
Date: Fri Jun 30 2017 - 06:45:32 EST


Dear Borislav,


Thank you for recently updating the document *Early load microcode* [1].

My goal is to include all microcode updates from AMD and Intel, as the image is supposed to run on several systems.

Therefore, I included the files in the initramfs image, under `/lib/firmware`, and selected the microcode related Kconfig options.

```
$ grep MICROCODE /boot/config-4.11.7.mx64.161
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
```

But, the microcode is not updated. For example, I have to manually run the command below.

```
$ echo 1 | sudo tee /sys/devices/system/cpu/microcode/reload
```

Reading the document, that method is not explicitly mentioned there, so I guess itâs not supported.

So two question. If I want to add it to the initramfs image, the document says to prepend the updates. But I am unclear how to create `microcode.bin` to contain all the files in `/lib/firmware/intel-ucode/`, and then the ones for AMD devices. Do I just concatenate both?

Regarding the section *Builtin microcode*, it would be quite cumbersome to list all the microcode files. It looks like wildcards like `*` are not supported. At least the build breaks, if `intel-ucode/*` is used in the prompt.


Kind regards,

Paul


[1] https://www.kernel.org/doc/Documentation/x86/early-microcode.txt