forked from Lainports/freebsd-ports
Extend the port so that users may easily apply microcode updates using the method implemented in src r337715. For now, this just consists of providing all Intel microcode update files concatenated together as a single blob in /boot/firmware. Approved by: sbruno Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D16924
40 lines
1.7 KiB
Text
40 lines
1.7 KiB
Text
Installing this port will allow host startup to update the CPU microcode on
|
|
a FreeBSD system automatically. There are two methods for updating CPU
|
|
microcode: the first methods loads and applies the update before the kernel
|
|
begins booting, and the second method loads and applies updates using an
|
|
rc script. The first method is preferred, but is currently only supported
|
|
on Intel i386 and amd64 processors running FreeBSD 12.0. It is safe to
|
|
enable both methods.
|
|
|
|
The first method ensures that any CPU features introduced by a microcode
|
|
update are visible to the kernel. In other words, the update is loaded
|
|
before the kernel performs CPU feature detection.
|
|
|
|
To enable updates using the first method, add the following lines to
|
|
the system's /boot/loader.conf:
|
|
|
|
cpu_microcode_load="YES"
|
|
cpu_microcode_name="/boot/firmware/intel-ucode.bin"
|
|
|
|
This method will not load the microcode update until the system is
|
|
rebooted.
|
|
|
|
To enable updates using the second method, add the following line to
|
|
the system's /etc/rc.conf:
|
|
|
|
microcode_update_enable="YES"
|
|
|
|
Then, to ensure the update is applied, reboot the system or start the
|
|
microcode update service via:
|
|
|
|
# service microcode_update start
|
|
|
|
If the CPU requires a microcode update, a console message such as the following
|
|
will appear:
|
|
|
|
Updating CPU Microcode...
|
|
/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl0 from rev 0x17 to rev 0x22... done.
|
|
/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl2 from rev 0x17 to rev 0x22... done.
|
|
/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl4 from rev 0x17 to rev 0x22... done.
|
|
/usr/local/share/cpucontrol/m32306c3_00000022.fw: updating cpu /dev/cpuctl6 from rev 0x17 to rev 0x22... done.
|
|
Done.
|