VirtualBox

Changeset 87241 in vbox


Ignore:
Timestamp:
Jan 13, 2021 3:56:05 PM (4 years ago)
Author:
vboxsync
Message:

AMD IOMMU: bugref:9654 Main/API: AMD IOMMU support.

Location:
trunk
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/settings.h

    r85769 r87241  
    11441144
    11451145    ChipsetType_T       chipsetType;            // requires settings version 1.11 (VirtualBox 4.0)
     1146    IommuType_T         iommuType;              // requires settings version 1.19 (VirtualBox 6.2)
    11461147    ParavirtProvider_T  paravirtProvider;       // requires settings version 1.15 (VirtualBox 4.4)
    11471148    com::Utf8Str        strParavirtDebug;       // requires settings version 1.16 (VirtualBox 5.1)
  • trunk/src/VBox/Frontends/VBoxManage/Makefile.kmk

    r85683 r87241  
    4949        $(if $(VBOX_WITH_SHARED_CLIPBOARD),VBOX_WITH_SHARED_CLIPBOARD) \
    5050        $(if $(VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS),VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS) \
     51        $(if $(VBOX_WITH_IOMMU_AMD),VBOX_WITH_IOMMU_AMD) \
    5152        $(if $(VBOX_WITH_VMSVGA),VBOX_WITH_VMSVGA)
    5253
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r86435 r87241  
    585585                     "                            [--firmware bios|efi|efi32|efi64]\n"
    586586                     "                            [--chipset ich9|piix3]\n"
     587#ifdef VBOX_WITH_IOMMU_AMD
     588                     "                            [--iommu none|automatic|amd]\n"
     589#endif
    587590                     "                            [--bioslogofadein on|off]\n"
    588591                     "                            [--bioslogofadeout on|off]\n"
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r85780 r87241  
    445445}
    446446
     447#ifdef VBOX_WITH_IOMMU_AMD
     448static const char *iommuTypeToString(IommuType_T iommuType, VMINFO_DETAILS details)
     449{
     450    switch (iommuType)
     451    {
     452        case IommuType_None:
     453            if (details == VMINFO_MACHINEREADABLE)
     454                return "none";
     455            return "None";
     456
     457        case IommuType_Automatic:
     458            if (details == VMINFO_MACHINEREADABLE)
     459                return "automatic";
     460            return "Automatic";
     461
     462        case IommuType_AMD:
     463            if (details == VMINFO_MACHINEREADABLE)
     464                return "amd";
     465            return "AMD";
     466
     467        case IommuType_Intel:
     468            if (details == VMINFO_MACHINEREADABLE)
     469                return "intel";
     470            return "Intel";
     471
     472        default:
     473            if (details == VMINFO_MACHINEREADABLE)
     474                return "unknown";
     475            return "Unknown";
     476    }
     477}
     478#endif
    447479
    448480static const char *paravirtProviderToString(ParavirtProvider_T provider, VMINFO_DETAILS details)
     
    918950    SHOW_BOOLEAN_METHOD(machine, GetHWVirtExProperty(HWVirtExPropertyType_UnrestrictedExecution, &f), "vtxux", "VT-x Unrestricted Exec.:");
    919951    SHOW_BOOLEAN_METHOD(machine, GetHWVirtExProperty(HWVirtExPropertyType_VirtVmsaveVmload, &f),      "virtvmsavevmload", "AMD-V Virt. Vmsave/Vmload:");
     952
     953#ifdef VBOX_WITH_IOMMU_AMD
     954    IommuType_T iommuType;
     955    CHECK_ERROR2I_RET(machine, COMGETTER(IommuType)(&iommuType), hrcCheck);
     956    const char *pszIommuType = iommuTypeToString(iommuType, details);
     957    SHOW_UTF8_STRING("iommu", "IOMMU:", pszIommuType);
     958#endif
    920959
    921960    ParavirtProvider_T paravirtProvider;
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp

    r85769 r87241  
    235235#endif
    236236    MODIFYVM_CHIPSET,
     237#ifdef VBOX_WITH_IOMMU_AMD
     238    MODIFYVM_IOMMU,
     239#endif
    237240    MODIFYVM_DEFAULTFRONTEND,
    238241    MODIFYVM_VMPROC_PRIORITY
     
    408411    { "--iocachesize",              MODIFYVM_IOCACHESIZE,               RTGETOPT_REQ_UINT32 },
    409412    { "--chipset",                  MODIFYVM_CHIPSET,                   RTGETOPT_REQ_STRING },
     413#ifdef VBOX_WITH_IOMMU_AMD
     414    { "--iommu",                    MODIFYVM_IOMMU,                     RTGETOPT_REQ_STRING },
     415#endif
    410416#ifdef VBOX_WITH_RECORDING
    411417    { "--recording",                MODIFYVM_RECORDING,                 RTGETOPT_REQ_BOOL_ONOFF },
     
    29862992                break;
    29872993            }
     2994#ifdef VBOX_WITH_IOMMU_AMD
     2995            case MODIFYVM_IOMMU:
     2996            {
     2997                if (   !RTStrICmp(ValueUnion.psz, "none")
     2998                    || !RTStrICmp(ValueUnion.psz, "disabled"))
     2999                    CHECK_ERROR(sessionMachine, COMSETTER(IommuType)(IommuType_None));
     3000                else if (!RTStrICmp(ValueUnion.psz, "amd"))
     3001                    CHECK_ERROR(sessionMachine, COMSETTER(IommuType)(IommuType_AMD));
     3002                /** @todo Add Intel when it's supported, remove warning from below. */
     3003                else if (!RTStrICmp(ValueUnion.psz, "automatic"))
     3004                {
     3005                    CHECK_ERROR(sessionMachine, COMSETTER(IommuType)(IommuType_Automatic));
     3006                    RTStrmPrintf(g_pStdErr,
     3007                                 "Warning: On Intel hosts, 'automatic' will not enable an IOMMU since the Intel IOMMU device is not supported yet.\n");
     3008                }
     3009                else
     3010                {
     3011                    errorArgument("Invalid --iommu argument '%s'", ValueUnion.psz);
     3012                    rc = E_FAIL;
     3013                }
     3014                break;
     3015            }
     3016#endif
    29883017#ifdef VBOX_WITH_RECORDING
    29893018            case MODIFYVM_RECORDING:
  • trunk/src/VBox/Main/Makefile.kmk

    r86908 r87241  
    479479        $(if $(VBOX_WITH_NAT_SERVICE),VBOX_WITH_NAT_SERVICE,) \
    480480        $(if $(VBOX_WITH_LIBCURL),VBOX_WITH_HOST_UPDATE_CHECK,) \
     481        $(if $(VBOX_WITH_IOMMU_AMD),VBOX_WITH_IOMMU_AMD,) \
    481482        $(if-expr defined(VBOX_WITH_SDS),VBOX_WITH_SDS,)
    482483ifdef VBOX_WITH_USB
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r86908 r87241  
    610610      -->
    611611    </const>
    612 
     612    <const name="v1_19" value="21">
     613      <desc>Settings version "1.19", written by VirtualBox 6.2.x.</desc>
     614      <!--
     615          Machine changes: IOMMU device.
     616      -->
     617    </const>
    613618    <const name="Future" value="99999">
    614       <desc>Settings version greater than "1.15", written by a future VirtualBox version.</desc>
     619      <desc>Settings version greater than "1.19", written by a future VirtualBox version.</desc>
    615620    </const>
    616621  </enum>
     
    59685973  </enum>
    59695974
     5975  <enum
     5976    name="IommuType"
     5977    uuid="f47339cb-b94e-48fe-b507-2900103d7b9f"
     5978    >
     5979    <desc>
     5980      The IOMMU type. This enumeration represents possible
     5981      values for the <link to="IMachine::iommuType"/> attribute.
     5982    </desc>
     5983    <const name="None"      value="0">
     5984      <desc>No IOMMU is present.</desc>
     5985    </const>
     5986    <const name="Automatic" value="1">
     5987      <desc>No IOMMU is present.</desc>
     5988    </const>
     5989    <const name="AMD"       value="2">
     5990      <desc>An AMD IOMMU.</desc>
     5991    </const>
     5992    <const name="Intel"     value="3">
     5993      <desc>An Intel IOMMU.</desc>
     5994    </const>
     5995  </enum>
     5996
    59705997  <interface
    59715998    name="IMachine" extends="$unknown"
    5972     uuid="85632c68-b5bb-4316-a900-5eb28d3413df"
     5999    uuid="621a4d3f-97a5-4f64-89eb-e0a9b2b79e23"
    59736000    wsmap="managed"
    59746001    wrap-hint-server-addinterfaces="IInternalMachineControl"
     
    62616288    </attribute>
    62626289
     6290    <attribute name="iommuType" type="IommuType">
     6291      <desc>IOMMU type used in this VM.</desc>
     6292    </attribute>
     6293
    62636294    <attribute name="snapshotFolder" type="wstring">
    62646295      <desc>
     
    1116611197    name="ISystemProperties"
    1116711198    extends="$unknown"
    11168     uuid="81c55eb1-d584-41a7-aa0b-08b71cddd773"
     11199    uuid="31cdb11d-9bb0-455a-b2ca-a1a5b1177912"
    1116911200    wsmap="managed"
    1117011201    reservedMethods="4" reservedAttributes="16"
     
    1172411755    </attribute>
    1172511756
     11757    <attribute name="supportedIommuTypes" type="IommuType" safearray="yes" readonly="yes">
     11758      <desc>
     11759        Returns an array of officially supported values for enum <link to="IommuType"/>,
     11760        in the sense of what is e.g. worth offering in the VirtualBox GUI.
     11761      </desc>
     11762    </attribute>
     11763
    1172611764    <method name="getMaxNetworkAdapters">
    1172711765      <desc>
     
    1192911967  <interface
    1193011968    name="IGuestOSType" extends="$unknown"
    11931     uuid="d0d6c6d8-e5db-4d2c-baaa-c71053a6236d"
     11969    uuid="7d8ba014-4562-448a-9c1b-b454b35fc3dd"
    1193211970    wsmap="struct"
    1193311971    reservedAttributes="16"
     
    1203412072    <attribute name="recommendedChipset" type="ChipsetType" readonly="yes">
    1203512073      <desc>Recommended chipset type.</desc>
     12074    </attribute>
     12075
     12076    <attribute name="recommendedIommuType" type="IommuType" readonly="yes">
     12077      <desc>Recommended IOMMU type.</desc>
    1203612078    </attribute>
    1203712079
  • trunk/src/VBox/Main/include/Global.h

    r82968 r87241  
    8282        const StorageBus_T             hdStorageBusType;
    8383        const ChipsetType_T            chipsetType;
     84        const IommuType_T              iommuType;
    8485        const AudioControllerType_T    audioControllerType;
    8586        const AudioCodecType_T         audioCodecType;
  • trunk/src/VBox/Main/include/GuestOSTypeImpl.h

    r85215 r87241  
    7979    HRESULT getRecommendedRTCUseUTC(BOOL *aRecommendedRTCUseUTC);
    8080    HRESULT getRecommendedChipset(ChipsetType_T *aChipsetType);
     81    HRESULT getRecommendedIommuType(IommuType_T *aIommuType);
    8182    HRESULT getRecommendedAudioController(AudioControllerType_T *aAudioController);
    8283    HRESULT getRecommendedAudioCodec(AudioCodecType_T *aAudioCodec);
     
    105106    const StorageBus_T mHDStorageBusType;
    106107    const ChipsetType_T mChipsetType;
     108    const IommuType_T mIommuType;
    107109    const AudioControllerType_T mAudioControllerType;
    108110    const AudioCodecType_T mAudioCodecType;
  • trunk/src/VBox/Main/include/MachineImpl.h

    r86908 r87241  
    319319        PointingHIDType_T   mPointingHIDType;
    320320        ChipsetType_T       mChipsetType;
     321        IommuType_T         mIommuType;
    321322        ParavirtProvider_T  mParavirtProvider;
    322323        Utf8Str             mParavirtDebug;
     
    896897    HRESULT getChipsetType(ChipsetType_T *aChipsetType);
    897898    HRESULT setChipsetType(ChipsetType_T aChipsetType);
     899    HRESULT getIommuType(IommuType_T *aIommuType);
     900    HRESULT setIommuType(IommuType_T aIommuType);
    898901    HRESULT getSnapshotFolder(com::Utf8Str &aSnapshotFolder);
    899902    HRESULT setSnapshotFolder(const com::Utf8Str &aSnapshotFolder);
  • trunk/src/VBox/Main/include/SystemPropertiesImpl.h

    r85683 r87241  
    142142    HRESULT getSupportedStorageControllerTypes(std::vector<StorageControllerType_T> &aSupportedStorageControllerTypes) RT_OVERRIDE;
    143143    HRESULT getSupportedChipsetTypes(std::vector<ChipsetType_T> &aSupportedChipsetTypes) RT_OVERRIDE;
     144    HRESULT getSupportedIommuTypes(std::vector<IommuType_T> &aSupportedIommuTypes) RT_OVERRIDE;
    144145    HRESULT getSupportedVBoxUpdateTargetTypes(std::vector<VBoxUpdateTarget_T> &aSupportedVBoxUpdateTargetTypes) RT_OVERRIDE;
    145146    HRESULT getVBoxUpdateEnabled(BOOL *aVBoxUpdateEnabled) RT_OVERRIDE;
  • trunk/src/VBox/Main/src-all/Global.cpp

    r82968 r87241  
    3333      VBOXOSTYPE_Unknown,         VBOXOSHINT_NONE,
    3434        64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    35       StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
     35      StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
    3636
    3737    { "Other",   "Other",             "Other_64",           "Other/Unknown (64-bit)",
    3838      VBOXOSTYPE_Unknown_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
    3939        64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    40       StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700 },
     40      StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700 },
    4141
    4242    { "Windows", "Microsoft Windows", "Windows31",          "Windows 3.1",
    4343      VBOXOSTYPE_Win31,           VBOXOSHINT_FLOPPY,
    4444        32,   4,  1 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    45         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     45        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    4646
    4747    { "Windows", "Microsoft Windows", "Windows95",          "Windows 95",
    4848      VBOXOSTYPE_Win95,           VBOXOSHINT_FLOPPY,
    4949        64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    50         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     50        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    5151
    5252    { "Windows", "Microsoft Windows", "Windows98",          "Windows 98",
    5353      VBOXOSTYPE_Win98,           VBOXOSHINT_FLOPPY,
    5454        64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    55         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     55        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    5656
    5757    { "Windows", "Microsoft Windows", "WindowsMe",          "Windows ME",
    5858      VBOXOSTYPE_WinMe,           VBOXOSHINT_FLOPPY | VBOXOSHINT_USBTABLET,
    5959        128,  4,  4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    60         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     60        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    6161
    6262    { "Windows", "Microsoft Windows", "WindowsNT3x",        "Windows NT 3.x",
    6363       VBOXOSTYPE_WinNT3x,       VBOXOSHINT_NOUSB | VBOXOSHINT_FLOPPY,
    6464       64,    8,  _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_BusLogic, StorageBus_SCSI,
    65         StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     65        StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    6666
    6767    { "Windows", "Microsoft Windows", "WindowsNT4",         "Windows NT 4",
    6868      VBOXOSTYPE_WinNT4,          VBOXOSHINT_NOUSB,
    6969       128,  16,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    70         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     70        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    7171
    7272    { "Windows", "Microsoft Windows", "Windows2000",        "Windows 2000",
    7373      VBOXOSTYPE_Win2k,            VBOXOSHINT_USBTABLET,
    7474       168,  16,  4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    75         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     75        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    7676
    7777    { "Windows", "Microsoft Windows", "WindowsXP",          "Windows XP (32-bit)",
    7878      VBOXOSTYPE_WinXP,            VBOXOSHINT_USBTABLET,
    7979       192,  16, 10 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82543GC, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    80         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     80        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    8181
    8282    { "Windows", "Microsoft Windows", "WindowsXP_64",       "Windows XP (64-bit)",
    8383      VBOXOSTYPE_WinXP_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    8484       512,  16, 10 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    85         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     85        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    8686
    8787    { "Windows", "Microsoft Windows", "Windows2003",        "Windows 2003 (32-bit)",
    8888      VBOXOSTYPE_Win2k3,           VBOXOSHINT_USBTABLET,
    8989       512,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82543GC, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    90         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     90        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    9191
    9292    { "Windows", "Microsoft Windows", "Windows2003_64",     "Windows 2003 (64-bit)",
    9393      VBOXOSTYPE_Win2k3_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    9494       512,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    95         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     95        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    9696
    9797    { "Windows", "Microsoft Windows", "WindowsVista",       "Windows Vista (32-bit)",
    9898      VBOXOSTYPE_WinVista,         VBOXOSHINT_USBTABLET,
    9999       512,  16, 25 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    100         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     100        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    101101
    102102    { "Windows", "Microsoft Windows", "WindowsVista_64",    "Windows Vista (64-bit)",
    103103      VBOXOSTYPE_WinVista_x64,    VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    104104       512,  16, 25 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    105         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     105        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    106106
    107107    { "Windows", "Microsoft Windows", "Windows2008",        "Windows 2008 (32-bit)",
    108108      VBOXOSTYPE_Win2k8,           VBOXOSHINT_USBTABLET,
    109109       1024, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    110         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     110        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    111111
    112112    { "Windows", "Microsoft Windows", "Windows2008_64",     "Windows 2008 (64-bit)",
    113113      VBOXOSTYPE_Win2k8_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    114114       2048, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    115         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     115        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    116116
    117117    { "Windows", "Microsoft Windows", "Windows7",           "Windows 7 (32-bit)",
    118118      VBOXOSTYPE_Win7,             VBOXOSHINT_USBTABLET,
    119119       1024, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    120         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     120        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    121121
    122122    { "Windows", "Microsoft Windows", "Windows7_64",        "Windows 7 (64-bit)",
    123123      VBOXOSTYPE_Win7_x64,        VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    124124       2048, 16, 32 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    125         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     125        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    126126
    127127    { "Windows", "Microsoft Windows", "Windows8",           "Windows 8 (32-bit)",
    128128      VBOXOSTYPE_Win8,             VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
    129129       1024,128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    130         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     130        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    131131
    132132    { "Windows", "Microsoft Windows", "Windows8_64",        "Windows 8 (64-bit)",
    133133      VBOXOSTYPE_Win8_x64,        VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    134134       2048,128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    135         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     135        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    136136
    137137    { "Windows", "Microsoft Windows", "Windows81",          "Windows 8.1 (32-bit)",
    138138      VBOXOSTYPE_Win81,            VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
    139139       1024,128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    140         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     140        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    141141
    142142    { "Windows", "Microsoft Windows", "Windows81_64",       "Windows 8.1 (64-bit)",
    143143      VBOXOSTYPE_Win81_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    144144       2048,128, 40 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    145         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     145        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    146146
    147147    { "Windows", "Microsoft Windows", "Windows2012_64",     "Windows 2012 (64-bit)",
    148148      VBOXOSTYPE_Win2k12_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    149149       2048,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    150         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     150        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    151151
    152152    { "Windows", "Microsoft Windows", "Windows10",          "Windows 10 (32-bit)",
    153153      VBOXOSTYPE_Win10,            VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_PAE | VBOXOSHINT_USB3,
    154154       1024,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    155         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     155        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    156156
    157157    { "Windows", "Microsoft Windows", "Windows10_64",       "Windows 10 (64-bit)",
    158158      VBOXOSTYPE_Win10_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    159159       2048,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    160         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     160        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    161161
    162162    { "Windows", "Microsoft Windows", "Windows2016_64",     "Windows 2016 (64-bit)",
    163163      VBOXOSTYPE_Win2k16_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    164164       2048,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    165         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     165        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    166166
    167167    { "Windows", "Microsoft Windows", "Windows2019_64",     "Windows 2019 (64-bit)",
    168168      VBOXOSTYPE_Win2k19_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_USB3,
    169169       2048,128, 50 * _1G64, GraphicsControllerType_VBoxSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    170         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     170        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    171171
    172172    { "Windows", "Microsoft Windows", "WindowsNT",          "Other Windows (32-bit)",
    173173      VBOXOSTYPE_WinNT,           VBOXOSHINT_NONE,
    174174       512,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    175         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     175        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    176176
    177177    { "Windows", "Microsoft Windows", "WindowsNT_64",       "Other Windows (64-bit)",
    178178      VBOXOSTYPE_WinNT_x64,       VBOXOSHINT_64BIT | VBOXOSHINT_PAE | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    179179       512,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    180         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     180        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    181181
    182182    { "Linux",   "Linux",             "Linux22",            "Linux 2.2",
    183183      VBOXOSTYPE_Linux22,         VBOXOSHINT_RTCUTC,
    184184        64,   4,  2 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    185         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     185        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    186186
    187187    { "Linux",   "Linux",             "Linux24",            "Linux 2.4 (32-bit)",
    188188      VBOXOSTYPE_Linux24,         VBOXOSHINT_RTCUTC,
    189189       128,  16,  4 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    190         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     190        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    191191
    192192    { "Linux",   "Linux",             "Linux24_64",         "Linux 2.4 (64-bit)",
    193193      VBOXOSTYPE_Linux24_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
    194194       128,  16,  4 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    195         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     195        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    196196
    197197    { "Linux",   "Linux",             "Linux26",            "Linux 2.6 / 3.x / 4.x (32-bit)",
    198198      VBOXOSTYPE_Linux26,         VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    199199       512,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    200         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     200        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    201201
    202202    { "Linux",   "Linux",             "Linux26_64",         "Linux 2.6 / 3.x / 4.x (64-bit)",
     
    204204                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    205205      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    206         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     206        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    207207
    208208    { "Linux",   "Linux",             "ArchLinux",          "Arch Linux (32-bit)",
    209209      VBOXOSTYPE_ArchLinux,       VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    210210      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    211         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     211        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    212212
    213213    { "Linux",   "Linux",             "ArchLinux_64",       "Arch Linux (64-bit)",
     
    215215                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    216216      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    217         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     217        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    218218
    219219    { "Linux",   "Linux",             "Debian",             "Debian (32-bit)",
    220220      VBOXOSTYPE_Debian,          VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    221221      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    222         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     222        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    223223
    224224    { "Linux",   "Linux",             "Debian_64",          "Debian (64-bit)",
     
    226226                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    227227      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    228         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980},
     228        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980},
    229229
    230230    { "Linux",   "Linux",             "Fedora",             "Fedora (32-bit)",
    231231      VBOXOSTYPE_FedoraCore,      VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    232232      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    233         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     233        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    234234
    235235    { "Linux",   "Linux",             "Fedora_64",          "Fedora (64-bit)",
     
    237237                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    238238      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    239         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     239        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    240240
    241241    { "Linux",   "Linux",             "Gentoo",             "Gentoo (32-bit)",
    242242      VBOXOSTYPE_Gentoo,          VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    243243      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    244         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     244        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    245245
    246246    { "Linux",   "Linux",             "Gentoo_64",          "Gentoo (64-bit)",
     
    248248                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    249249      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    250         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     250        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    251251
    252252    { "Linux",   "Linux",             "Mandriva",           "Mandriva (32-bit)",
    253253      VBOXOSTYPE_Mandriva,        VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    254254      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    255         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     255        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    256256
    257257    { "Linux",   "Linux",             "Mandriva_64",        "Mandriva (64-bit)",
     
    259259                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    260260      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    261         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     261        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    262262
    263263    { "Linux",   "Linux",             "Oracle",             "Oracle (32-bit)",
    264264      VBOXOSTYPE_Oracle,          VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_X2APIC,
    265265      1024,  16, 12 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    266         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     266        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    267267
    268268    { "Linux",   "Linux",             "Oracle_64",          "Oracle (64-bit)",
     
    270270                                | VBOXOSHINT_X2APIC,
    271271      1024,  16, 12 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    272         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     272        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    273273
    274274    { "Linux",   "Linux",             "RedHat",             "Red Hat (32-bit)",
    275275      VBOXOSTYPE_RedHat,          VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_X2APIC,
    276276      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    277         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     277        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    278278
    279279    { "Linux",   "Linux",             "RedHat_64",          "Red Hat (64-bit)",
     
    281281                                | VBOXOSHINT_X2APIC,
    282282      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    283         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     283        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    284284
    285285    { "Linux",   "Linux",             "OpenSUSE",           "openSUSE (32-bit)",
    286286      VBOXOSTYPE_OpenSUSE,        VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    287287      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    288         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     288        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    289289
    290290    { "Linux",   "Linux",             "OpenSUSE_64",        "openSUSE (64-bit)",
     
    292292                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    293293      1024,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    294         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     294        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    295295
    296296    { "Linux",   "Linux",             "Turbolinux",         "Turbolinux (32-bit)",
    297297      VBOXOSTYPE_Turbolinux,      VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    298298       384,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    299         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     299        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    300300
    301301    { "Linux",   "Linux",             "Turbolinux_64",      "Turbolinux (64-bit)",
     
    303303                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    304304       384,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    305         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     305        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    306306
    307307    { "Linux",   "Linux",             "Ubuntu",             "Ubuntu (32-bit)",
    308308      VBOXOSTYPE_Ubuntu,          VBOXOSHINT_RTCUTC | VBOXOSHINT_PAE | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    309309      1024,  16, 10 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    310         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     310        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    311311
    312312    { "Linux",   "Linux",             "Ubuntu_64",          "Ubuntu (64-bit)",
     
    314314                                | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    315315      1024,  16, 10 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    316         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     316        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    317317
    318318    { "Linux",   "Linux",             "Xandros",            "Xandros (32-bit)",
    319319      VBOXOSTYPE_Xandros,         VBOXOSHINT_RTCUTC | VBOXOSHINT_X2APIC,
    320320       256,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    321         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     321        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    322322
    323323    { "Linux",   "Linux",             "Xandros_64",         "Xandros (64-bit)",
    324324      VBOXOSTYPE_Xandros_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC | VBOXOSHINT_X2APIC,
    325325       256,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    326         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     326        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    327327
    328328    { "Linux",   "Linux",             "Linux",              "Other Linux (32-bit)",
    329329      VBOXOSTYPE_Linux,           VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    330330       256,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    331         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_AD1980  },
     331        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_AD1980  },
    332332
    333333    { "Linux",   "Linux",             "Linux_64",           "Other Linux (64-bit)",
     
    335335                                | VBOXOSHINT_RTCUTC | VBOXOSHINT_USBTABLET | VBOXOSHINT_X2APIC,
    336336       512,  16,  8 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    337         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     337        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    338338
    339339    { "Solaris", "Solaris",           "Solaris",            "Oracle Solaris 10 5/09 and earlier (32-bit)",
    340340      VBOXOSTYPE_Solaris,         VBOXOSHINT_NONE,
    341341       768,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    342         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     342        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    343343
    344344    { "Solaris", "Solaris",           "Solaris_64",         "Oracle Solaris 10 5/09 and earlier (64-bit)",
    345345      VBOXOSTYPE_Solaris_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
    346346      1536,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    347         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     347        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    348348
    349349    { "Solaris", "Solaris",           "OpenSolaris",        "Oracle Solaris 10 10/09 and later (32-bit)",
    350350      VBOXOSTYPE_OpenSolaris,     VBOXOSHINT_USBTABLET,
    351351       768,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    352         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     352        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    353353
    354354    { "Solaris", "Solaris",           "OpenSolaris_64",     "Oracle Solaris 10 10/09 and later (64-bit)",
    355355      VBOXOSTYPE_OpenSolaris_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET,
    356356      1536,  16, 16 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    357         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     357        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    358358
    359359    { "Solaris", "Solaris",           "Solaris11_64",       "Oracle Solaris 11 (64-bit)",
    360360      VBOXOSTYPE_Solaris11_x64, VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_USBTABLET | VBOXOSHINT_RTCUTC,
    361361      1536,  16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_IntelAhci, StorageBus_SATA,
    362         StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     362        StorageControllerType_IntelAhci, StorageBus_SATA, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    363363
    364364    { "BSD",     "BSD",               "FreeBSD",            "FreeBSD (32-bit)",
    365365      VBOXOSTYPE_FreeBSD,         VBOXOSHINT_NONE,
    366366      1024,  16,  2 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    367         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     367        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    368368
    369369    { "BSD",     "BSD",               "FreeBSD_64",         "FreeBSD (64-bit)",
    370370      VBOXOSTYPE_FreeBSD_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
    371371      1024,  16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    372         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     372        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    373373
    374374    { "BSD",     "BSD",               "OpenBSD",            "OpenBSD (32-bit)",
    375375      VBOXOSTYPE_OpenBSD,         VBOXOSHINT_HWVIRTEX,
    376376      1024,  16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    377         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     377        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    378378
    379379    { "BSD",     "BSD",               "OpenBSD_64",         "OpenBSD (64-bit)",
    380380      VBOXOSTYPE_OpenBSD_x64,     VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC,
    381381      1024,  16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    382         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     382        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    383383
    384384    { "BSD",     "BSD",               "NetBSD",             "NetBSD (32-bit)",
    385385      VBOXOSTYPE_NetBSD,          VBOXOSHINT_RTCUTC,
    386386      1024,  16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    387         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     387        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    388388
    389389    { "BSD",     "BSD",               "NetBSD_64",          "NetBSD (64-bit)",
    390390      VBOXOSTYPE_NetBSD_x64,      VBOXOSHINT_64BIT | VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_RTCUTC,
    391391      1024,  16, 16 * _1G64, GraphicsControllerType_VMSVGA, NetworkAdapterType_I82540EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    392         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     392        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    393393
    394394    { "OS2",     "IBM OS/2",          "OS2Warp3",           "OS/2 Warp 3",
    395395      VBOXOSTYPE_OS2Warp3,        VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
    396396        48,   4,  1 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    397         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     397        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    398398
    399399    { "OS2",     "IBM OS/2",          "OS2Warp4",           "OS/2 Warp 4",
    400400      VBOXOSTYPE_OS2Warp4,        VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
    401401        64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    402         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     402        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    403403
    404404    { "OS2",     "IBM OS/2",          "OS2Warp45",          "OS/2 Warp 4.5",
    405405      VBOXOSTYPE_OS2Warp45,       VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
    406406        128,  4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    407         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     407        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    408408
    409409    { "OS2",     "IBM OS/2",          "OS2eCS",             "eComStation",
    410410      VBOXOSTYPE_ECS,             VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY,
    411411        256,  4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    412         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     412        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    413413
    414414    { "OS2",     "IBM OS/2",          "OS21x",              "OS/2 1.x",
    415415      VBOXOSTYPE_OS21x,           VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB | VBOXOSHINT_TFRESET,
    416416        8, 4, 500 * _1M, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    417         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     417        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    418418
    419419    { "OS2",     "IBM OS/2",          "OS2",                "Other OS/2",
    420420      VBOXOSTYPE_OS2,             VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
    421421        96,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    422         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     422        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    423423
    424424    { "MacOS",   "Mac OS X",          "MacOS",              "Mac OS X (32-bit)",
     
    427427      2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    428428       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    429       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     429      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    430430
    431431    { "MacOS",   "Mac OS X",          "MacOS_64",           "Mac OS X (64-bit)",
     
    434434      2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    435435      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    436       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     436      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    437437
    438438    { "MacOS",   "Mac OS X",          "MacOS106",           "Mac OS X 10.6 Snow Leopard (32-bit)",
     
    441441      2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    442442       StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    443       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     443      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    444444
    445445    { "MacOS",   "Mac OS X",          "MacOS106_64",        "Mac OS X 10.6 Snow Leopard (64-bit)",
     
    448448      2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    449449      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    450       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     450      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    451451
    452452    { "MacOS",   "Mac OS X",          "MacOS107_64",        "Mac OS X 10.7 Lion (64-bit)",
     
    455455      2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    456456      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    457       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     457      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    458458    { "MacOS",   "Mac OS X",          "MacOS108_64",        "Mac OS X 10.8 Mountain Lion (64-bit)",  /* Aka "Mountain Kitten". */
    459459      VBOXOSTYPE_MacOS108_x64,    VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_EFI | VBOXOSHINT_PAE |  VBOXOSHINT_64BIT
     
    461461      2048,  16, 20 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    462462      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    463       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     463      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    464464
    465465    { "MacOS",   "Mac OS X",          "MacOS109_64",        "Mac OS X 10.9 Mavericks (64-bit)", /* Not to be confused with McCain. */
     
    468468      2048,  16, 25 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    469469      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    470       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     470      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    471471
    472472    { "MacOS",   "Mac OS X",          "MacOS1010_64",       "Mac OS X 10.10 Yosemite (64-bit)",
     
    475475      2048,  16, 25 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    476476      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    477       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     477      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    478478
    479479    { "MacOS",   "Mac OS X",          "MacOS1011_64",       "Mac OS X 10.11 El Capitan (64-bit)",
     
    482482      2048,  16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    483483      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    484       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     484      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    485485
    486486    { "MacOS",   "Mac OS X",          "MacOS1012_64",       "macOS 10.12 Sierra (64-bit)",
     
    489489      2048,  16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    490490      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    491       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     491      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    492492
    493493    { "MacOS",   "Mac OS X",          "MacOS1013_64",       "macOS 10.13 High Sierra (64-bit)",
     
    496496      2048,  16, 30 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0,
    497497      StorageControllerType_IntelAhci, StorageBus_SATA, StorageControllerType_IntelAhci, StorageBus_SATA,
    498       ChipsetType_ICH9, AudioControllerType_HDA, AudioCodecType_STAC9221  },
     498      ChipsetType_ICH9, IommuType_None, AudioControllerType_HDA, AudioCodecType_STAC9221  },
    499499
    500500    { "Other",   "Other",             "DOS",                "DOS",
    501501      VBOXOSTYPE_DOS,             VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
    502502        32,   4,  500 * _1M, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 1, StorageControllerType_PIIX4, StorageBus_IDE,
    503         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_SB16, AudioCodecType_SB16  },
     503        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_SB16, AudioCodecType_SB16  },
    504504
    505505    { "Other",   "Other",             "Netware",            "Netware",
    506506      VBOXOSTYPE_Netware,         VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_NOUSB,
    507507       512,   4,  4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    508         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     508        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    509509
    510510    { "Other",   "Other",             "L4",                 "L4",
    511511      VBOXOSTYPE_L4,              VBOXOSHINT_NONE,
    512512        64,   4,  2 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    513         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     513        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    514514
    515515    { "Other",   "Other",             "QNX",                "QNX",
    516516      VBOXOSTYPE_QNX,             VBOXOSHINT_HWVIRTEX,
    517517       512,   4,  4 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_Am79C973, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    518       StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     518      StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    519519
    520520    { "Other",   "Other",             "JRockitVE",          "JRockitVE",
    521521        VBOXOSTYPE_JRockitVE,     VBOXOSHINT_HWVIRTEX | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE,
    522522        1024, 4,  8 * _1G64, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    523         StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     523        StorageControllerType_BusLogic, StorageBus_SCSI, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    524524
    525525    { "Other",   "Other",             "VBoxBS_64",          "VirtualBox Bootsector Test (64-bit)",
    526526        VBOXOSTYPE_VBoxBS_x64,    VBOXOSHINT_HWVIRTEX | VBOXOSHINT_FLOPPY | VBOXOSHINT_IOAPIC | VBOXOSHINT_PAE | VBOXOSHINT_64BIT,
    527527        128, 4,  0, GraphicsControllerType_VBoxVGA, NetworkAdapterType_I82545EM, 0, StorageControllerType_PIIX4, StorageBus_IDE,
    528         StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, AudioControllerType_AC97, AudioCodecType_STAC9700  },
     528        StorageControllerType_PIIX4, StorageBus_IDE, ChipsetType_PIIX3, IommuType_None, AudioControllerType_AC97, AudioCodecType_STAC9700  },
    529529};
    530530
  • trunk/src/VBox/Main/src-server/GuestOSTypeImpl.cpp

    r85216 r87241  
    3939    , mHDStorageBusType(StorageBus_IDE)
    4040    , mChipsetType(ChipsetType_PIIX3)
     41    , mIommuType(IommuType_None)
    4142    , mAudioControllerType(AudioControllerType_AC97)
    4243    , mAudioCodecType(AudioCodecType_STAC9700)
     
    103104    unconst(mHDStorageBusType)          = ostype.hdStorageBusType;
    104105    unconst(mChipsetType)               = ostype.chipsetType;
     106    unconst(mIommuType)                 = ostype.iommuType;
    105107    unconst(mAudioControllerType)       = ostype.audioControllerType;
    106108    unconst(mAudioCodecType)            = ostype.audioCodecType;
     
    351353
    352354
     355HRESULT GuestOSType::getRecommendedIommuType(IommuType_T *aIommuType)
     356{
     357    /* IOMMU type is constant during life time, no need to lock */
     358    *aIommuType = mIommuType;
     359
     360    return S_OK;
     361}
     362
     363
    353364HRESULT GuestOSType::getRecommendedAudioController(AudioControllerType_T *aAudioController)
    354365{
  • trunk/src/VBox/Main/src-server/MachineImpl.cpp

    r86971 r87241  
    223223    mPointingHIDType = PointingHIDType_PS2Mouse;
    224224    mChipsetType = ChipsetType_PIIX3;
     225    mIommuType = IommuType_None;
    225226    mParavirtProvider = ParavirtProvider_Default;
    226227    mEmulatedUSBCardReaderEnabled = FALSE;
     
    12311232            }
    12321233        }
     1234    }
     1235
     1236    return S_OK;
     1237}
     1238
     1239HRESULT Machine::getIommuType(IommuType_T *aIommuType)
     1240{
     1241    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
     1242
     1243    *aIommuType = mHWData->mIommuType;
     1244
     1245    return S_OK;
     1246}
     1247
     1248HRESULT Machine::setIommuType(IommuType_T aIommuType)
     1249{
     1250    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
     1251
     1252    HRESULT rc = i_checkStateDependency(MutableStateDep);
     1253    if (FAILED(rc)) return rc;
     1254
     1255    if (aIommuType != mHWData->mIommuType)
     1256    {
     1257        i_setModified(IsModified_MachineData);
     1258        mHWData.backup();
     1259        mHWData->mIommuType = aIommuType;
    12331260    }
    12341261
     
    87558782        mHWData->mKeyboardHIDType = data.keyboardHIDType;
    87568783        mHWData->mChipsetType = data.chipsetType;
     8784        mHWData->mIommuType = data.iommuType;
    87578785        mHWData->mParavirtProvider = data.paravirtProvider;
    87588786        mHWData->mParavirtDebug = data.strParavirtDebug;
     
    1009310121        data.chipsetType = mHWData->mChipsetType;
    1009410122
     10123        // iommu
     10124        data.iommuType = mHWData->mIommuType;
     10125
    1009510126        // paravirt
    1009610127        data.paravirtProvider = mHWData->mParavirtProvider;
     
    1511615147    if (FAILED(rc)) return rc;
    1511715148
     15149    /* Apply IOMMU defaults. */
     15150    IommuType_T enmIommuType;
     15151    rc = osType->COMGETTER(RecommendedIommuType)(&enmIommuType);
     15152    if (FAILED(rc)) return rc;
     15153
     15154    rc = COMSETTER(IommuType)(enmIommuType);
     15155    if (FAILED(rc)) return rc;
     15156
    1511815157    /* Apply network adapters defaults */
    1511915158    for (ULONG slot = 0; slot < mNetworkAdapters.size(); ++slot)
  • trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp

    r86916 r87241  
    18131813}
    18141814
     1815HRESULT SystemProperties::getSupportedIommuTypes(std::vector<IommuType_T> &aSupportedIommuTypes)
     1816{
     1817    static const IommuType_T aIommuTypes[] =
     1818    {
     1819        IommuType_None,
     1820        IommuType_Automatic,
     1821        IommuType_AMD,
     1822        /** @todo Add Intel when it's supported. */
     1823    };
     1824    aSupportedIommuTypes.assign(aIommuTypes,
     1825                                aIommuTypes + RT_ELEMENTS(aIommuTypes));
     1826    return S_OK;
     1827}
     1828
    18151829HRESULT SystemProperties::getSupportedVBoxUpdateTargetTypes(std::vector<VBoxUpdateTarget_T> &aSupportedVBoxUpdateTargetTypes)
    18161830{
  • trunk/src/VBox/Main/xml/Settings.cpp

    r85769 r87241  
    411411            else if (uMinor == 18)
    412412                sv = SettingsVersion_v1_18;
    413             else if (uMinor > 18)
     413            else if (uMinor == 19)
     414                sv = SettingsVersion_v1_19;
     415            else if (uMinor > 19)
    414416                sv = SettingsVersion_Future;
    415417        }
     
    10431045            break;
    10441046
     1047        case SettingsVersion_v1_19:
     1048            pcszVersion = "1.19";
     1049            break;
     1050
    10451051        default:
    10461052            // catch human error: the assertion below will trigger in debug
     
    10651071                // but as it's an omission of someone who changed this file
    10661072                // it's the only generic possibility.
    1067                 pcszVersion = "1.18";
    1068                 m->sv = SettingsVersion_v1_18;
     1073                pcszVersion = "1.19";
     1074                m->sv = SettingsVersion_v1_19;
    10691075            }
    10701076            break;
     
    33623368    keyboardHIDType(KeyboardHIDType_PS2Keyboard),
    33633369    chipsetType(ChipsetType_PIIX3),
     3370    iommuType(IommuType_None),
    33643371    paravirtProvider(ParavirtProvider_Legacy), // default for old VMs, for new ones it's ParavirtProvider_Default
    33653372    strParavirtDebug(""),
     
    34863493            && keyboardHIDType                == h.keyboardHIDType
    34873494            && chipsetType                    == h.chipsetType
     3495            && iommuType                      == h.iommuType
    34883496            && paravirtProvider               == h.paravirtProvider
    34893497            && strParavirtDebug               == h.strParavirtDebug
     
    46014609                                          N_("Invalid value '%s' in Chipset/@type"),
    46024610                                          strChipsetType.c_str());
     4611            }
     4612        }
     4613        else if (pelmHwChild->nameEquals("Iommu"))
     4614        {
     4615            Utf8Str strIommuType;
     4616            if (pelmHwChild->getAttributeValue("type", strIommuType))
     4617            {
     4618                if (strIommuType == "None")
     4619                    hw.iommuType = IommuType_None;
     4620                else if (strIommuType == "Automatic")
     4621                    hw.iommuType = IommuType_Automatic;
     4622                else if (strIommuType == "AMD")
     4623                    hw.iommuType = IommuType_AMD;
     4624                else
     4625                    throw ConfigFileError(this,
     4626                                          pelmHwChild,
     4627                                          N_("Invalid value '%s' in Iommu/@type"),
     4628                                          strIommuType.c_str());
    46034629            }
    46044630        }
     
    60926118            && hw.strParavirtDebug.isNotEmpty())
    60936119            pelmParavirt->setAttribute("debug", hw.strParavirtDebug);
     6120    }
     6121
     6122    if (   m->sv >= SettingsVersion_v1_19
     6123        && hw.iommuType != IommuType_None)
     6124    {
     6125        const char *pcszIommuType;
     6126        switch (hw.iommuType)
     6127        {
     6128            case IommuType_None:         pcszIommuType = "None";        break;
     6129            case IommuType_Automatic:    pcszIommuType = "Automatic";   break;
     6130            case IommuType_AMD:          pcszIommuType = "AMD";         break;
     6131            default:     Assert(false);  pcszIommuType = "None";        break;
     6132        }
     6133
     6134        xml::ElementNode *pelmIommu = pelmHardware->createChild("Iommu");
     6135        pelmIommu->setAttribute("type", pcszIommuType);
    60946136    }
    60956137
     
    76317673void MachineConfigFile::bumpSettingsVersionIfNeeded()
    76327674{
     7675    if (m->sv < SettingsVersion_v1_19)
     7676    {
     7677        // VirtualBox 6.2 adds iommu device.
     7678        if (hardwareMachine.iommuType != IommuType_None)
     7679        {
     7680            m->sv = SettingsVersion_v1_19;
     7681            return;
     7682        }
     7683    }
     7684
    76337685    if (m->sv < SettingsVersion_v1_18)
    76347686    {
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