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:2 by , 6 years ago
Please submit patches on review.haiku-os.org, not as ticket attachments. They will get lost otherwise.
comment:3 by , 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 , 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
Ticket #14082 has a WIP patch for microcode updating, currently limited to AMD only, to get started.