Page MenuHomeFreeBSD

sysutils/cpu-microcode-intel: Handle extended signature tables
ClosedPublic

Authored by jrm on May 17 2026, 3:07 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Jun 15, 8:59 PM
Unknown Object (File)
Mon, Jun 15, 6:32 PM
Unknown Object (File)
Thu, Jun 11, 9:25 AM
Unknown Object (File)
Wed, Jun 10, 6:44 PM
Unknown Object (File)
Tue, Jun 9, 9:35 PM
Unknown Object (File)
Tue, Jun 9, 9:35 PM
Unknown Object (File)
Mon, Jun 8, 6:35 AM
Unknown Object (File)
Mon, Jun 8, 6:34 AM
Subscribers
None

Details

Summary

Intel microcode files can contain an extended signature table after the
main payload, listing additional processor signatures and platform flag
combinations that are covered by the same microcode blob.

ucode-split was only reading the primary header signature when naming
output files and ignored the extended table entirely. As a result,
processors whose signature appeared only in an extended table entry had
no matching split file in ${DATADIR} and therefore no microcode via
cpucontrol(8).

This affected a number of CPU families in the current release, including
Raptor Lake (06-bf-02/05/06/07, Core Gen13/Gen14), Sapphire Rapids
steppings E0-E3 (06-8f-04 through 06-8f-07), Arrow Lake-H (06-c5-02),
Panther Lake (06-cc-02/03), and others.

Extend ucode-split to read the extended signature table and write an
additional output file for each entry that differs from the primary
signature.

PR: 295351

Diff Detail

Repository
R11 FreeBSD ports repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

jrm requested review of this revision.May 17 2026, 3:07 PM
jrm created this revision.
sysutils/cpu-microcode-intel/files/ucode-split.c
271

Wouldn't it be simpler to make copy_entry() use pread(2)?

This revision is now accepted and ready to land.May 17 2026, 8:07 PM
  • Use pread(2) as suggested by markj, which means we can remove extsig_off save/restore around copy_entry()
  • Reference the 'Optional Extended Signature Table' in vol 3A section 12.11.2 of the March 2026 SDM
This revision now requires review to proceed.May 17 2026, 11:18 PM
jrm marked an inline comment as done.

Fix a typo (s/feee/free/)

sysutils/cpu-microcode-intel/files/ucode-split.c
271

Indeed. Thanks.

This revision is now accepted and ready to land.May 18 2026, 12:19 AM

My comments are just nits, I think the change is fine.

sysutils/cpu-microcode-intel/files/ucode-split.c
246

You might handle this error case in the same way as in copy_entry(), i.e., check for rv < 0 separately so you can print errno.

251

Same here.

259

I'm not sure there's much point in skipping identical entries? copy_entry() will just overwrite the file again.