Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Sep 2018 12:48:56 -0700
From:      Pete Wright <pete@nomadlogic.org>
To:        Mark Johnston <markj@freebsd.org>, freebsd-current@freebsd.org
Subject:   Re: testing early microcode loading
Message-ID:  <812c75e6-e77b-7559-3d0e-06085df10d0f@nomadlogic.org>
In-Reply-To: <20180910182655.GA2849@raichu>
References:  <20180910182655.GA2849@raichu>

next in thread | previous in thread | raw e-mail | index | archive | help


On 9/10/18 11:26 AM, Mark Johnston wrote:
> Hi,
>
> Support for boot-time loading of Intel microcode updates has landed in
> the kernel in r337715, and in the sysutils/devcpu-data port as of 1.20.
> I'd like to solicit some testing of the feature ahead of 12.0.
>
> The port has been modified to install /boot/firmware/intel-ucode.bin.
> This file contains a copy of every Intel microcode update supplied by
> the port.  Per the pkg-message, one can enable early loading of this
> file by specifying:
>
>    cpu_microcode_load="YES"
>    cpu_microcode_name="/boot/firmware/intel-ucode.bin"
>
> in loader.conf.  The update will be applied upon a subsequent reboot.
>
> Testing consists of enabling early loading and verifying that the CPUs
> report an updated microcode version.  If early loading fails, a message
> is printed to the dmesg.  If your system is capable of successful ACPI
> suspend/resume, it is useful to also verify that the microcode remains
> updated following a resume.
>
> To fetch the current microcode version, use sysutils/x86info:
>
>    # kldload -n cpuctl && x86info -a | grep Micro
>    Microcode version: 0x0000000000000020
>
> Compare with the version installed by the microcode_update rc script at
> run-time:
>
>    # service microcode_update onestart
>    Updating CPU Microcode...
>    Done.
>    # kldload -n cpuctl && x86info -a | grep Micro
>    Microcode version: 0x0000000000000020
>
> If your testing indicates that the boot-time loading method doesn't
> work, please include the dmesg in your reply.  Thanks in advance.

Hey there Mark,
So I've just tested this on a kabylake system running a kernel/world 
from Sept 7th which I believe is recent enough.

After updating /boot/loader.conf as per your email I am not sure if any 
microcode updates are being applied.  I'm not seeing any messages 
regarding firmware updates being applied in the dmesg buffer.  running 
x86info results in the following:

$ sudo kldload -n cpuctl && sudo x86info -a | grep Micro
Microcode version: 0x000000000000008e

this is after rebooting with the updated loader.conf as well as running 
the rc script by hand.  i didn't think to compare the output of x86info 
before running the rc script, i can do that later today.

for reference here is my dmesg:
https://gist.github.com/nomadlogic/bfc54315b97d374a7818d29bfc93223e

Cheers,
-pete

-- 
Pete Wright
pete@nomadlogic.org
@nomadlogicLA




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?812c75e6-e77b-7559-3d0e-06085df10d0f>