VirtualBox

Changeset 89201 in vbox for trunk/include


Ignore:
Timestamp:
May 20, 2021 2:05:41 PM (4 years ago)
Author:
vboxsync
Message:

Intel IOMMU: bugref:9967 Address translation, WIP.

File:
1 edited

Legend:

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

    r89001 r89201  
    15551555
    15561556/** Invalidation Queue Error Information. */
    1557 typedef enum VTD_IQEI_T
     1557typedef enum VTDIQEI
    15581558{
    1559     kIqei_InfoNotAvailable = 0,
    1560     kIqei_InvalidTailPointer,
    1561     kIqei_FetchDescriptorError,
    1562     kIqei_InvalidDescriptorType,
    1563     kIqei_RsvdFieldViolation,
    1564     kIqei_InvalidDescriptorWidth,
    1565     kIqei_QueueTailNotAligned,
    1566     kIqei_InvalidTtm
    1567 } VTD_IQEI_T;
     1559    VTDIQEI_INFO_NOT_AVAILABLE,
     1560    VTDIQEI_INVALID_TAIL_PTR,
     1561    VTDIQEI_FETCH_DESCRIPTOR_ERR,
     1562    VTDIQEI_INVALID_DESCRIPTOR_TYPE,
     1563    VTDIQEI_RSVD_FIELD_VIOLATION,
     1564    VTDIQEI_INVALID_DESCRIPTOR_WIDTH,
     1565    VTDIQEI_QUEUE_TAIL_MISALIGNED,
     1566    VTDIQEI_INVALID_TTM
     1567} VTDIQEI;
    15681568/** @} */
    15691569
     
    22982298 * In accordance with the Intel spec.
    22992299 * @{ */
    2300 typedef enum VTD_IR_FAULT_T
     2300typedef enum VTDINTRFAULT
    23012301{
    23022302    /** Reserved bits invalid in remappable interrupt. */
    2303     kIrf_Remappable_Intr_Rsvd = 0x20,
     2303    VTDINTRFAULT_REMAPPABLE_INTR_RSVD = 0x20,
    23042304    /** Interrupt index for remappable interrupt exceeds table size or referenced
    23052305     *  address above host address width (HAW) */
    2306     kIrf_Intr_Index_Invalid = 0x21,
     2306    VTDINTRFAULT_INTR_INDEX_INVALID = 0x21,
    23072307    /** The IRTE is not present.  */
    2308     kIrf_Irte_Not_Present = 0x22,
     2308    VTDINTRFAULT_IRTE_NOT_PRESENT = 0x22,
    23092309    /** Reading IRTE from memory failed. */
    2310     kIrf_Irte_Read_Failed = 0x23,
     2310    VTDINTRFAULT_IRTE_READ_FAILED = 0x23,
    23112311    /** IRTE reserved bits invalid for an IRTE with Present bit set. */
    2312     kIrf_Irte_Present_Rsvd = 0x24,
    2313     /** Compatibility format interrupt (CFI) blocked due to EIME is enabled or CFIs
    2314      *  disabled. */
    2315     kIrf_Cfi_Blocked = 0x25,
     2312    VTDINTRFAULT_IRTE_PRESENT_RSVD = 0x24,
     2313    /** Compatibility format interrupt (CFI) blocked due to EIME being enabled or CFIs
     2314     *  were disabled. */
     2315    VTDINTRFAULT_CFI_BLOCKED = 0x25,
    23162316    /** IRTE SID, SVT, SQ bits invalid for an IRTE with Present bit set. */
    2317     kIrf_Irte_Present_Invalid = 0x26,
     2317    VTDINTRFAULT_IRTE_PRESENT_INVALID = 0x26,
    23182318    /** Reading posted interrupt descriptor (PID) failed. */
    2319     kIrf_Pid_Read_Failed = 0x27,
     2319    VTDINTRFAULT_PID_READ_FAILED = 0x27,
    23202320    /** PID reserved bits invalid. */
    2321     kIrf_Pid_Rsvd = 0x28,
     2321    VTDINTRFAULT_PID_RSVD = 0x28,
    23222322    /** Untranslated interrupt requested (without PASID) is invalid. */
    2323     kIrf_Ir_Without_Pasid_Invalid = 0x29
    2324 } VTD_IR_FAULT_T;
     2323    VTDINTRFAULT_IR_WITHOUT_PASID_INVALID = 0x29
     2324} VTDINTRFAULT;
     2325/** @} */
     2326
     2327
     2328/** @name Address Translation Fault Conditions.
     2329 * In accordance with the Intel spec.
     2330 * @{ */
     2331typedef enum VTDADDRFAULT
     2332{
     2333    /* Legacy root table faults (LRT). */
     2334    VTDADDRFAULT_LRT_1   = 0x8,
     2335    VTDADDRFAULT_LRT_2   = 0x1,
     2336    VTDADDRFAULT_LRT_3   = 0xa,
     2337
     2338    /* Legacy Context-Table Faults (LCT). */
     2339    VTDADDRFAULT_LCT_1   = 0x9,
     2340    VTDADDRFAULT_LCT_2   = 0x2,
     2341    VTDADDRFAULT_LCT_3   = 0xb,
     2342    VTDADDRFAULT_LCT_4_0 = 0x3,
     2343    VTDADDRFAULT_LCT_4_1 = 0x3,
     2344    VTDADDRFAULT_LCT_4_2 = 0x3,
     2345    VTDADDRFAULT_LCT_4_3 = 0x3,
     2346    VTDADDRFAULT_LCT_5   = 0xd,
     2347
     2348    /* Legacy Second-Level Table Faults (LSL). */
     2349    VTDADDRFAULT_LSL_1   = 0x7,
     2350    VTDADDRFAULT_LSL_2   = 0xc,
     2351
     2352    /* Legacy General Faults (LGN). */
     2353    VTDADDRFAULT_LGN_1_0 = 0x4,
     2354    VTDADDRFAULT_LGN_1_1 = 0x4,
     2355    VTDADDRFAULT_LGN_1_2 = 0x4,
     2356    VTDADDRFAULT_LGN_1_3 = 0x4,
     2357    VTDADDRFAULT_LGN_2   = 0x5,
     2358    VTDADDRFAULT_LGN_3   = 0x6,
     2359    VTDADDRFAULT_LGN_4   = 0xe,
     2360
     2361    /* Root-Table Address Register Faults (RTA). */
     2362    VTDADDRFAULT_RTA_1_0 = 0x30,
     2363    VTDADDRFAULT_RTA_1_1 = 0x30,
     2364    VTDADDRFAULT_RTA_1_2 = 0x30,
     2365    VTDADDRFAULT_RTA_1_3 = 0x30,
     2366    VTDADDRFAULT_RTA_2   = 0x31,
     2367    VTDADDRFAULT_RTA_3   = 0x32,
     2368    VTDADDRFAULT_RTA_4   = 0x33,
     2369
     2370    /* Scalable-Mode Root-Table Faults (SRT). */
     2371    VTDADDRFAULT_SRT_1   = 0x38,
     2372    VTDADDRFAULT_SRT_2   = 0x39,
     2373    VTDADDRFAULT_SRT_3   = 0x3a,
     2374
     2375    /* Scalable-Mode Context-Table Faults (SCT). */
     2376    VTDADDRFAULT_SCT_1   = 0x40,
     2377    VTDADDRFAULT_SCT_2   = 0x41,
     2378    VTDADDRFAULT_SCT_3   = 0x42,
     2379    VTDADDRFAULT_SCT_4_0 = 0x43,
     2380    VTDADDRFAULT_SCT_4_1 = 0x43,
     2381    VTDADDRFAULT_SCT_4_2 = 0x43,
     2382    VTDADDRFAULT_SCT_5   = 0x44,
     2383    VTDADDRFAULT_SCT_6   = 0x45,
     2384    VTDADDRFAULT_SCT_7   = 0x46,
     2385    VTDADDRFAULT_SCT_8   = 0x47,
     2386    VTDADDRFAULT_SCT_9   = 0x48,
     2387
     2388    /* Scalable-Mode PASID-Directory Faults (SPD). */
     2389    VTDADDRFAULT_SPD_1   = 0x50,
     2390    VTDADDRFAULT_SPD_2   = 0x51,
     2391    VTDADDRFAULT_SPD_3   = 0x52,
     2392
     2393    /* Scalable-Mode PASID-Table Faults (SPT). */
     2394    VTDADDRFAULT_SPT_1   = 0x58,
     2395    VTDADDRFAULT_SPT_2   = 0x59,
     2396    VTDADDRFAULT_SPT_3   = 0x5a,
     2397    VTDADDRFAULT_SPT_4_0 = 0x5b,
     2398    VTDADDRFAULT_SPT_4_1 = 0x5b,
     2399    VTDADDRFAULT_SPT_4_2 = 0x5b,
     2400    VTDADDRFAULT_SPT_4_3 = 0x5b,
     2401    VTDADDRFAULT_SPT_4_4 = 0x5b,
     2402    VTDADDRFAULT_SPT_5   = 0x5c,
     2403    VTDADDRFAULT_SPT_6   = 0x5d,
     2404
     2405    /* Scalable-Mode First-Level Table Faults (SFL). */
     2406    VTDADDRFAULT_SFL_1   = 0x70,
     2407    VTDADDRFAULT_SFL_2   = 0x71,
     2408    VTDADDRFAULT_SFL_3   = 0x72,
     2409    VTDADDRFAULT_SFL_4   = 0x73,
     2410    VTDADDRFAULT_SFL_5   = 0x74,
     2411    VTDADDRFAULT_SFL_6   = 0x75,
     2412    VTDADDRFAULT_SFL_7   = 0x76,
     2413    VTDADDRFAULT_SFL_8   = 0x77,
     2414    VTDADDRFAULT_SFL_9   = 0x90,
     2415    VTDADDRFAULT_SFL_10  = 0x91,
     2416
     2417    /* Scalable-Mode Second-Level Table Faults (SSL). */
     2418    VTDADDRFAULT_SSL_1   = 0x78,
     2419    VTDADDRFAULT_SSL_2   = 0x79,
     2420    VTDADDRFAULT_SSL_3   = 0x7a,
     2421    VTDADDRFAULT_SSL_4   = 0x7b,
     2422    VTDADDRFAULT_SSL_5   = 0x7c,
     2423    VTDADDRFAULT_SSL_6   = 0x7d,
     2424
     2425    /* Scalable-Mode General Faults (SGN). */
     2426    VTDADDRFAULT_SGN_1   = 0x80,
     2427    VTDADDRFAULT_SGN_2   = 0x81,
     2428    VTDADDRFAULT_SGN_3   = 0x82,
     2429    VTDADDRFAULT_SGN_4_0 = 0x83,
     2430    VTDADDRFAULT_SGN_4_1 = 0x83,
     2431    VTDADDRFAULT_SGN_4_2 = 0x83,
     2432    VTDADDRFAULT_SGN_5   = 0x84,
     2433    VTDADDRFAULT_SGN_6   = 0x85,
     2434    VTDADDRFAULT_SGN_7   = 0x86,
     2435    VTDADDRFAULT_SGN_8   = 0x87,
     2436    VTDADDRFAULT_SGN_9   = 0x88,
     2437    VTDADDRFAULT_SGN_10  = 0x89
     2438} VTDATFAULT;
    23252439/** @} */
    23262440
Note: See TracChangeset for help on using the changeset viewer.

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