Opened 7 years ago

Last modified 4 years ago

#13973 new enhancement

Implement CPU microcode loading

Reported by: kallisti5 Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: System/Kernel Version: R1/Development
Keywords: ucode microcode Cc:
Blocked By: Blocking:
Platform: All

Description

Haiku currently lacks CPU patching via microcode updates.

Linux (as exampled here) and other operating systems support CPU microcode updates via signed binary blobs provided by the CPU vendor.

These microcode updates can improve performance, or protect users from hardware vulnerabilities such as Spectre.

Here is a quick run-down on how Linux patches microcode:

  • Microcode is placed in /lib/firmware/amd-ucode or /lib/firmware/intel-ucode by microcode package updates.
  • The "microcode" kernel module hot-applies supported microcode updates to the running host.

References:

Change History (4)

comment:1 by nzimmermann, 6 years ago

Ticket #14082 has a WIP patch for microcode updating, currently limited to AMD only, to get started.

Last edited 6 years ago by korli (previous) (diff)

comment:2 by pulkomandy, 6 years ago

Please submit patches on review.haiku-os.org, not as ticket attachments. They will get lost otherwise.

comment:3 by nephele, 4 years ago

Intel microcode loading is implemented, it now only needs AMD one.

references:
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/x86/x86/cpu_ucode_amd.c

haiku:
src/system/boot/arch/x86/cpu.cpp : void ucode_load(BootVolume& volume)
src/system/kernel/arch/x86/arch_cpu.cpp
headers/private/kernel/arch/x86/arch_cpu.h

https://git.haiku-os.org/haiku/commit/?id=11f8b65a797d8bb721a0223542f5f6ce42fc3474
https://git.haiku-os.org/haiku/commit/?id=56bb1bd5c992ca2dd09bb501c44707396273f438

comment:4 by pulkomandy, 4 years ago

Intel microcode loading is implemented but the microcode is not shipped with haiku by default and need to be installed separately. This patch should be finished: https://review.haiku-os.org/c/haiku/+/2266

Note: See TracTickets for help on using tickets.