Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Apr 2026 19:42:53 +0000
From:      Jean-=?utf-8?Q?S=C3=A9bast?==?utf-8?Q?ien P=C3=A9?=dron <dumbbell@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 2b2b8b90a1d4 - stable/15 - linuxkpi: Define `VFM_*()` macros in <asm/cpu_device_id.h>
Message-ID:  <69f3b0bd.3c1e6.5236b506@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch stable/15 has been updated by dumbbell:

URL: https://cgit.FreeBSD.org/src/commit/?id=2b2b8b90a1d45fcbd141535516b1c51869e89c66

commit 2b2b8b90a1d45fcbd141535516b1c51869e89c66
Author:     Jean-Sébastien Pédron <dumbbell@FreeBSD.org>
AuthorDate: 2026-04-22 16:23:16 +0000
Commit:     Jean-Sébastien Pédron <dumbbell@FreeBSD.org>
CommitDate: 2026-04-30 18:07:13 +0000

    linuxkpi: Define `VFM_*()` macros in <asm/cpu_device_id.h>
    
    They use another set of constants and macros in <asm/intel-family.h>.
    
    All these macros are defined regardless of the architecture, even though
    they are specific to x86. Perhaps we should restrict them using #ifdefs.
    
    The amdgpu DRM driver started to used `VFM_MODEL()` and the
    `INTEL_*LAKE*` constants in Linux 6.12.x.
    
    Reviewed by:    bz, olce
    Sponsored by:   The FreeBSD Foundation
    
    (cherry picked from commit 65dc0e9071a5ea206d6fbf070c974ebcfdea3680)
---
 .../linuxkpi/common/include/asm/cpu_device_id.h    | 33 ++++++++++++++++++++++
 .../linuxkpi/common/include/asm/intel-family.h     |  9 ++++++
 2 files changed, 42 insertions(+)

diff --git a/sys/compat/linuxkpi/common/include/asm/cpu_device_id.h b/sys/compat/linuxkpi/common/include/asm/cpu_device_id.h
new file mode 100644
index 000000000000..a01d63a75a7e
--- /dev/null
+++ b/sys/compat/linuxkpi/common/include/asm/cpu_device_id.h
@@ -0,0 +1,33 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2026 The FreeBSD Foundation
+ */
+
+#ifndef _LINUXKPI_ASM_CPU_DEVICE_ID_H_
+#define	_LINUXKPI_ASM_CPU_DEVICE_ID_H_
+
+#define	VFM_MODEL_BIT	0
+#define	VFM_FAMILY_BIT	8
+#define	VFM_VENDOR_BIT	16
+#define	VFM_RSVD_BIT	24
+
+#define	VFM_MODEL_MASK	GENMASK(VFM_FAMILY_BIT - 1, VFM_MODEL_BIT)
+#define	VFM_FAMILY_MASK	GENMASK(VFM_VENDOR_BIT - 1, VFM_FAMILY_BIT)
+#define	VFM_VENDOR_MASK	GENMASK(VFM_RSVD_BIT - 1, VFM_VENDOR_BIT)
+
+#define	VFM_MODEL(vfm)	(((vfm) & VFM_MODEL_MASK) >> VFM_MODEL_BIT)
+#define	VFM_FAMILY(vfm)	(((vfm) & VFM_FAMILY_MASK) >> VFM_FAMILY_BIT)
+#define	VFM_VENDOR(vfm)	(((vfm) & VFM_VENDOR_MASK) >> VFM_VENDOR_BIT)
+
+#define	VFM_MAKE(_vendor, _family, _model) (	\
+	((_model) << VFM_MODEL_BIT) |		\
+	((_family) << VFM_FAMILY_BIT) |		\
+	((_vendor) << VFM_VENDOR_BIT)		\
+)
+
+#include <linux/mod_devicetable.h>
+#include <asm/intel-family.h>
+#include <asm/processor.h>
+
+#endif /* _LINUXKPI_ASM_CPU_DEVICE_ID_H_ */
diff --git a/sys/compat/linuxkpi/common/include/asm/intel-family.h b/sys/compat/linuxkpi/common/include/asm/intel-family.h
index 91ad1d1a8ff3..db815e0c012d 100644
--- a/sys/compat/linuxkpi/common/include/asm/intel-family.h
+++ b/sys/compat/linuxkpi/common/include/asm/intel-family.h
@@ -1,5 +1,14 @@
 /* Public domain. */
 
+#define	IFM(_fam, _model)	VFM_MAKE(X86_VENDOR_INTEL, _fam, _model)
+
+#define	INTEL_ALDERLAKE			IFM(6, 0x97)
+#define	INTEL_ALDERLAKE_L		IFM(6, 0x9A)
+
+#define	INTEL_RAPTORLAKE		IFM(6, 0xB7)
+#define	INTEL_RAPTORLAKE_P		IFM(6, 0xBA)
+#define	INTEL_RAPTORLAKE_S		IFM(6, 0xBF)
+
 #define	INTEL_FAM6_ALDERLAKE	0x97
 #define	INTEL_FAM6_ALDERLAKE_L	0x9A
 


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69f3b0bd.3c1e6.5236b506>