Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Mar 2026 05:56:33 +0000
From:      Colin Percival <cperciva@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Cc:        Roger Pau =?utf-8?Q?Monn=C3=A9?= <roger.pau@citrix.com>
Subject:   git: 8c986d164531 - main - x86/cpuid: add CPUID flag for Extended Destination ID support
Message-ID:  <69c76d91.40b34.4774aa01@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=8c986d1645312487adf21a9104d667ac1e19c25f

commit 8c986d1645312487adf21a9104d667ac1e19c25f
Author:     Roger Pau Monné <roger.pau@citrix.com>
AuthorDate: 2022-02-18 08:17:47 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2026-03-28 05:54:37 +0000

    x86/cpuid: add CPUID flag for Extended Destination ID support
    
    Introduce the CPUID flag to be used in order to signal the support for
    using an extended destination ID in IO-APIC RTEs and MSI address
    fields. Such format expands the maximum target APIC ID from 255 to
    32768 without requiring the usage of interrupt remapping.
    
    The design document describing the feature can be found at:
    
    http://david.woodhou.se/15-bit-msi.pdf
    
    Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
    Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
 sys/contrib/xen/arch-x86/cpuid.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sys/contrib/xen/arch-x86/cpuid.h b/sys/contrib/xen/arch-x86/cpuid.h
index ce46305bee99..f2b2b3632c2d 100644
--- a/sys/contrib/xen/arch-x86/cpuid.h
+++ b/sys/contrib/xen/arch-x86/cpuid.h
@@ -102,6 +102,13 @@
 #define XEN_HVM_CPUID_IOMMU_MAPPINGS   (1u << 2)
 #define XEN_HVM_CPUID_VCPU_ID_PRESENT  (1u << 3) /* vcpu id is present in EBX */
 #define XEN_HVM_CPUID_DOMID_PRESENT    (1u << 4) /* domid is present in ECX */
+/*
+ * With interrupt format set to 0 (non-remappable) bits 55:49 from the
+ * IO-APIC RTE and bits 11:5 from the MSI address can be used to store
+ * high bits for the Destination ID. This expands the Destination ID
+ * field from 8 to 15 bits, allowing to target APIC IDs up 32768.
+ */
+#define XEN_HVM_CPUID_EXT_DEST_ID      (1u << 5)
 
 /*
  * Leaf 6 (0x40000x05)


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69c76d91.40b34.4774aa01>