You are not logged in.

#1 2019-11-29 13:21:17

jmmec
Member
Registered: 2016-12-23
Posts: 7

Microcode Loading: AMD Threadripper 1950x and amd-ucode

Hello,

I'm trying to get amd-ucode microcode to "load early" during boot using systemd-boot from an EFI / ESP partition on this hardware:

CPU:     AMD Threadripper 1950x 
MBOARD:  Asrock X399 Taichi motherboard running BIOS 2.00

The dmesg snippet below is with the latest 5.3.13 kernel (similar logs with the LTS kernel):

$ dmesg
[    0.000000] Linux version 5.3.13-arch1-1 (linux@archlinux) (gcc version 9.2.0 (GCC)) #1 SMP PREEMPT Sun, 24 Nov 2019 10:15:50 +0000
[    0.000000] Command line: initrd=\EFI\Linux\Arch\amd-ucode.img initrd=\EFI\Linux\Arch\initramfs-linux.img root=PARTUUID=46e0becd-d1ab-fc40-9b63-3e06297c1664 rw
..etc..
[    0.000000] Kernel command line: initrd=\EFI\Linux\Arch\amd-ucode.img initrd=\EFI\Linux\Arch\initramfs-linux.img root=PARTUUID=46e0becd-d1ab-fc40-9b63-3e06297c1664 rw
..etc..
[    1.750708] microcode: CPU0: patch_level=0x08001129
[    1.750723] microcode: CPU1: patch_level=0x08001129
[    1.750738] microcode: CPU2: patch_level=0x08001129
[    1.750740] microcode: CPU3: patch_level=0x08001129
[    1.750755] microcode: CPU4: patch_level=0x08001129
[    1.750771] microcode: CPU5: patch_level=0x08001129
..etc..
[    1.750910] microcode: CPU25: patch_level=0x08001129
[    1.750916] microcode: CPU26: patch_level=0x08001129
[    1.750923] microcode: CPU27: patch_level=0x08001129
[    1.750929] microcode: CPU28: patch_level=0x08001129
[    1.750935] microcode: CPU29: patch_level=0x08001129
[    1.750942] microcode: CPU30: patch_level=0x08001129
[    1.750950] microcode: CPU31: patch_level=0x08001129
[    1.750980] microcode: Microcode Update Driver: v2.2.
..etc..

Where according to this reference:

https://wiki.archlinux.org/index.php/Microcode

I should either see this log for "early loading", but it doesn't appear above:

microcode: microcode updated early to new patch_level=...blah....

But neither does this log appear for "late loading":

x86/CPU: CPU features have changed after loading microcode, but might not take effect.

So it's not clear to me if early or late microcode loading is occurring on this system?

Here are some additional details:

