UPDATE.SYS is now updated in each service pack for Windows 2000/XP/2003, but was never updated for Windows 98/SE/ME.
For processors before P4 Prescott, each microcode update had the size 2000 bytes without header and 2048 with header, and it was specific for every stepping and for every platform (socket).
Starting P4 Prescott, some updates are bigger and most updates are intended for all platforms with the same core stepping. It means different handling in the driver. The number of microcodes included in UPDATE.SYS for different windows versions is:
Windows 98: 7
Windows 98 SE: 27
Windows ME: 49
Windows 2000 SP4: 81
Windows XP SP2: 94
Windows 2003 SP1: 101
There is only limited space in the current driver so some limitation has to be applied.
Updated UPDATE.SYS for Windows 98 SE, version changed to 4.10.2223
Contains 26 microcodes for Pentium II, Pentium III and Celeron with cores: Deschutes / Covington / Mendocino / Katmai / Coppermine / Tualatin in Slot 1 and FCPGA-370 packages and for Pentium 4 Willamette and Northwood. No Xeon, EE and mobile processors.
Updated UPDATE.SYS for Windows Me, version changed to 4.90.3001
48 microcodes, more platforms, also EE, mobile and Pentium M.
It is functional in Windows 98 SE too.
I've added also one 2048 byte microcode for Pentium 4 Prescott stepping C0, CPUID 0F33, I have not tested whether the code can use the right mask compare of the platform ID or used simlple comparison.
It should not be so big problem to prepare patch of the original UPDATE.SYS not to distribute Microsoft code.
Microcode updates are also contained in BIOSes (Award BIOSes shows PATCH ID: during boot), but very often they are not up to date. For example Gigabyte has no Northwood D1 microcodes in BIOS for my motherboards (GA-8PE667 Ultra2).
The success of the microcode update can be seen either by Intel® Processor Frequency ID Utility:
but please be sure to use the right version.
Version 7.2 (fidenu32.msi), the newest, supports Win98SE to WXP and does NOT support Pentium 4.
Version 7.1 (fidenu31.msi), the previous, supports Win98SE to WXP and does support Pentium 4.
Version 5.6 was the last version that supported Windows 95 and 98 Gold.
New Intel® Processor Identification Utility
supports the whole Pentium 4 processor family but only on Windows 2000 and XP.
Always it is possible to use bootable (DOS) version of these utilities.
In the registry, this is how looks successful update from microcode 21 (in BIOS) to 2E by UPDATE.SYS:
"Identifier"="x86 Family 15 Model 2 Stepping 9"
"Previous Update Signature"=hex:00,00,00,00,21,00,00,00
I have not found any information about meaning of "Update Status", my observation is the following:
"Identifier"="AMD-K6 3D processor"
Status 1 seems to mean that the CPU does not support microcode update.
"Identifier"="x86 Family 15 Model 2 Stepping 7"
Status 2 seems to mean that there is no suitable microcode in UPDATE.SYS present.
Status 6 can be seen for the second logical CPU for Pentium 4 Hyper-Threading processors. (In WXP, not tested with W98)
This post has been edited by Petr: 17 September 2006 - 11:00 AM