]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Implement kernel support for early loading of Intel microcode updates.
authormarkj <markj@FreeBSD.org>
Mon, 13 Aug 2018 17:13:09 +0000 (17:13 +0000)
committermarkj <markj@FreeBSD.org>
Mon, 13 Aug 2018 17:13:09 +0000 (17:13 +0000)
commit61d7f51c055b24f5d69cd52b5640be5506cb5e1a
treeb4d056c289650dab6ad6d86bcdd8bcc59c275d4c
parent21fe622aa69529fd2706e5aa6abd1294962479ea
Implement kernel support for early loading of Intel microcode updates.

Updates in the format described in section 9.11 of the Intel SDM can
now be applied as one of the first steps in booting the kernel.  Updates
that are loaded this way are automatically re-applied upon exit from
ACPI sleep states, in contrast with the existing cpucontrol(8)-based
method.  For the time being only Intel updates are supported.

Microcode update files are passed to the kernel via loader(8).  The
file type must be "cpu_microcode" in order for the file to be recognized
as a candidate microcode update.  Updates for multiple CPU types may be
concatenated together into a single file, in which case the kernel
will select and apply a matching update.  Memory used to store the
update file will be freed back to the system once the update is applied,
so this approach will not consume more memory than required.

Reviewed by: kib
MFC after: 6 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D16370
12 files changed:
sys/amd64/amd64/machdep.c
sys/amd64/amd64/mp_machdep.c
sys/conf/files.amd64
sys/conf/files.i386
sys/dev/cpuctl/cpuctl.c
sys/i386/i386/locore.s
sys/i386/i386/machdep.c
sys/i386/i386/mp_machdep.c
sys/x86/acpica/acpi_wakeup.c
sys/x86/include/ucode.h [new file with mode: 0644]
sys/x86/x86/mp_x86.c
sys/x86/x86/ucode.c [new file with mode: 0644]