VirtualBox

Changeset 88696 in vbox


Ignore:
Timestamp:
Apr 26, 2021 7:21:24 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
144013
Message:

Intel IOMMU: bugref:9967 Added invalidation descriptor bits.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/iommu-intel.h

    r88695 r88696  
    18221822
    18231823
     1824/** @name Context-Cache Invalidation Descriptor (cc_inv_dsc).
     1825 * In accordance with the Intel spec.
     1826 * @{ */
     1827/** Type (Lo). */
     1828#define VTD_BF_0_CC_INV_DSC_TYPE_LO_SHIFT                       0
     1829#define VTD_BF_0_CC_INV_DSC_TYPE_LO_MASK                        UINT64_C(0x000000000000000f)
     1830/** G: Granularity. */
     1831#define VTD_BF_0_CC_INV_DSC_G_SHIFT                             4
     1832#define VTD_BF_0_CC_INV_DSC_G_MASK                              UINT64_C(0x0000000000000030)
     1833/** R: Reserved (bits 8:6). */
     1834#define VTD_BF_0_CC_INV_DSC_RSVD_8_6_SHIFT                      6
     1835#define VTD_BF_0_CC_INV_DSC_RSVD_8_6_MASK                       UINT64_C(0x00000000000001c0)
     1836/** Type (Hi). */
     1837#define VTD_BF_0_CC_INV_DSC_TYPE_HI_SHIFT                       9
     1838#define VTD_BF_0_CC_INV_DSC_TYPE_HI_MASK                        UINT64_C(0x0000000000000e00)
     1839/** R: Reserved (bits 15:12). */
     1840#define VTD_BF_0_CC_INV_DSC_RSVD_15_12_SHIFT                    12
     1841#define VTD_BF_0_CC_INV_DSC_RSVD_15_12_MASK                     UINT64_C(0x000000000000f000)
     1842/** DID: Domain Id. */
     1843#define VTD_BF_0_CC_INV_DSC_DID_SHIFT                           16
     1844#define VTD_BF_0_CC_INV_DSC_DID_MASK                            UINT64_C(0x00000000ffff0000)
     1845/** SID: Source Id. */
     1846#define VTD_BF_0_CC_INV_DSC_SID_SHIFT                           32
     1847#define VTD_BF_0_CC_INV_DSC_SID_MASK                            UINT64_C(0x0000ffff00000000)
     1848/** FM: Function Mask. */
     1849#define VTD_BF_0_CC_INV_DSC_FM_SHIFT                            48
     1850#define VTD_BF_0_CC_INV_DSC_FM_MASK                             UINT64_C(0x0003000000000000)
     1851/** R: Reserved (bits 63:50). */
     1852#define VTD_BF_0_CC_INV_DSC_RSVD_63_50_SHIFT                    50
     1853#define VTD_BF_0_CC_INV_DSC_RSVD_63_50_MASK                     UINT64_C(0xfffc000000000000)
     1854RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_0_CC_INV_DSC_, UINT64_C(0), UINT64_MAX,
     1855                            (TYPE_LO, G, RSVD_8_6, TYPE_HI, RSVD_15_12, DID, SID, FM, RSVD_63_50));
     1856/** @} */
     1857
     1858
     1859/** @name PASID-Cache Invalidation Descriptor (pc_inv_dsc).
     1860 * In accordance with the Intel spec.
     1861 * @{ */
     1862/** Type (Lo). */
     1863#define VTD_BF_0_PC_INV_DSC_TYPE_LO_SHIFT                       0
     1864#define VTD_BF_0_PC_INV_DSC_TYPE_LO_MASK                        UINT64_C(0x000000000000000f)
     1865/** G: Granularity. */
     1866#define VTD_BF_0_PC_INV_DSC_G_SHIFT                             4
     1867#define VTD_BF_0_PC_INV_DSC_G_MASK                              UINT64_C(0x0000000000000030)
     1868/** R: Reserved (bits 8:6). */
     1869#define VTD_BF_0_PC_INV_DSC_RSVD_8_6_SHIFT                      6
     1870#define VTD_BF_0_PC_INV_DSC_RSVD_8_6_MASK                       UINT64_C(0x00000000000001c0)
     1871/** Type (Hi). */
     1872#define VTD_BF_0_PC_INV_DSC_TYPE_HI_SHIFT                       9
     1873#define VTD_BF_0_PC_INV_DSC_TYPE_HI_MASK                        UINT64_C(0x0000000000000e00)
     1874/** R: Reserved (bits 15:12). */
     1875#define VTD_BF_0_PC_INV_DSC_RSVD_15_12_SHIFT                    12
     1876#define VTD_BF_0_PC_INV_DSC_RSVD_15_12_MASK                     UINT64_C(0x000000000000f000)
     1877/** DID: Domain Id. */
     1878#define VTD_BF_0_PC_INV_DSC_DID_SHIFT                           16
     1879#define VTD_BF_0_PC_INV_DSC_DID_MASK                            UINT64_C(0x00000000ffff0000)
     1880/** PASID: Process Address-Space Id. */
     1881#define VTD_BF_0_PC_INV_DSC_PASID_SHIFT                         32
     1882#define VTD_BF_0_PC_INV_DSC_PASID_MASK                          UINT64_C(0x000fffff00000000)
     1883/** R: Reserved (bits 63:52). */
     1884#define VTD_BF_0_PC_INV_DSC_RSVD_63_52_SHIFT                    52
     1885#define VTD_BF_0_PC_INV_DSC_RSVD_63_52_MASK                     UINT64_C(0xfff0000000000000)
     1886
     1887RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_0_PC_INV_DSC_, UINT64_C(0), UINT64_MAX,
     1888                            (TYPE_LO, G, RSVD_8_6, TYPE_HI, RSVD_15_12, DID, PASID, RSVD_63_52));
     1889/** @} */
     1890
     1891
     1892/** @name IOTLB Invalidate Descriptor (iotlb_inv_dsc).
     1893 * In accordance with the Intel spec.
     1894 * @{ */
     1895/** Type (Lo). */
     1896#define VTD_BF_0_IOTLB_INV_DSC_TYPE_LO_SHIFT                    0
     1897#define VTD_BF_0_IOTLB_INV_DSC_TYPE_LO_MASK                     UINT64_C(0x000000000000000f)
     1898/** G: Granularity. */
     1899#define VTD_BF_0_IOTLB_INV_DSC_G_SHIFT                          4
     1900#define VTD_BF_0_IOTLB_INV_DSC_G_MASK                           UINT64_C(0x0000000000000030)
     1901/** DW: Drain Writes. */
     1902#define VTD_BF_0_IOTLB_INV_DSC_DW_SHIFT                         6
     1903#define VTD_BF_0_IOTLB_INV_DSC_DW_MASK                          UINT64_C(0x0000000000000040)
     1904/** DR: Drain Reads. */
     1905#define VTD_BF_0_IOTLB_INV_DSC_DR_SHIFT                         7
     1906#define VTD_BF_0_IOTLB_INV_DSC_DR_MASK                          UINT64_C(0x0000000000000080)
     1907/** R: Reserved (bit 8). */
     1908#define VTD_BF_0_IOTLB_INV_DSC_RSVD_8_SHIFT                     8
     1909#define VTD_BF_0_IOTLB_INV_DSC_RSVD_8_MASK                      UINT64_C(0x0000000000000100)
     1910/** Type (Hi). */
     1911#define VTD_BF_0_IOTLB_INV_DSC_TYPE_HI_SHIFT                    9
     1912#define VTD_BF_0_IOTLB_INV_DSC_TYPE_HI_MASK                     UINT64_C(0x0000000000000e00)
     1913/** R: Reserved (bits 15:12). */
     1914#define VTD_BF_0_IOTLB_INV_DSC_RSVD_15_12_SHIFT                 12
     1915#define VTD_BF_0_IOTLB_INV_DSC_RSVD_15_12_MASK                  UINT64_C(0x000000000000f000)
     1916/** DID: Domain Id. */
     1917#define VTD_BF_0_IOTLB_INV_DSC_DID_SHIFT                        16
     1918#define VTD_BF_0_IOTLB_INV_DSC_DID_MASK                         UINT64_C(0x00000000ffff0000)
     1919/** R: Reserved (bits 63:32).. */
     1920#define VTD_BF_0_IOTLB_INV_DSC_RSVD_63_32_SHIFT                 32
     1921#define VTD_BF_0_IOTLB_INV_DSC_RSVD_63_32_MASK                  UINT64_C(0xffffffff00000000)
     1922RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_0_IOTLB_INV_DSC_, UINT64_C(0), UINT64_MAX,
     1923                            (TYPE_LO, G, DW, DR, RSVD_8, TYPE_HI, RSVD_15_12, DID, RSVD_63_32));
     1924
     1925/** AM: Address Mask. */
     1926#define VTD_BF_1_IOTLB_INV_DSC_AM_SHIFT                         0
     1927#define VTD_BF_1_IOTLB_INV_DSC_AM_MASK                          UINT64_C(0x000000000000003f)
     1928/** IH: Invalidation Hint. */
     1929#define VTD_BF_1_IOTLB_INV_DSC_IH_SHIFT                         6
     1930#define VTD_BF_1_IOTLB_INV_DSC_IH_MASK                          UINT64_C(0x0000000000000040)
     1931/** R: Reserved (bits 11:7). */
     1932#define VTD_BF_1_IOTLB_INV_DSC_RSVD_11_7_SHIFT                  7
     1933#define VTD_BF_1_IOTLB_INV_DSC_RSVD_11_7_MASK                   UINT64_C(0x0000000000000f80)
     1934/** ADDR: Address. */
     1935#define VTD_BF_1_IOTLB_INV_DSC_ADDR_SHIFT                       12
     1936#define VTD_BF_1_IOTLB_INV_DSC_ADDR_MASK                        UINT64_C(0xfffffffffffff000)
     1937RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_1_IOTLB_INV_DSC_, UINT64_C(0), UINT64_MAX,
     1938                            (AM, IH, RSVD_11_7, ADDR));
     1939/** @} */
     1940
     1941
     1942/** @name PASID-based IOTLB Invalidate Descriptor (p_iotlb_inv_dsc).
     1943 * In accordance with the Intel spec.
     1944 * @{ */
     1945/** Type (Lo). */
     1946#define VTD_BF_0_P_IOTLB_INV_DSC_TYPE_LO_SHIFT                  0
     1947#define VTD_BF_0_P_IOTLB_INV_DSC_TYPE_LO_MASK                   UINT64_C(0x000000000000000f)
     1948/** G: Granularity. */
     1949#define VTD_BF_0_P_IOTLB_INV_DSC_G_SHIFT                        4
     1950#define VTD_BF_0_P_IOTLB_INV_DSC_G_MASK                         UINT64_C(0x0000000000000030)
     1951/** R: Reserved (bits 8:6). */
     1952#define VTD_BF_0_P_IOTLB_INV_DSC_RSVD_8_6_SHIFT                 6
     1953#define VTD_BF_0_P_IOTLB_INV_DSC_RSVD_8_6_MASK                  UINT64_C(0x00000000000001c0)
     1954/** Type (Hi). */
     1955#define VTD_BF_0_P_IOTLB_INV_DSC_TYPE_HI_SHIFT                  9
     1956#define VTD_BF_0_P_IOTLB_INV_DSC_TYPE_HI_MASK                   UINT64_C(0x0000000000000e00)
     1957/** R: Reserved (bits 15:12). */
     1958#define VTD_BF_0_P_IOTLB_INV_DSC_RSVD_15_12_SHIFT               12
     1959#define VTD_BF_0_P_IOTLB_INV_DSC_RSVD_15_12_MASK                UINT64_C(0x000000000000f000)
     1960/** DID: Domain Id. */
     1961#define VTD_BF_0_P_IOTLB_INV_DSC_DID_SHIFT                      16
     1962#define VTD_BF_0_P_IOTLB_INV_DSC_DID_MASK                       UINT64_C(0x00000000ffff0000)
     1963/** PASID: Process Address-Space Id. */
     1964#define VTD_BF_0_P_IOTLB_INV_DSC_PASID_SHIFT                    32
     1965#define VTD_BF_0_P_IOTLB_INV_DSC_PASID_MASK                     UINT64_C(0x000fffff00000000)
     1966/** R: Reserved (bits 63:52). */
     1967#define VTD_BF_0_P_IOTLB_INV_DSC_RSVD_63_52_SHIFT               52
     1968#define VTD_BF_0_P_IOTLB_INV_DSC_RSVD_63_52_MASK                UINT64_C(0xfff0000000000000)
     1969RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_0_P_IOTLB_INV_DSC_, UINT64_C(0), UINT64_MAX,
     1970                            (TYPE_LO, G, RSVD_8_6, TYPE_HI, RSVD_15_12, DID, PASID, RSVD_63_52));
     1971
     1972
     1973/** AM: Address Mask. */
     1974#define VTD_BF_1_P_IOTLB_INV_DSC_AM_SHIFT                       0
     1975#define VTD_BF_1_P_IOTLB_INV_DSC_AM_MASK                        UINT64_C(0x000000000000003f)
     1976/** IH: Invalidation Hint. */
     1977#define VTD_BF_1_P_IOTLB_INV_DSC_IH_SHIFT                       6
     1978#define VTD_BF_1_P_IOTLB_INV_DSC_IH_MASK                        UINT64_C(0x0000000000000040)
     1979/** R: Reserved (bits 11:7). */
     1980#define VTD_BF_1_P_IOTLB_INV_DSC_RSVD_11_7_SHIFT                7
     1981#define VTD_BF_1_P_IOTLB_INV_DSC_RSVD_11_7_MASK                 UINT64_C(0x0000000000000f80)
     1982/** ADDR: Address. */
     1983#define VTD_BF_1_P_IOTLB_INV_DSC_ADDR_SHIFT                     12
     1984#define VTD_BF_1_P_IOTLB_INV_DSC_ADDR_MASK                      UINT64_C(0xfffffffffffff000)
     1985RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_1_P_IOTLB_INV_DSC_, UINT64_C(0), UINT64_MAX,
     1986                            (AM, IH, RSVD_11_7, ADDR));
     1987/** @} */
     1988
     1989
     1990/** @name Device-TLB Invalidate Descriptor (dev_tlb_inv_dsc).
     1991 * In accordance with the Intel spec.
     1992 * @{ */
     1993/** Type (Lo). */
     1994#define VTD_BF_0_DEV_TLB_INV_DSC_TYPE_LO_SHIFT                  0
     1995#define VTD_BF_0_DEV_TLB_INV_DSC_TYPE_LO_MASK                   UINT64_C(0x000000000000000f)
     1996/** R: Reserved (bits 8:4). */
     1997#define VTD_BF_0_DEV_TLB_INV_DSC_RSVD_8_4_SHIFT                 4
     1998#define VTD_BF_0_DEV_TLB_INV_DSC_RSVD_8_4_MASK                  UINT64_C(0x00000000000001f0)
     1999/** Type (Hi). */
     2000#define VTD_BF_0_DEV_TLB_INV_DSC_TYPE_HI_SHIFT                  9
     2001#define VTD_BF_0_DEV_TLB_INV_DSC_TYPE_HI_MASK                   UINT64_C(0x0000000000000e00)
     2002/** PFSID: Physical-Function Source Id (Lo). */
     2003#define VTD_BF_0_DEV_TLB_INV_DSC_PFSID_LO_SHIFT                 12
     2004#define VTD_BF_0_DEV_TLB_INV_DSC_PFSID_LO_MASK                  UINT64_C(0x000000000000f000)
     2005/** MIP: Max Invalidations Pending. */
     2006#define VTD_BF_0_DEV_TLB_INV_DSC_MIP_SHIFT                      16
     2007#define VTD_BF_0_DEV_TLB_INV_DSC_MIP_MASK                       UINT64_C(0x00000000001f0000)
     2008/** R: Reserved (bits 31:21). */
     2009#define VTD_BF_0_DEV_TLB_INV_DSC_RSVD_31_21_SHIFT               21
     2010#define VTD_BF_0_DEV_TLB_INV_DSC_RSVD_31_21_MASK                UINT64_C(0x00000000ffe00000)
     2011/** SID: Source Id. */
     2012#define VTD_BF_0_DEV_TLB_INV_DSC_SID_SHIFT                      32
     2013#define VTD_BF_0_DEV_TLB_INV_DSC_SID_MASK                       UINT64_C(0x0000ffff00000000)
     2014/** R: Reserved (bits 51:48). */
     2015#define VTD_BF_0_DEV_TLB_INV_DSC_RSVD_51_48_SHIFT               48
     2016#define VTD_BF_0_DEV_TLB_INV_DSC_RSVD_51_48_MASK                UINT64_C(0x000f000000000000)
     2017/** PFSID: Physical-Function Source Id (Hi). */
     2018#define VTD_BF_0_DEV_TLB_INV_DSC_PFSID_HI_SHIFT                 52
     2019#define VTD_BF_0_DEV_TLB_INV_DSC_PFSID_HI_MASK                  UINT64_C(0xfff0000000000000)
     2020RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_0_DEV_TLB_INV_DSC_, UINT64_C(0), UINT64_MAX,
     2021                            (TYPE_LO, RSVD_8_4, TYPE_HI, PFSID_LO, MIP, RSVD_31_21, SID, RSVD_51_48, PFSID_HI));
     2022
     2023/** S: Size. */
     2024#define VTD_BF_1_DEV_TLB_INV_DSC_S_SHIFT                        0
     2025#define VTD_BF_1_DEV_TLB_INV_DSC_S_MASK                         UINT64_C(0x0000000000000001)
     2026/** R: Reserved (bits 11:1). */
     2027#define VTD_BF_1_DEV_TLB_INV_DSC_RSVD_11_1_SHIFT                1
     2028#define VTD_BF_1_DEV_TLB_INV_DSC_RSVD_11_1_MASK                 UINT64_C(0x0000000000000ffe)
     2029/** ADDR: Address. */
     2030#define VTD_BF_1_DEV_TLB_INV_DSC_ADDR_SHIFT                     12
     2031#define VTD_BF_1_DEV_TLB_INV_DSC_ADDR_MASK                      UINT64_C(0xfffffffffffff000)
     2032RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_1_DEV_TLB_INV_DSC_, UINT64_C(0), UINT64_MAX,
     2033                            (S, RSVD_11_1, ADDR));
     2034/** @} */
     2035
     2036
     2037/** @name PASID-based-device-TLB Invalidate Descriptor (p_dev_tlb_inv_dsc).
     2038 * In accordance with the Intel spec.
     2039 * @{ */
     2040/** Type (Lo). */
     2041#define VTD_BF_0_P_DEV_TLB_INV_DSC_TYPE_LO_SHIFT                0
     2042#define VTD_BF_0_P_DEV_TLB_INV_DSC_TYPE_LO_MASK                 UINT64_C(0x000000000000000f)
     2043/** MIP: Max Invalidations Pending. */
     2044#define VTD_BF_0_P_DEV_TLB_INV_DSC_MIP_SHIFT                    4
     2045#define VTD_BF_0_P_DEV_TLB_INV_DSC_MIP_MASK                     UINT64_C(0x00000000000001f0)
     2046/** Type (Hi). */
     2047#define VTD_BF_0_P_DEV_TLB_INV_DSC_TYPE_HI_SHIFT                9
     2048#define VTD_BF_0_P_DEV_TLB_INV_DSC_TYPE_HI_MASK                 UINT64_C(0x0000000000000e00)
     2049/** PFSID: Physical-Function Source Id (Lo). */
     2050#define VTD_BF_0_P_DEV_TLB_INV_DSC_PFSID_LO_SHIFT               12
     2051#define VTD_BF_0_P_DEV_TLB_INV_DSC_PFSID_LO_MASK                UINT64_C(0x000000000000f000)
     2052/** SID: Source Id. */
     2053#define VTD_BF_0_P_DEV_TLB_INV_DSC_SID_SHIFT                    16
     2054#define VTD_BF_0_P_DEV_TLB_INV_DSC_SID_MASK                     UINT64_C(0x00000000ffff0000)
     2055/** PASID: Process Address-Space Id. */
     2056#define VTD_BF_0_P_DEV_TLB_INV_DSC_PASID_SHIFT                  32
     2057#define VTD_BF_0_P_DEV_TLB_INV_DSC_PASID_MASK                   UINT64_C(0x000fffff00000000)
     2058/** PFSID: Physical-Function Source Id (Hi). */
     2059#define VTD_BF_0_P_DEV_TLB_INV_DSC_PFSID_HI_SHIFT               52
     2060#define VTD_BF_0_P_DEV_TLB_INV_DSC_PFSID_HI_MASK                UINT64_C(0xfff0000000000000)
     2061RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_0_P_DEV_TLB_INV_DSC_, UINT64_C(0), UINT64_MAX,
     2062                            (TYPE_LO, MIP, TYPE_HI, PFSID_LO, SID, PASID, PFSID_HI));
     2063
     2064/** G: Granularity. */
     2065#define VTD_BF_1_P_DEV_TLB_INV_DSC_G_SHIFT                      0
     2066#define VTD_BF_1_P_DEV_TLB_INV_DSC_G_MASK                       UINT64_C(0x0000000000000001)
     2067/** R: Reserved (bits 10:1). */
     2068#define VTD_BF_1_P_DEV_TLB_INV_DSC_RSVD_10_1_SHIFT              1
     2069#define VTD_BF_1_P_DEV_TLB_INV_DSC_RSVD_10_1_MASK               UINT64_C(0x00000000000007fe)
     2070/** S: Size. */
     2071#define VTD_BF_1_P_DEV_TLB_INV_DSC_S_SHIFT                      11
     2072#define VTD_BF_1_P_DEV_TLB_INV_DSC_S_MASK                       UINT64_C(0x0000000000000800)
     2073/** ADDR: Address. */
     2074#define VTD_BF_1_P_DEV_TLB_INV_DSC_ADDR_SHIFT                   12
     2075#define VTD_BF_1_P_DEV_TLB_INV_DSC_ADDR_MASK                    UINT64_C(0xfffffffffffff000)
     2076RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_1_P_DEV_TLB_INV_DSC_, UINT64_C(0), UINT64_MAX,
     2077                            (G, RSVD_10_1, S, ADDR));
     2078/** @} */
     2079
     2080
     2081/** @name Interrupt Entry Cache Invalidate Descriptor (iec_inv_dsc).
     2082 * In accordance with the Intel spec.
     2083 * @{ */
     2084/** Type (Lo). */
     2085#define VTD_BF_0_IEC_INV_DSC_TYPE_LO_SHIFT                      0
     2086#define VTD_BF_0_IEC_INV_DSC_TYPE_LO_MASK                       UINT64_C(0x000000000000000f)
     2087/** G: Granularity. */
     2088#define VTD_BF_0_IEC_INV_DSC_G_SHIFT                            4
     2089#define VTD_BF_0_IEC_INV_DSC_G_MASK                             UINT64_C(0x0000000000000010)
     2090/** R: Reserved (bits 8:5). */
     2091#define VTD_BF_0_IEC_INV_DSC_RSVD_8_5_SHIFT                     5
     2092#define VTD_BF_0_IEC_INV_DSC_RSVD_8_5_MASK                      UINT64_C(0x00000000000001e0)
     2093/** Type (Hi). */
     2094#define VTD_BF_0_IEC_INV_DSC_TYPE_HI_SHIFT                      9
     2095#define VTD_BF_0_IEC_INV_DSC_TYPE_HI_MASK                       UINT64_C(0x0000000000000e00)
     2096/** R: Reserved (bits 26:12). */
     2097#define VTD_BF_0_IEC_INV_DSC_RSVD_26_12_SHIFT                   12
     2098#define VTD_BF_0_IEC_INV_DSC_RSVD_26_12_MASK                    UINT64_C(0x0000000007fff000)
     2099/** IM: Index Mask. */
     2100#define VTD_BF_0_IEC_INV_DSC_IM_SHIFT                           27
     2101#define VTD_BF_0_IEC_INV_DSC_IM_MASK                            UINT64_C(0x00000000f8000000)
     2102/** IIDX: Interrupt Index. */
     2103#define VTD_BF_0_IEC_INV_DSC_IIDX_SHIFT                         32
     2104#define VTD_BF_0_IEC_INV_DSC_IIDX_MASK                          UINT64_C(0x0000ffff00000000)
     2105/** R: Reserved (bits 63:48). */
     2106#define VTD_BF_0_IEC_INV_DSC_RSVD_63_48_SHIFT                   48
     2107#define VTD_BF_0_IEC_INV_DSC_RSVD_63_48_MASK                    UINT64_C(0xffff000000000000)
     2108RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_0_IEC_INV_DSC_, UINT64_C(0), UINT64_MAX,
     2109                            (TYPE_LO, G, RSVD_8_5, TYPE_HI, RSVD_26_12, IM, IIDX, RSVD_63_48));
     2110/** @} */
     2111
     2112
     2113/** @name Invalidation Wait Descriptor (inv_wait_dsc).
     2114 * In accordance with the Intel spec.
     2115 * @{ */
     2116/** Type (Lo). */
     2117#define VTD_BF_0_INV_WAIT_DSC_TYPE_LO_SHIFT                     0
     2118#define VTD_BF_0_INV_WAIT_DSC_TYPE_LO_MASK                      UINT64_C(0x000000000000000f)
     2119/** IF: Interrupt Flag. */
     2120#define VTD_BF_0_INV_WAIT_DSC_IF_SHIFT                          4
     2121#define VTD_BF_0_INV_WAIT_DSC_IF_MASK                           UINT64_C(0x0000000000000010)
     2122/** SW: Status Write. */
     2123#define VTD_BF_0_INV_WAIT_DSC_SW_SHIFT                          5
     2124#define VTD_BF_0_INV_WAIT_DSC_SW_MASK                           UINT64_C(0x0000000000000020)
     2125/** FN: Fence Flag. */
     2126#define VTD_BF_0_INV_WAIT_DSC_FN_SHIFT                          6
     2127#define VTD_BF_0_INV_WAIT_DSC_FN_MASK                           UINT64_C(0x0000000000000040)
     2128/** PD: Page-Request Drain. */
     2129#define VTD_BF_0_INV_WAIT_DSC_PD_SHIFT                          7
     2130#define VTD_BF_0_INV_WAIT_DSC_PD_MASK                           UINT64_C(0x0000000000000080)
     2131/** R: Reserved (bit 8). */
     2132#define VTD_BF_0_INV_WAIT_DSC_RSVD_8_SHIFT                      8
     2133#define VTD_BF_0_INV_WAIT_DSC_RSVD_8_MASK                       UINT64_C(0x0000000000000100)
     2134/** Type (Hi). */
     2135#define VTD_BF_0_INV_WAIT_DSC_TYPE_HI_SHIFT                     9
     2136#define VTD_BF_0_INV_WAIT_DSC_TYPE_HI_MASK                      UINT64_C(0x0000000000000e00)
     2137/** R: Reserved (bits 31:12). */
     2138#define VTD_BF_0_INV_WAIT_DSC_RSVD_31_12_SHIFT                  12
     2139#define VTD_BF_0_INV_WAIT_DSC_RSVD_31_12_MASK                   UINT64_C(0x00000000fffff000)
     2140/** STDATA: Status Data. */
     2141#define VTD_BF_0_INV_WAIT_DSC_STDATA_SHIFT                      32
     2142#define VTD_BF_0_INV_WAIT_DSC_STDATA_MASK                       UINT64_C(0xffffffff00000000)
     2143RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_0_INV_WAIT_DSC_, UINT64_C(0), UINT64_MAX,
     2144                            (TYPE_LO, IF, SW, FN, PD, RSVD_8, TYPE_HI, RSVD_31_12, STDATA));
     2145
     2146/** R: Reserved (bits 1:0). */
     2147#define VTD_BF_1_INV_WAIT_DSC_RSVD_1_0_SHIFT                    0
     2148#define VTD_BF_1_INV_WAIT_DSC_RSVD_1_0_MASK                     UINT64_C(0x0000000000000003)
     2149/** STADDR: Status Address. */
     2150#define VTD_BF_1_INV_WAIT_DSC_STADDR_SHIFT                      2
     2151#define VTD_BF_1_INV_WAIT_DSC_STADDR_MASK                       UINT64_C(0xfffffffffffffffc)
     2152RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_1_INV_WAIT_DSC_, UINT64_C(0), UINT64_MAX,
     2153                            (RSVD_1_0, STADDR));
     2154/** @} */
     2155
     2156
    18242157/** @name ACPI_DMAR_F_XXX: DMA Remapping Reporting Structure Flags.
    18252158 * In accordance with the Intel spec.
     
    19292262
    19302263#endif /* !VBOX_INCLUDED_iommu_intel_h */
     2264
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette