7 Dec 2024 |
zzywysm | when i was messing around with an AMD gaming PC (from Dell) in 2019-2020, i feel like i remember that there was an appropriate microcode update in linux-firmware that got loaded at boot | 18:01:39 |
hexa | ❯ ./amd_ucode_info.py kernel/x86/microcode/AuthenticAMD.bin
Microcode patches in kernel/x86/microcode/AuthenticAMD.bin:
Family=0x10 Model=0x02 Stepping=0x03: Patch=0x01000083 Length=960 bytes
Family=0x10 Model=0x02 Stepping=0x02: Patch=0x01000083 Length=960 bytes
Family=0x10 Model=0x02 Stepping=0x0a: Patch=0x01000084 Length=960 bytes
Family=0x10 Model=0x06 Stepping=0x02: Patch=0x010000c7 Length=960 bytes
Family=0x10 Model=0x04 Stepping=0x03: Patch=0x010000c8 Length=960 bytes
Family=0x10 Model=0x06 Stepping=0x03: Patch=0x010000c8 Length=960 bytes
Family=0x10 Model=0x05 Stepping=0x03: Patch=0x010000c8 Length=960 bytes
Family=0x10 Model=0x08 Stepping=0x01: Patch=0x010000d9 Length=960 bytes
Family=0x10 Model=0x09 Stepping=0x01: Patch=0x010000d9 Length=960 bytes
Family=0x10 Model=0x08 Stepping=0x00: Patch=0x010000da Length=960 bytes
Family=0x10 Model=0x04 Stepping=0x02: Patch=0x010000db Length=960 bytes
Family=0x10 Model=0x05 Stepping=0x02: Patch=0x010000db Length=960 bytes
Family=0x10 Model=0x0a Stepping=0x00: Patch=0x010000dc Length=960 bytes
Family=0x11 Model=0x03 Stepping=0x01: Patch=0x02000032 Length=512 bytes
Family=0x12 Model=0x01 Stepping=0x00: Patch=0x03000027 Length=960 bytes
Family=0x14 Model=0x01 Stepping=0x00: Patch=0x05000029 Length=1568 bytes
Family=0x14 Model=0x02 Stepping=0x00: Patch=0x05000119 Length=1568 bytes
Microcode patches in kernel/x86/microcode/AuthenticAMD.bin+0x318c:
Family=0x15 Model=0x01 Stepping=0x02: Patch=0x0600063e Length=2592 bytes
Family=0x15 Model=0x02 Stepping=0x00: Patch=0x06000852 Length=2592 bytes
Family=0x15 Model=0x10 Stepping=0x01: Patch=0x06001119 Length=2592 bytes
Microcode patches in kernel/x86/microcode/AuthenticAMD.bin+0x5050:
Family=0x16 Model=0x00 Stepping=0x01: Patch=0x0700010f Length=3458 bytes
Microcode patches in kernel/x86/microcode/AuthenticAMD.bin+0x5e06:
Family=0x17 Model=0x01 Stepping=0x02: Patch=0x0800126f Length=3200 bytes
Family=0x17 Model=0x31 Stepping=0x00: Patch=0x0830107c Length=3200 bytes
Family=0x17 Model=0x08 Stepping=0x02: Patch=0x0800820d Length=3200 bytes
Family=0x17 Model=0xa0 Stepping=0x00: Patch=0x08a00008 Length=3200 bytes
Microcode patches in kernel/x86/microcode/AuthenticAMD.bin+0x9082:
Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a00107a Length=5568 bytes
Family=0x19 Model=0x11 Stepping=0x02: Patch=0x0a101248 Length=5568 bytes
Family=0x19 Model=0xa0 Stepping=0x02: Patch=0x0aa00215 Length=5568 bytes
Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a001238 Length=5568 bytes
Family=0x19 Model=0x11 Stepping=0x01: Patch=0x0a101148 Length=5568 bytes
Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a0011d5 Length=5568 bytes
Family=0x19 Model=0xa0 Stepping=0x01: Patch=0x0aa00116 Length=5568 bytes
| 18:02:40 |
hexa | this is what's in the current microcodeAmd package | 18:03:01 |
hexa | my Ryzen 5600X is family 25, model 33 | 18:03:19 |
hexa | so 0x19 and 0x21 in hexadecimal | 18:03:33 |
hexa | now one thought about interpreting that was that a given model can match multiple cpu models? but that seems weird | 18:04:43 |
hexa | e.g. 0x21 & 0xa0 = 0x21 | 18:05:10 |
hexa | the gentoo wiki has this table | 18:05:39 |
hexa |  Download image.png | 18:05:40 |
hexa | huh, so linux-firmware seems to have newer microcode for my cpu now | 18:17:54 |
hexa | 6 days newer than the release we have | 18:18:05 |
hexa | * 11 days newer than the release we have | 18:18:35 |
hexa | Microcode patches in microcode_amd_fam19h.bin:
Family=0x19 Model=0x01 Stepping=0x00: Patch=0x0a00107a Length=5568 bytes
+ Family=0x19 Model=0x7c Stepping=0x00: Patch=0x0a70c005 Length=5568 bytes
+ Family=0x19 Model=0x75 Stepping=0x02: Patch=0x0a705206 Length=5568 bytes
+ Family=0x19 Model=0x08 Stepping=0x02: Patch=0x0a00820c Length=5568 bytes
Family=0x19 Model=0x11 Stepping=0x02: Patch=0x0a101248 Length=5568 bytes
Family=0x19 Model=0xa0 Stepping=0x02: Patch=0x0aa00215 Length=5568 bytes
+ Family=0x19 Model=0x44 Stepping=0x01: Patch=0x0a404107 Length=5568 bytes
+ Family=0x19 Model=0x78 Stepping=0x00: Patch=0x0a708007 Length=5568 bytes
+ Family=0x19 Model=0x21 Stepping=0x00: Patch=0x0a20102d Length=5568 bytes
+ Family=0x19 Model=0x74 Stepping=0x01: Patch=0x0a704107 Length=5568 bytes
Family=0x19 Model=0x01 Stepping=0x02: Patch=0x0a001238 Length=5568 bytes
Family=0x19 Model=0x11 Stepping=0x01: Patch=0x0a101148 Length=5568 bytes
+ Family=0x19 Model=0x61 Stepping=0x02: Patch=0x0a601209 Length=5568 bytes
Family=0x19 Model=0x01 Stepping=0x01: Patch=0x0a0011d5 Length=5568 bytes
Family=0x19 Model=0xa0 Stepping=0x01: Patch=0x0aa00116 Length=5568 bytes
+ Family=0x19 Model=0x18 Stepping=0x01: Patch=0x0a108108 Length=5568 bytes
+ Family=0x19 Model=0x50 Stepping=0x00: Patch=0x0a500011 Length=5568 bytes
+ Family=0x19 Model=0x21 Stepping=0x02: Patch=0x0a201210 Length=5568 bytes
| 18:18:51 |
hexa | like the first microcode update for lots of cpus in that family | 18:19:01 |
zzywysm | darn it, i wanted AMD to be as evil as Intel 😆 | 18:20:07 |
hexa | nouuuu 😄 | 18:20:51 |
hexa | release date for the cpu was 2020/11/05 | 18:21:30 |
hexa | * release date for the cpu was 2020-11-05 | 18:23:39 |
Winter | there's some repo we can pull ucode from for that, but it's unofficial | 18:41:24 |
Winter | https://github.com/platomav/CPUMicrocodes | 18:42:01 |
hexa | yeah, I found that as well, but it is not in any way official, apparently scraped from bios releases | 18:43:25 |
hexa | mind you, these are very certainly signed, so I would expect that not to be an issue | 18:44:11 |
Winter | yeah | 18:44:10 |
Winter | repo has been going for almost a decade, if it was shipping malicious ucode i feel like we'd know ;) | 18:44:48 |
hexa | ok, so let's find out if any other distros ships it first maybe? | 18:45:03 |
Winter | i'm looking as we speak | 18:45:15 |
Winter | Gentoo does | 18:45:48 |
hexa | Arch does not | 18:46:25 |
hexa | FreeBSD does not | 18:46:31 |
hexa | and the Gentoo wiki says | 18:47:44 |