[ANNOUNCE] x86-cpuid-db: Release v2.0

From: Ahmed S. Darwish
Date: Tue Oct 08 2024 - 09:32:12 EST


Hi,

I'm happy to announce release 2.0 of the x86-cpuid-db project:

https://gitlab.com/x86-cpuid.org/x86-cpuid-db
https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/releases/v2.0

Changelog v2.0
--------------

- Introduce a new transformer, which generates one Linux kernel C header
file for all the cpuid leaves' bitfields.

(A single linux kernel C header file, with version tag on top, shall be
easier to maintain than multiple headers; Linux x86 PQ pending)

- Introduce the cpuidgen --kheaders option to invoke that transformer.

- Extend the cpuid database bitfields coverage:

- Add Transmeta vendor tags to the appropriate bitfields at leaves
0x0, 0x01, and from leaves 0x80000000 to 0x80000006.

- Add the Transmeta-specific CPUID leaves 0x03, and 0x80860000 to
0x80860007.

- Add Centaur/Zhaoxin leaves 0xc0000000 and 0xc0000001, along with
Zhoaxin's exclusive feature bits.

- Add some documentation in the schema for the <linux> annotation tag.

CPUID bitfields coverage
~~~~~~~~~~~~~~~~~~~~~~~~

In total, this release increases the x86-cpuid database bitfield
coverage to:

CPUID leaves: 63 leaves
CPUID bitfields: 907 entries

Changes to generated files styling
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Beside the new cpuid leaves and bitfields, the generated Linux kernel C
structures has changed from:

/*
* CPUID leaf 0
*/

struct leaf0_sl0 {
...;
};

/*
* CPUID leaf 7
*/

struct leaf7_sl0 {
...;
};

struct leaf7_sl1 {
...;
};

to:

/*
* Leaf 0x0
* Maximum standard leaf number + CPU vendor string
*/

struct leaf_0x0_0 {
...;
};

/*
* Leaf 0x7
* Extended CPU features enumeration
*/

struct leaf_0x7_0 {
...;
};

struct leaf_0x7_1 {
...;
};

Overall, this removes ambiguity for IDs like 0x16, and improves kernel
code greppability (x86 PQ pending).

Finally, the generated CSV and C header files can be quickly checked in
full from the release artifacts at:

https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/releases/v2.0

Thanks,

--
Ahmed S. Darwish
Linutronix GmbH