[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