VirtualBox

Changeset 89236 in vbox for trunk/include


Ignore:
Timestamp:
May 24, 2021 9:30:08 AM (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

    r89235 r89236  
    23222322 * In accordance with the Intel spec.
    23232323 * @{ */
    2324 typedef enum VTDINTRFAULT
     2324typedef enum VTDIRFAULT
    23252325{
    23262326    /** Reserved bits invalid in remappable interrupt. */
    2327     VTDINTRFAULT_REMAPPABLE_INTR_RSVD = 0x20,
     2327    VTDIRFAULT_REMAPPABLE_INTR_RSVD = 0x20,
     2328
    23282329    /** Interrupt index for remappable interrupt exceeds table size or referenced
    23292330     *  address above host address width (HAW) */
    2330     VTDINTRFAULT_INTR_INDEX_INVALID = 0x21,
     2331    VTDIRFAULT_INTR_INDEX_INVALID = 0x21,
     2332
    23312333    /** The IRTE is not present.  */
    2332     VTDINTRFAULT_IRTE_NOT_PRESENT = 0x22,
     2334    VTDIRFAULT_IRTE_NOT_PRESENT = 0x22,
    23332335    /** Reading IRTE from memory failed. */
    2334     VTDINTRFAULT_IRTE_READ_FAILED = 0x23,
     2336    VTDIRFAULT_IRTE_READ_FAILED = 0x23,
    23352337    /** IRTE reserved bits invalid for an IRTE with Present bit set. */
    2336     VTDINTRFAULT_IRTE_PRESENT_RSVD = 0x24,
     2338    VTDIRFAULT_IRTE_PRESENT_RSVD = 0x24,
     2339
    23372340    /** Compatibility format interrupt (CFI) blocked due to EIME being enabled or CFIs
    23382341     *  were disabled. */
    2339     VTDINTRFAULT_CFI_BLOCKED = 0x25,
     2342    VTDIRFAULT_CFI_BLOCKED = 0x25,
     2343
    23402344    /** IRTE SID, SVT, SQ bits invalid for an IRTE with Present bit set. */
    2341     VTDINTRFAULT_IRTE_PRESENT_INVALID = 0x26,
     2345    VTDIRFAULT_IRTE_PRESENT_INVALID = 0x26,
     2346
    23422347    /** Reading posted interrupt descriptor (PID) failed. */
    2343     VTDINTRFAULT_PID_READ_FAILED = 0x27,
     2348    VTDIRFAULT_PID_READ_FAILED = 0x27,
    23442349    /** PID reserved bits invalid. */
    2345     VTDINTRFAULT_PID_RSVD = 0x28,
     2350    VTDIRFAULT_PID_RSVD = 0x28,
     2351
    23462352    /** Untranslated interrupt requested (without PASID) is invalid. */
    2347     VTDINTRFAULT_IR_WITHOUT_PASID_INVALID = 0x29
    2348 } VTDINTRFAULT;
    2349 AssertCompileSize(VTDINTRFAULT, 4);
     2353    VTDIRFAULT_IR_WITHOUT_PASID_INVALID = 0x29
     2354} VTDIRFAULT;
     2355AssertCompileSize(VTDIRFAULT, 4);
    23502356/** @} */
    23512357
     
    23542360 * In accordance with the Intel spec.
    23552361 * @{ */
    2356 typedef enum VTDADDRFAULT
     2362typedef enum VTDATFAULT
    23572363{
    23582364    /* Legacy root table faults (LRT). */
    2359     VTDADDRFAULT_LRT_1   = 0x8,
    2360     VTDADDRFAULT_LRT_2   = 0x1,
    2361     VTDADDRFAULT_LRT_3   = 0xa,
     2365    VTDATFAULT_LRT_1   = 0x8,
     2366    VTDATFAULT_LRT_2   = 0x1,
     2367    VTDATFAULT_LRT_3   = 0xa,
    23622368
    23632369    /* Legacy Context-Table Faults (LCT). */
    2364     VTDADDRFAULT_LCT_1   = 0x9,
    2365     VTDADDRFAULT_LCT_2   = 0x2,
    2366     VTDADDRFAULT_LCT_3   = 0xb,
    2367     VTDADDRFAULT_LCT_4_0 = 0x3,
    2368     VTDADDRFAULT_LCT_4_1 = 0x3,
    2369     VTDADDRFAULT_LCT_4_2 = 0x3,
    2370     VTDADDRFAULT_LCT_4_3 = 0x3,
    2371     VTDADDRFAULT_LCT_5   = 0xd,
     2370    VTDATFAULT_LCT_1   = 0x9,
     2371    VTDATFAULT_LCT_2   = 0x2,
     2372    VTDATFAULT_LCT_3   = 0xb,
     2373    VTDATFAULT_LCT_4_0 = 0x3,
     2374    VTDATFAULT_LCT_4_1 = 0x3,
     2375    VTDATFAULT_LCT_4_2 = 0x3,
     2376    VTDATFAULT_LCT_4_3 = 0x3,
     2377    VTDATFAULT_LCT_5   = 0xd,
    23722378
    23732379    /* Legacy Second-Level Table Faults (LSL). */
    2374     VTDADDRFAULT_LSL_1   = 0x7,
    2375     VTDADDRFAULT_LSL_2   = 0xc,
     2380    VTDATFAULT_LSL_1   = 0x7,
     2381    VTDATFAULT_LSL_2   = 0xc,
    23762382
    23772383    /* Legacy General Faults (LGN). */
    2378     VTDADDRFAULT_LGN_1_0 = 0x4,
    2379     VTDADDRFAULT_LGN_1_1 = 0x4,
    2380     VTDADDRFAULT_LGN_1_2 = 0x4,
    2381     VTDADDRFAULT_LGN_1_3 = 0x4,
    2382     VTDADDRFAULT_LGN_2   = 0x5,
    2383     VTDADDRFAULT_LGN_3   = 0x6,
    2384     VTDADDRFAULT_LGN_4   = 0xe,
     2384    VTDATFAULT_LGN_1_0 = 0x4,
     2385    VTDATFAULT_LGN_1_1 = 0x4,
     2386    VTDATFAULT_LGN_1_2 = 0x4,
     2387    VTDATFAULT_LGN_1_3 = 0x4,
     2388    VTDATFAULT_LGN_2   = 0x5,
     2389    VTDATFAULT_LGN_3   = 0x6,
     2390    VTDATFAULT_LGN_4   = 0xe,
    23852391
    23862392    /* Root-Table Address Register Faults (RTA). */
    2387     VTDADDRFAULT_RTA_1_0 = 0x30,
    2388     VTDADDRFAULT_RTA_1_1 = 0x30,
    2389     VTDADDRFAULT_RTA_1_2 = 0x30,
    2390     VTDADDRFAULT_RTA_1_3 = 0x30,
    2391     VTDADDRFAULT_RTA_2   = 0x31,
    2392     VTDADDRFAULT_RTA_3   = 0x32,
    2393     VTDADDRFAULT_RTA_4   = 0x33,
     2393    VTDATFAULT_RTA_1_0 = 0x30,
     2394    VTDATFAULT_RTA_1_1 = 0x30,
     2395    VTDATFAULT_RTA_1_2 = 0x30,
     2396    VTDATFAULT_RTA_1_3 = 0x30,
     2397    VTDATFAULT_RTA_2   = 0x31,
     2398    VTDATFAULT_RTA_3   = 0x32,
     2399    VTDATFAULT_RTA_4   = 0x33,
    23942400
    23952401    /* Scalable-Mode Root-Table Faults (SRT). */
    2396     VTDADDRFAULT_SRT_1   = 0x38,
    2397     VTDADDRFAULT_SRT_2   = 0x39,
    2398     VTDADDRFAULT_SRT_3   = 0x3a,
     2402    VTDATFAULT_SRT_1   = 0x38,
     2403    VTDATFAULT_SRT_2   = 0x39,
     2404    VTDATFAULT_SRT_3   = 0x3a,
    23992405
    24002406    /* Scalable-Mode Context-Table Faults (SCT). */
    2401     VTDADDRFAULT_SCT_1   = 0x40,
    2402     VTDADDRFAULT_SCT_2   = 0x41,
    2403     VTDADDRFAULT_SCT_3   = 0x42,
    2404     VTDADDRFAULT_SCT_4_0 = 0x43,
    2405     VTDADDRFAULT_SCT_4_1 = 0x43,
    2406     VTDADDRFAULT_SCT_4_2 = 0x43,
    2407     VTDADDRFAULT_SCT_5   = 0x44,
    2408     VTDADDRFAULT_SCT_6   = 0x45,
    2409     VTDADDRFAULT_SCT_7   = 0x46,
    2410     VTDADDRFAULT_SCT_8   = 0x47,
    2411     VTDADDRFAULT_SCT_9   = 0x48,
     2407    VTDATFAULT_SCT_1   = 0x40,
     2408    VTDATFAULT_SCT_2   = 0x41,
     2409    VTDATFAULT_SCT_3   = 0x42,
     2410    VTDATFAULT_SCT_4_0 = 0x43,
     2411    VTDATFAULT_SCT_4_1 = 0x43,
     2412    VTDATFAULT_SCT_4_2 = 0x43,
     2413    VTDATFAULT_SCT_5   = 0x44,
     2414    VTDATFAULT_SCT_6   = 0x45,
     2415    VTDATFAULT_SCT_7   = 0x46,
     2416    VTDATFAULT_SCT_8   = 0x47,
     2417    VTDATFAULT_SCT_9   = 0x48,
    24122418
    24132419    /* Scalable-Mode PASID-Directory Faults (SPD). */
    2414     VTDADDRFAULT_SPD_1   = 0x50,
    2415     VTDADDRFAULT_SPD_2   = 0x51,
    2416     VTDADDRFAULT_SPD_3   = 0x52,
     2420    VTDATFAULT_SPD_1   = 0x50,
     2421    VTDATFAULT_SPD_2   = 0x51,
     2422    VTDATFAULT_SPD_3   = 0x52,
    24172423
    24182424    /* Scalable-Mode PASID-Table Faults (SPT). */
    2419     VTDADDRFAULT_SPT_1   = 0x58,
    2420     VTDADDRFAULT_SPT_2   = 0x59,
    2421     VTDADDRFAULT_SPT_3   = 0x5a,
    2422     VTDADDRFAULT_SPT_4_0 = 0x5b,
    2423     VTDADDRFAULT_SPT_4_1 = 0x5b,
    2424     VTDADDRFAULT_SPT_4_2 = 0x5b,
    2425     VTDADDRFAULT_SPT_4_3 = 0x5b,
    2426     VTDADDRFAULT_SPT_4_4 = 0x5b,
    2427     VTDADDRFAULT_SPT_5   = 0x5c,
    2428     VTDADDRFAULT_SPT_6   = 0x5d,
     2425    VTDATFAULT_SPT_1   = 0x58,
     2426    VTDATFAULT_SPT_2   = 0x59,
     2427    VTDATFAULT_SPT_3   = 0x5a,
     2428    VTDATFAULT_SPT_4_0 = 0x5b,
     2429    VTDATFAULT_SPT_4_1 = 0x5b,
     2430    VTDATFAULT_SPT_4_2 = 0x5b,
     2431    VTDATFAULT_SPT_4_3 = 0x5b,
     2432    VTDATFAULT_SPT_4_4 = 0x5b,
     2433    VTDATFAULT_SPT_5   = 0x5c,
     2434    VTDATFAULT_SPT_6   = 0x5d,
    24292435
    24302436    /* Scalable-Mode First-Level Table Faults (SFL). */
    2431     VTDADDRFAULT_SFL_1   = 0x70,
    2432     VTDADDRFAULT_SFL_2   = 0x71,
    2433     VTDADDRFAULT_SFL_3   = 0x72,
    2434     VTDADDRFAULT_SFL_4   = 0x73,
    2435     VTDADDRFAULT_SFL_5   = 0x74,
    2436     VTDADDRFAULT_SFL_6   = 0x75,
    2437     VTDADDRFAULT_SFL_7   = 0x76,
    2438     VTDADDRFAULT_SFL_8   = 0x77,
    2439     VTDADDRFAULT_SFL_9   = 0x90,
    2440     VTDADDRFAULT_SFL_10  = 0x91,
     2437    VTDATFAULT_SFL_1   = 0x70,
     2438    VTDATFAULT_SFL_2   = 0x71,
     2439    VTDATFAULT_SFL_3   = 0x72,
     2440    VTDATFAULT_SFL_4   = 0x73,
     2441    VTDATFAULT_SFL_5   = 0x74,
     2442    VTDATFAULT_SFL_6   = 0x75,
     2443    VTDATFAULT_SFL_7   = 0x76,
     2444    VTDATFAULT_SFL_8   = 0x77,
     2445    VTDATFAULT_SFL_9   = 0x90,
     2446    VTDATFAULT_SFL_10  = 0x91,
    24412447
    24422448    /* Scalable-Mode Second-Level Table Faults (SSL). */
    2443     VTDADDRFAULT_SSL_1   = 0x78,
    2444     VTDADDRFAULT_SSL_2   = 0x79,
    2445     VTDADDRFAULT_SSL_3   = 0x7a,
    2446     VTDADDRFAULT_SSL_4   = 0x7b,
    2447     VTDADDRFAULT_SSL_5   = 0x7c,
    2448     VTDADDRFAULT_SSL_6   = 0x7d,
     2449    VTDATFAULT_SSL_1   = 0x78,
     2450    VTDATFAULT_SSL_2   = 0x79,
     2451    VTDATFAULT_SSL_3   = 0x7a,
     2452    VTDATFAULT_SSL_4   = 0x7b,
     2453    VTDATFAULT_SSL_5   = 0x7c,
     2454    VTDATFAULT_SSL_6   = 0x7d,
    24492455
    24502456    /* Scalable-Mode General Faults (SGN). */
    2451     VTDADDRFAULT_SGN_1   = 0x80,
    2452     VTDADDRFAULT_SGN_2   = 0x81,
    2453     VTDADDRFAULT_SGN_3   = 0x82,
    2454     VTDADDRFAULT_SGN_4_0 = 0x83,
    2455     VTDADDRFAULT_SGN_4_1 = 0x83,
    2456     VTDADDRFAULT_SGN_4_2 = 0x83,
    2457     VTDADDRFAULT_SGN_5   = 0x84,
    2458     VTDADDRFAULT_SGN_6   = 0x85,
    2459     VTDADDRFAULT_SGN_7   = 0x86,
    2460     VTDADDRFAULT_SGN_8   = 0x87,
    2461     VTDADDRFAULT_SGN_9   = 0x88,
    2462     VTDADDRFAULT_SGN_10  = 0x89
    2463 } VTDADDRFAULT;
    2464 AssertCompileSize(VTDADDRFAULT, 4);
     2457    VTDATFAULT_SGN_1   = 0x80,
     2458    VTDATFAULT_SGN_2   = 0x81,
     2459    VTDATFAULT_SGN_3   = 0x82,
     2460    VTDATFAULT_SGN_4_0 = 0x83,
     2461    VTDATFAULT_SGN_4_1 = 0x83,
     2462    VTDATFAULT_SGN_4_2 = 0x83,
     2463    VTDATFAULT_SGN_5   = 0x84,
     2464    VTDATFAULT_SGN_6   = 0x85,
     2465    VTDATFAULT_SGN_7   = 0x86,
     2466    VTDATFAULT_SGN_8   = 0x87,
     2467    VTDATFAULT_SGN_9   = 0x88,
     2468    VTDATFAULT_SGN_10  = 0x89
     2469} VTDATFAULT;
     2470AssertCompileSize(VTDATFAULT, 4);
    24652471/** @} */
    24662472
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