Comment 13 for bug 1444682

FWIW, here are some points to consider when implementing this:

1. A multi-processor system may contain processors that differ in stepping, or for other reasons (e.g. ARM big.LITTLE). This *is* quite common on x86 servers and workstations. So, you might have more than one processor model to list.

2. The "vendor_id" and "model name" fields are not enough to single out the exact processor model, or for that matter, the microcode it needs for Intel processors. It is common for Intel to NOT change the processor model names when there is a bump in stepping, for example. And there are the (unsupported and unsupportable) Engineering Sample processors that people keep buying from the black market, and later sell to unsuspecting third-parties. I don't know if AMD does better.

3. I suggest augmenting the vendor_id and model name fields with:

3a. Family, model, stepping information (cpuinfo fields "cpu family", "model", "stepping"). They are in decimal in /proc/cpuinfo, but nobody uses them like that, so they should be reported in hexadecimal. The kernel actually has a suggested way to display this, which it uses for /lib/firmware/intel-ucode/* files: "%02x-%02x-%02x" (family, model, stepping).

3b. Microcode platform id (cpuinfo field "platform_id", currently being added upstream to the next Linus kernel -- platform_id is a number in decimal). It is enough to add this field only when present: on AMD it will be absent, on Intel it will be present in the future.

I suggest these fields to be reported as a single line to identify the "hardware":
GenuineIntel, Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz; FMS: 06-2a-07

or, on a kernel that reports platform_id in /proc/cpuinfo:
GenuineIntel, Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz; FMS: 06-2a-07 (id: 1)

4. Current microcode version is *relevant* (when it is too old, even the installer will malfunction, as seen with Intel Broadwell and Skylake), so it might also be useful to have it upfront in the screen. This is present in cpuinfo as well (field "microcode"), and should be reported in hexadecimal.

NOTE: I suggest compressing repeated sequences of spaces in the "model name" field.