Hello
I'm using NetBSD 11.0
cat /proc/cpuinfo (partial; showing cpu 0 only)
processor : 0
vendor_id : AuthenticAMD
cpu family : 23
model : 17
model name : AMD Ryzen 5 PRO 2400G with Radeon Vega Graphics
cpuctl list:
Num HwId Unbound LWPs Interrupts Last change #Intr
---- ---- ------------ ---------- ------------------------ -----
0 0 online intr Fri Sep 18 08:01:29 2026 13
1 1 online intr Fri Sep 18 08:01:29 2026 1
2 2 online intr Fri Sep 18 08:01:29 2026 1
3 3 online intr Fri Sep 18 08:01:29 2026 1
4 4 online intr Fri Sep 18 08:01:29 2026 1
5 5 online intr Fri Sep 18 08:01:29 2026 1
6 6 online intr Fri Sep 18 08:01:29 2026 1
7 7 online intr Fri Sep 18 08:01:29 2026 1
The microcode was downloaded from the kernel.org git; url provided by cpuctl(8)
The firmware was copied before attempting ucode update to:
/libdata/firmware/x86/amd/microcode_amd_fam17h.bin
Here's the command description under cpuctl(8)
ucode [cpu] [file]
This applies the microcode patch to CPUs. Unless -v was given,
errors indicating that the microcode already exists on the CPU
in question are ignored. If cpu is not specified or -1, all
CPUs are updated. (AMD CPU updates need to update all CPUs at
once.) If cpu is -2, the current CPUs are updated. The
default filename is used if no filename is specified. The file
pathname containing the ucode updates are searched relative to
the default firmware path found in sysctl(7) hw.firmware.path.
The identify command prints the installed version on the
specified CPUs. On success the identify command shows
different ucode versions before and after this command.
Some problems will only be reported in the kernel message
buffer, so check dmesg(8) in case of errors.
As mentioned, the file pathname is searched relative to hw.firmware.path:
hw.firmware.path =
/libdata/firmware:/usr/libdata/firmware:/usr/pkg/libdata/firmware:/usr/pkg/libdata
Also, notice that all cpus must be handled together. I'm guessing
that's where the -1 option comes into play.
So, I tried the following forms:
> doas cpuctl ucode -1 /x86/amd/microcode_amd_fam17h.bin
> doas cpuctl ucode -1 /libdata/firmware/x86/amd/microcode_amd_fam17h.bin
> doas cpuctl ucode -1 microcode_amd_fam17h.bin
> doas cpuctl ucode -1
Each form returns "cpuctl: -1: No such file or directory"
And, just in case the problem is cpu -1, I tried it with cpu 0, and it
returned:
> doas cpuctl ucode 0 /x86/amd/microcode_amd_fam17h.bin
cpuctl: ucode updates on AMD can only be done on all CPUs at once
cpuctl: unsupported
I'm hoping it's something extremely obvious, but maybe I'm too tired
at the moment to see it.