5

While for Intel there is information like microcode-update-guidance.pdf and releasenote, I could not find similar information about AMD CPU microcode updates.

Is it available anywhere?

2 Answers2

5

The closest thing I could find is this community run microcode repository for Intel, VIA and AMD processors: https://github.com/platomav/CPUMicrocodes/

The list of AMD microcodes (with version numbers) is here: https://github.com/platomav/CPUMicrocodes/tree/master/AMD

Explanation of the filenames is in the first link. In short, it contains:

  • CPUID
  • Revision (Microcode update revision counter)
  • Date (Date of its public release)
  • Checksum
-1

@david's answer is a great pointer. It took a lot of time to figure things out though based on it.

So I couldn't find a way to get proper CPUID neither on Linux nor Windows. Eventually I looked up CPUIDs on http://instlatx64.atw.hu/ (saw it in the MC Extractor README) and figured out that Ryzen 3600 has ID 00870F10.

Current microcode I could see from BIOS, dmesg, dmidecode, /proc/cpuinfo, cpuid (on windows hwinfo and CPUz showed it too). It was 8701030 for me (motherboard has AGESA 1.2.0.B, while the zenbleed fix should be in 1.2.0.C, see AMD bulletin).

Then in the CPUMicrocodes repo I saw based on the CPUID, that there is also a newer 08701033 microcode, which hopefully should contain the zenbleed fix.

Update, I see how one can see this CPUID, output of cpuid -r. For my CPU, this is eax at 0x00000001 and 0x80000001. Probably that should be the same for other CPUs.

enter image description here

How to load it? This is beyond the scope but basically you package the raw microcode into a file that can be understood by kernel and then merge it into (or replace) the original microcode file, in my case /usr/lib/firmware/amd-ucode/microcode_amd_fam17h.bin.

For this you can use two tools - amd-ucodegen and amd_ucode_info.

I wrote a blog about the whole thing: https://rboci.blogspot.com/2024/04/zenbleed-microcode-update-on-amd-ryzen.html

In summary, the particular reason I performed this exercise was not worth it because a naive test shows actually a slightly negative multi-threading performance results and only a negligible improvement in single-thread.

But this is how in general you can find and deploy a newer AMD microcode on Linux.

hahaha
  • 3
akostadinov
  • 1,530