Changeset 88696 in vbox
- Timestamp:
- Apr 26, 2021 7:21:24 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 144013
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/iommu-intel.h
r88695 r88696 1822 1822 1823 1823 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) 1854 RT_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 1887 RT_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) 1922 RT_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) 1937 RT_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) 1969 RT_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) 1985 RT_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) 2020 RT_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) 2032 RT_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) 2061 RT_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) 2076 RT_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) 2108 RT_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) 2143 RT_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) 2152 RT_BF_ASSERT_COMPILE_CHECKS(VTD_BF_1_INV_WAIT_DSC_, UINT64_C(0), UINT64_MAX, 2153 (RSVD_1_0, STADDR)); 2154 /** @} */ 2155 2156 1824 2157 /** @name ACPI_DMAR_F_XXX: DMA Remapping Reporting Structure Flags. 1825 2158 * In accordance with the Intel spec. … … 1929 2262 1930 2263 #endif /* !VBOX_INCLUDED_iommu_intel_h */ 2264
Note:
See TracChangeset
for help on using the changeset viewer.