Stop using legacy microcode.dat file to build individual update files.
Details
Diff Detail
- Repository
- rP FreeBSD ports repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Surprisingly, this seems to work for us.
Jan 15 09:52:15 nfstest kernel: cpuctl: access to MSR registers/cpuid info. Jan 15 09:52:16 nfstest microcode_update: /usr/local/share/cpucontrol/06-3c-03: updating cpu /dev/cpuctl0 from rev 0x17 to rev 0x22... done. Jan 15 09:52:18 nfstest microcode_update: /usr/local/share/cpucontrol/06-3c-03: updating cpu /dev/cpuctl2 from rev 0x17 to rev 0x22... done. Jan 15 09:52:18 nfstest microcode_update: /usr/local/share/cpucontrol/06-3c-03: updating cpu /dev/cpuctl4 from rev 0x17 to rev 0x22... done. Jan 15 09:52:18 nfstest microcode_update: /usr/local/share/cpucontrol/06-3c-03: updating cpu /dev/cpuctl6 from rev 0x17 to rev 0x22... done. Jan 15 09:52:19 nfstest kernel: CPU: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz (2993.14-MHz K8-class CPU)
No objection, although my blessing is meaningless in ports.
sysutils/devcpu-data/Makefile | ||
---|---|---|
5 ↗ | (On Diff #37981) | What's the distinction here? What version number are we tracking? |
sysutils/devcpu-data/Makefile | ||
---|---|---|
5 ↗ | (On Diff #37981) | AFAIK this is meaningless. I bump a minor when we get new f/w from either vendor. I add a PORTREVISION when we cleanup port issues. I have no idea when I would bump the major rev. Maybe if I add a new CPU microcode ARCH, then I'd do that. |
In case anyone is wondering why there are fewer files installed as compared to the files extracted from microcode.dat, the old ucode-tool wrote each microcode update into a separate file, whereas the new files combine all the updates for a given family-model-stepping combination into their own files. Multiple updates in the same file will each have a different processor_flags value. Using the iucode-tool program to dump each set of files shows that they both include the same number of updates:
$ iucode_tool -L microcode.dat | awk '/bundle/ { files++; } /sig/ { updates++; } END { printf "%d files, %d updates\n",files,updates }' 1 files, 164 updates $ iucode_tool -L intel-ucode/* | awk '/bundle/ { files++; } /sig/ { updates++; } END { printf "%d files, %d updates\n",files,updates }' 94 files, 164 updates