Amd-ucode package and applicability

I’m curious to find out what AMD Ryzen AI 3XX and Arch users are reporting for current microcode. I’m trying to understand how and when the microcode is loaded based on the BIOS vs the packaged supplied by Arch.

A little background. AMD has never published their consumer microcode despite the amd-ucode package being frequently updated. It has always only been for threadripper and epyc. This can (could) be confirmed by visiting AMDs ucode on Gitlab. The ucode package regardless of distro was basically useless. However, recently they have been publishing consumer CPU microcode. Earlier this year they actually published our CPU family, 1ah. But still not for our actual CPU. This week that changed and our CPUs now are all represented via the above link. (For example, the CPU ID for the HX 370 is 00B20F40 as derived from the line beginning with Family=0x1a Model=0x24 Stepping=0x00).

dmesg | grep -i microcode

Mine is reporting 0x0b204032 as per the BIOS (assumed). The last BIOS was 3.04 and it had this microcode on board. So does the new 3.05 released just yesterday. But, as stated, this week new microcode patch was released (0x0b204037) for the HX 370. After forcing an update to the amd-ucode package, I’m still reporting the prior patch.

So the question becomes: who wins in the microcode loading race? My understanding was that the BIOS supplied ucode was used to POST and if the AMD supplied package was newer, it would override the BIOS ucode via initramfs but that isn’t happening.

Since I started this topic, the amd-ucode package has been updated. But for some reason it still reports 0x0b204032 as the current microcode. So I updated it manually. By replacing the .bin file in /usr/lib/firmware/amd-ucode and regenerating initramfs I can get the current microcode to load. I don’t know what is wrong with the arch generated amd-ucode package.

linux-firmware package just got updated. and now I have this latest microcode

sudo dmesg | grep -i microcode
[sudo: authenticate] Password:
[ 1.831060] microcode: Current revision: 0x0b204037
[ 1.831061] microcode: Updated early from: 0x0b204032

1 Like