I am running on x64-64 with AMD hardware. I have the amd64-microcode
package installed but I don't find any evidence that it is getting loaded at boot. For example, before installing the package:
grep -i microcode /proc/cpuinfo
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
The output of that command is identical after installing and rebooting.
On my Arch box, the microcode is loaded in grub.cfg
with the initrd image, but OpenWRT's grub package is not using that...
# cat /boot/boot/grub/grub.cfg
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 --rtscts=off
terminal_input console serial; terminal_output console serial
set default="0"
set timeout="1"
search -l kernel -s root
menuentry "OpenWrt" {
linux /boot/vmlinuz root=PARTUUID=7fe1d9bc-6bf4-44dc-b869-b213c3af5102 rootwait console=tty0 console=ttyS0,115200n8 noinitrd amd_pstate=passive
}
menuentry "OpenWrt (failsafe)" {
linux /boot/vmlinuz failsafe=true root=PARTUUID=7fe1d9bc-6bf4-44dc-b869-b213c3af5102 rootwait console=tty0 console=ttyS0,115200n8 noinitrd
}
EDIT: it seems OW is using late loading, (section 1.3):
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_LATE_LOADING=y
Yet, when I try to get the firmware to load, I see no difference:
# echo 1 > /sys/devices/system/cpu/microcode/reload
# grep microcode /proc/cpuinfo
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d
microcode : 0xa50000d