RE: [PATCH v4 55/71] hwmon: (peci/cputemp) Switch to new Intel CPU model defines

From: Luck, Tony
Date: Wed Apr 24 2024 - 16:25:29 EST


>> New CPU #defines encode vendor and family as well as model.
>>
>> Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx>
>
> Acked-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Thanks.

>> /* Get the RESOLVED_CORES register value */
>> switch (peci_dev->info.model) {
....
>> + case VFM_MODEL(INTEL_ICELAKE_X):

Hmmm. I may have dashed too quickly to a simple solution here.
Looking at <linux/peci.h> I see:

struct peci_device {
struct device dev;
struct {
u16 family;
u8 model;
u8 peci_revision;
u8 socket_id;
} info;
u8 addr;
bool deleted;
};

So the family is available as well as the model.

This will need to be revisited when I start adding some non-family-6 CPUs
as "model" won't be a unique identifier (it already isn't, but there aren't any
meaningful collisions right now).

Is drivers/peci/device.c: peci_get_cpu_id() specific to Intel CPUs? It seems
to retrieve a value in the format of CPUID(EAX=1).EAX that would apply to
both Intel and AMD. Yet I don't see any checking of vendor id before looking
at the model id.

-Tony