[PATCH v1 09/12] tools/x86/kcpuid: Define Transmeta and Centaur index ranges

From: Ahmed S. Darwish
Date: Thu Mar 06 2025 - 15:52:53 EST


Explicitly define the CPUID index ranges for Transmeta (0x80860000) and
Centaur/Zhaoxin (0xc0000000).

Without these explicit definitions, their respective CPUID indices would
be skipped during CSV bitfield parsing.

Signed-off-by: Ahmed S. Darwish <darwi@xxxxxxxxxxxxx>
---
tools/arch/x86/kcpuid/kcpuid.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/tools/arch/x86/kcpuid/kcpuid.c b/tools/arch/x86/kcpuid/kcpuid.c
index 3153c8eba0c4..823226fbf089 100644
--- a/tools/arch/x86/kcpuid/kcpuid.c
+++ b/tools/arch/x86/kcpuid/kcpuid.c
@@ -83,6 +83,8 @@ static enum cpu_vendor this_cpu_vendor;
enum range_index {
RANGE_STD = 0, /* Standard */
RANGE_EXT = 0x80000000, /* Extended */
+ RANGE_TSM = 0x80860000, /* Transmeta */
+ RANGE_CTR = 0xc0000000, /* Centaur/Zhaoxin */
};

#define CPUID_INDEX_MASK 0xffff0000
@@ -105,6 +107,12 @@ static struct cpuid_range ranges[] = {
{ .index = RANGE_EXT,
.vendors = VENDOR_ALL,
},
+ { .index = RANGE_TSM,
+ .vendors = VENDOR_TRANSMETA,
+ },
+ { .index = RANGE_CTR,
+ .vendors = VENDOR_CENTAUR,
+ },
};

static char *range_to_str(struct cpuid_range *range)
@@ -112,6 +120,8 @@ static char *range_to_str(struct cpuid_range *range)
switch (range->index) {
case RANGE_STD: return "Standard";
case RANGE_EXT: return "Extended";
+ case RANGE_TSM: return "Transmeta";
+ case RANGE_CTR: return "Centaur";
default: return NULL;
}
}
--
2.48.1