[root@arch-tr] ~ # lsblk -i
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme1n1     259:1    0   477G  0 disk 
|-nvme1n1p1 259:2    0   512M  0 part /esp
|-nvme1n1p2 259:3    0    40G  0 part /
|-nvme1n1p3 259:4    0    16M  0 part 
|-nvme1n1p4 259:5    0 249.5G  0 part 
|-nvme1n1p5 259:6    0   470M  0 part 
`-nvme1n1p6 259:7    0 186.4G  0 part /home

[root@arch-tr] ~ # ls -l /boot
total 134448
-rwxr-xr-x 1 root root    40960 Nov 17 10:37 amd-ucode.img
-rwxr-xr-x 1 root root 43090472 Nov 29 05:39 initramfs-linux-fallback.img
-rwxr-xr-x 1 root root 40580494 Nov 29 05:38 initramfs-linux-lts-fallback.img
-rwxr-xr-x 1 root root 19898750 Nov 29 05:38 initramfs-linux-lts.img
-rwxr-xr-x 1 root root 21862475 Nov 29 05:39 initramfs-linux.img
drwxr-xr-x 2 root root     4096 Nov 29 05:30 loader
-rwxr-xr-x 1 root root  6285696 Nov 27 06:06 vmlinuz-linux
-rwxr-xr-x 1 root root  5896064 Nov 27 06:06 vmlinuz-linux-lts

[root@arch-tr] ~ # ls -l /esp/EFI/Linux/Arch/
total 134448
-rwxr-xr-x 1 root root    40960 Nov 17 10:37 amd-ucode.img
-rwxr-xr-x 1 root root 43090472 Nov 29 05:39 initramfs-linux-fallback.img
-rwxr-xr-x 1 root root 40580494 Nov 29 05:38 initramfs-linux-lts-fallback.img
-rwxr-xr-x 1 root root 19898750 Nov 29 05:38 initramfs-linux-lts.img
-rwxr-xr-x 1 root root 21862475 Nov 29 05:39 initramfs-linux.img
drwxr-xr-x 2 root root     4096 Nov 29 05:30 loader
-rwxr-xr-x 1 root root  6285696 Nov 27 06:06 vmlinuz-linux
-rwxr-xr-x 1 root root  5896064 Nov 27 06:06 vmlinuz-linux-lts

Where this is the "late loading" firmware, where I think "microcode_amd_fam17h.bin" is for Threadripper:

[root@arch-tr] ~ # ls -l /usr/lib/firmware/amd-ucode/
total 40
-rw-r--r-- 1 root root 12684 Nov 17 10:37 microcode_amd.bin
-rw-r--r-- 1 root root  7876 Nov 17 10:37 microcode_amd_fam15h.bin
-rw-r--r-- 1 root root  3510 Nov 17 10:37 microcode_amd_fam16h.bin
-rw-r--r-- 1 root root  9700 Nov 17 10:37 microcode_amd_fam17h.bin

And finally the systemd-boot entry to Arch, where I added the "amd-ucode.img" line:

[root@arch-tr] ~ # cat /esp/loader/entries/Arch.conf
title	Arch Linux
linux	/EFI/Linux/Arch/vmlinuz-linux
initrd	/EFI/Linux/Arch/amd-ucode.img
initrd	/EFI/Linux/Arch/initramfs-linux.img
options	root=PARTUUID=46e0becd-d1ab-fc40-9b63-3e06297c1664 rw

Any ideas on what is happening on this system with the microcode early / late loading, anything else to try?

Thank you!

Offline

#2 2019-11-29 13:24:24

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: Microcode Loading: AMD Threadripper 1950x and amd-ucode

Is your microcode already at the latest version - usually the case if you have a recent firmware update?
If so then no updating will take place...

Edit - No Threadripper here so I'm not up to date on the latest firmware versions like I am with my 2700X smile

Last edited by Slithery (2019-11-29 13:26:34)


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#3 2019-11-30 00:21:47

jmmec
Member
Registered: 2016-12-23
Posts: 7

Re: Microcode Loading: AMD Threadripper 1950x and amd-ucode

Hmmm, I dunno....

I upgraded the X399 Motherboard UEFI BIOS from 2.0 (Nov 2018) to 3.80 (Sept 2019) and the patch_level is now as shown below.  No reference to early / late loading.  That's about all that I've figured out....   smile

[    0.000000] Command line: initrd=\EFI\Linux\Arch\amd-ucode.img initrd=\EFI\Linux\Arch\initramfs-linux.img root=PARTUUID=46e0becd-d1ab-fc40-9b63-3e06297c1664 rw
[    0.000000] Kernel command line: initrd=\EFI\Linux\Arch\amd-ucode.img initrd=\EFI\Linux\Arch\initramfs-linux.img root=PARTUUID=46e0becd-d1ab-fc40-9b63-3e06297c1664 rw
[    1.766892] microcode: CPU0: patch_level=0x08001137
[    1.766907] microcode: CPU1: patch_level=0x08001137
[    1.766909] microcode: CPU2: patch_level=0x08001137
[    1.766925] microcode: CPU3: patch_level=0x08001137
[    1.766942] microcode: CPU4: patch_level=0x08001137
[    1.766957] microcode: CPU5: patch_level=0x08001137
[    1.766964] microcode: CPU6: patch_level=0x08001137
.. etc ..
[    1.767161] microcode: Microcode Update Driver: v2.2.

Offline

#4 2019-11-30 14:22:42

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: Microcode Loading: AMD Threadripper 1950x and amd-ucode

$ dmesg | grep microcode
[    1.441003] microcode: CPU0: patch_level=0x08001137
[    1.441008] microcode: CPU1: patch_level=0x08001137
[    1.441010] microcode: CPU2: patch_level=0x08001137
[    1.441017] microcode: CPU3: patch_level=0x08001137
[    1.441024] microcode: CPU4: patch_level=0x08001137
[    1.441031] microcode: CPU5: patch_level=0x08001137
[    1.441040] microcode: CPU6: patch_level=0x08001137
[    1.441049] microcode: CPU7: patch_level=0x08001137
[    1.441058] microcode: CPU8: patch_level=0x08001137
[    1.441067] microcode: CPU9: patch_level=0x08001137
[    1.441075] microcode: CPU10: patch_level=0x08001137
[    1.441083] microcode: CPU11: patch_level=0x08001137
[    1.441089] microcode: CPU12: patch_level=0x08001137
[    1.441094] microcode: CPU13: patch_level=0x08001137
[    1.441099] microcode: CPU14: patch_level=0x08001137
[    1.441104] microcode: CPU15: patch_level=0x08001137
[    1.441111] microcode: CPU16: patch_level=0x08001137
[    1.441116] microcode: CPU17: patch_level=0x08001137
[    1.441123] microcode: CPU18: patch_level=0x08001137
[    1.441130] microcode: CPU19: patch_level=0x08001137
[    1.441136] microcode: CPU20: patch_level=0x08001137
[    1.441143] microcode: CPU21: patch_level=0x08001137
[    1.441150] microcode: CPU22: patch_level=0x08001137
[    1.441157] microcode: CPU23: patch_level=0x08001137
[    1.441187] microcode: Microcode Update Driver: v2.2.
$

Same patchlevel for my threadripper 1920X with an ASrock motherboard.

I checked and the logs from  december 2 2018 (when I installed archlinux) show the same patch level.
Looks like we should check what version amd-ucode has for threadripper 19xxx processors.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

Board footer

Powered by FluxBB