Skip to content

All the microcodes, but packaged!

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE.amd-ucode
Unknown
LICENSE.intel-ucode
Notifications You must be signed in to change notification settings

divestedcg/real-ucode

Repository files navigation

real-ucode

Background

  • AMD and Intel both are actively harming users by providing incomplete and delayed microcode updates (to Linux)
  • Why microcode?
    • Microcode updates provide functional and security fixes and are most importantly available out-of-band. This allows operating systems to provide rapid updates side stepping the need for vendor BIOS/EFI update releases and their installation.

Market Segmentation

This is most clear with AMD by the following two reasons. Their goal is to push cloud providers to enterprise platforms and discourage use of cheaper consumer platforms.

  • AMD only provides direct microcode updates for enterprise platforms. Consumer platforms only get microcode updates via AGESA updates.
    • Direct microcode updates are hot-loadable offering minimal downtime.
    • AGESA updates would require eg. the shuffling of virtual machines to another system and a reboot of the host.
  • AMD actively delays updates to consumer systems by 2-3 months
    • This is before the delay from vendors providing system/motherboard updates
bulletin publication date earliest enteprise microcode earliest consumer agesa
AMD-SB-7005 2023-08-08 2023-06-09 2023-08-22
AMD-SB-7008 2023-07-24 2023-06-06 2023-11-21
AMD-SB-7014 2024-08-09 2024-05-03 2024-07-30

Stats (2025-02-03)

provider # supported cpuids # outdated
Intel (official) 290 120
Intel (real-ucode) 615 2
AMD (linux-firmware) 41 11
AMD (real-ucode) 106 3

Compatibility

  • CentOS 9/Stream
  • Fedora 38/39/40/41/etc.

License

  • See the LICENSE file

Prebuilts

Usage

  • Install the package
  • Regenerate initramfs: dracut -f
  • Reboot

Verifying it took

  • You can do this a few ways:
    • Checking logs, eg. journalctl -b0 | grep -i microcode then -b-1
    • Less reliable, running lscpu before and after, then diffing

Status (outdated)

Board CPU CPUID Version Change Notes
ASUS M1605YA 7530U 00A50F00 302 0x0a50000d -> 0x0a50000f
ASUS M5402RA 6800H 00A40F41 301 0x0a404101 -> 0x0a404102 severe breakage, stuck at 400MHz after suspend
ASUS TUF Gaming X570 5900X 00A20F10 5003 already latest
ASUS TUF Gaming X670E 7950X 00A60F12 1809 already latest
Gigabyte B450-DS3H 3600 00870F10 F65b already latest
Lenovo 15ACH6A 5800H 00A50F00 G9CN33WW 0x0a50000c -> 0x0a50000f
Lenovo S340-15API 3500U 00810F81 AMCN31WW already latest
MSI A5EFK 5800H 00A50F00 E15CKAMS.10C 0x0a50000? -> 0x0a50000f
MSI A5M-288 5700U 00860F81 E155LAMS.115 0x08608103 -> 0x08608104
MSI X570 A-PRO 5900X 00A20F12 7C37vHL 0x0a20120a -> 0x0a20120e

Building

  • git clone [THIS REPO]
  • CentOS: rpmbuild -ba real-ucode.spec
  • Fedora: rpmbuild -ba real-ucode.spec

Maintaining this repo

Credits

Other Notes

About

All the microcodes, but packaged!

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE.amd-ucode
Unknown
LICENSE.intel-ucode

Stars

Watchers

Forks

Languages