v2.3:
* Processor signature scan strategies can now be selected at
runtime, using a new optional argument of the --scan-system
option. It is possible to disable the "exact" scan strategy
(which uses the kernel cpuid device) at build time to reduce the
impact on executable size.
* Microcode updates for a specific signature can now be optionally
selected based on their revision, not just processor flags mask.
v2.2:
* build infrastructure changes: autoconf 2.69 or later, and
automake 1.13 or later are now required. The configure script
will attempt to auto-detect and enable several warning and
hardening options by default if CFLAGS/LDFLAGS are *unset*, or if
given the new --enable-extend-flags option. "-O3" optimization
mode will be used by default. The usual ways to override *FLAGS
are respected by configure and the Makefile.
v2.1.1:
* Fix CVE-2017-0357: iucode_tool: heap buffer overflow on -tr loader
v2.1:
* The early initramfs cpio archives created by iucode_tool are now
deterministic. Instead of the current system time, the date of
the latest microcode included in the early initramfs will be used.
* There is a new option to minimize the size of the early initramfs:
--mini-earlyfw. This option causes iucode_tool to create a non-
standard cpio archive which is typically 736 bytes smaller.
WARNING: the microcode data file might not be visible to the
regular initramfs when this mode is used.
* iucode-tool will now create valid early initramfs archives past
year 2038.
v2.0:
* This new major version has several non-backwards-compatible
changes. Scripts that scrape iucode_tool's stdout/stderr messages
might have to be updated, and the behavior for -s and -S options
changed.
* The microcode listing output format used by --list and
--list-all changed: the processor flags mask field is now
labeled "pf_mask" instead of "pf mask", and the first field
(bundle id/microcode id) is wider for --list-all, and completely
changed for --list (refer to next entry).
* The output for the --list option now uses the same microcode
numbering used in --list-all and error messages, and also the
same indentation as --list-all. For this reason, --list will
output the bundle assignment list to stdout when not in --quiet
mode, the same way --list-all does.
* The --scan-system/-S option can now only be specified once, and
it may be overridden by -s !<signature> options that come
*after* it in command line ordering. To emulate the previous
behavior, always specify --scan-system just once, and as the
last option (i.e. after any -s options).
* Error and warning messages, as well as some verbose (and debug)
messages were updated, and some of them were demoted to higher
verbosity levels.
* Other relevant changes since v1.6.1:
* Microcodes are now sorted by signature (ascending) and processor
flags mask (descending). Before, microcodes with the same
signature but different processor flags mask had unspecified
ordering.
* The .dat format loader was optimized to run a lot faster on
files that match the Intel layout exactly, and improved its
error detection.
* iucode_tool now flushes output data files to permanent storage
using fdatasync() before closing them, to better detect write
errors. This causes a performance hit, but it is much safer.
* Fix large file support (LFS) on 32-bit builds.
* Abort with an error when attempting to write more than 4GiB to a
cpio (early initramfs) archive, due to a limitation of that cpio
file format.
v1.6.1:
* Memory usage was greatly reduced when processing large microcode
bundles.
v1.6:
* Fix --scan-system to properly support mixed-stepping systems
(broken since v1.2, partially fixed in v1.5.2).
v1.5:
* There is a new option to write out microcodes, capable of writing
out every revision of every microcode: --write-all-named-to. All
other write out options will only output a single revision of a
microcode. Refer to the manpage for details.
v1.4:
* There is a new file type loader: -tr (recover microcode in
binary format), which searches for valid microcodes in Intel
binary format anywhere inside a binary file.
For standard, undamaged microcode data files, the default
binary loader (-tb) should be used instead: it is faster, and
it will properly complain of data file corruption. Refer to
the manpage for details.
v1.3:
* The .dat file loader was fixed to properly report IO errors, and
enhanced to report the number of the line that caused a syntax
error, as well as to accept comments at the end of a line.
Before, comments had to be on a line of their own. Note that
the .dat file loader assumes all comments start with / and span
to the end of line.
* It is now safe to call iucode_tool with stdin, stdout or stderr
closed: /dev/null will be used, instead.
v1.2.1:
* Due to gitorious.org planned shutdown at the end of 2015-05,
iucode-tool has a new home at gitlab:
https://gitlab.com/iucode-tool
The old home at Debian Alioth will remain as a backup location:
http://anonscm.debian.org/gitweb/?p=users/hmh/intel-microcode.git
v1.2:
* Scalability improvement for --scan-system: by compile-time
default, use the cpuid instruction directly on the running
processor, and assume all other cores have the same
signature. The code now depends on gcc's cpuid.h header.
v1.1:
* Working support for extended signature tables
v1.0.2:
* iucode-tool has a new home at gitorious:
https://gitorious.org/iucode-tool
The old home at Debian Alioth will remain as a backup location:
http://anonscm.debian.org/gitweb/?p=users/hmh/intel-microcode.git
v1.0:
* Added --write-earlyfw, useful to support microcode
updates during very early boot (kernel support added in
Linux v3.9)
* iucode_tool has implemented the most important features
it currently needs, bump the major version number to 1.
v0.9:
* Added -s! and --lose-date-filtering options, described in
the iucode_tool(8) manpage.
Generated by dwww version 1.16 on Mon Dec 15 21:04:53 CET 2025.