aucode-tool
Copyright (c) Aug 2020 by Terry Neve <terryn94@gmail.com>

Program to generate early microcode file for AMD processors.
This script does the equivalent for AMD processors that iucode_tool does for Intel CPUs.
The purpose is to generate and early_ucode file in /boot which can be loaded by the GRUB2 bootloader.
The early firmware loader in the kernel will use this to update the microcode on the CPU.

Processor manufacturers release stability and security updates to the processor microcode. 
While microcode is usually updated through the BIOS, not all vendors will release timely updates for their firmware,
and most users don't update their system firmware in a timely fashion (or at all) anyway. 
The Linux kernel is also able to apply these updates during boot. 
These updates provide bug fixes that can be critical to the stability of your system. 
Without these updates, you may experience spurious crashes or unexpected system halts that can be difficult to track down.

Microcode updates are lost after hard-reset or power off and so must be reapplied at every boot and after the system wakes 
up from suspend to RAM or to disk. The procedure outlined below explains how to use the early microcode update driver in the kernel 
to apply microcode updates on each system boot.

First generate the initrd image in /boot by running the aucode-tool script as root:

[root@dell terry]# aucode-tool 
 AuthenticAMD
CPU family: 23
Microcode file: microcode_amd_fam17h.bin
Writing early_ucode image to /boot/early_ucode.img
15 blocks

Then update the GRUB2 configuration by running update-grub2 as root:

[root@dell terry]# update-grub2
Generating grub configuration file ...
Found theme: /boot/grub2/themes/pclinuxos/theme.txt
Found linux image: /boot/vmlinuz-4.8.12-pclos1
Found initrd image: /boot/early_ucode.img  /boot/initrd-4.8.12-pclos1.img

Notice how the early_ucode.img has been added to the initrd line. If all looks good then reboot the system.
Use dmesg to check that the update has been applied successfully:

[root@dell ~]$ dmesg | grep microcode
[    1.099788] microcode: microcode updated early to new patch_level=0x0600084f
[    1.103125] microcode: CPU0: patch_level=0x0600084f
[    1.128110] microcode: Microcode Update Driver: v2.2.
