VirtualBox

Changeset 18591 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Apr 1, 2009 10:11:51 AM (16 years ago)
Author:
vboxsync
Message:

E1000: Added support for 82545EM (MT Server)

Location:
trunk/src/VBox
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DevE1000.cpp

    r18439 r18591  
    129129/*****************************************************************************/
    130130
    131 typedef uint32_t E1KCHIP;
    132 #define E1K_CHIP_82540EM 0
    133 #define E1K_CHIP_82543GC 1
    134 
    135131/* Intel */
    136132#define E1K_VENDOR_ID            0x8086
    137133/* 82540EM-A (Desktop) */
    138134#define E1K_DEVICE_ID_82540EM    0x100E
     135/* 82545EM-A (Server) */
     136#define E1K_DEVICE_ID_82545EM    0x100F
    139137/* 82543GC (Server) */
    140138#define E1K_DEVICE_ID_82543GC    0x1004
     
    143141/* PRO/1000 MT Desktop Ethernet */
    144142#define E1K_SUBSYSTEM_ID_82540EM 0x001E
     143/* PRO/1000 MT Server Ethernet */
     144#define E1K_SUBSYSTEM_ID_82545EM 0x1001
    145145/* PRO/1000 T Server Ethernet */
    146146#define E1K_SUBSYSTEM_ID_82543GC 0x1004
     147
     148typedef uint32_t E1KCHIP;
     149#define E1K_CHIP_82540EM 0
     150#define E1K_CHIP_82543GC 1
     151#define E1K_CHIP_82545EM 2
     152
     153struct E1kChips
     154{
     155    uint16_t uPCIDeviceId;
     156    uint16_t uPCISubsystemId;
     157    const char *pcszName;
     158} g_Chips[] =
     159{
     160    { E1K_DEVICE_ID_82540EM, E1K_SUBSYSTEM_ID_82540EM, "82540EM" },
     161    { E1K_DEVICE_ID_82543GC, E1K_SUBSYSTEM_ID_82543GC, "82543GC" },
     162    { E1K_DEVICE_ID_82545EM, E1K_SUBSYSTEM_ID_82545EM, "82545EM" }
     163};
     164
    147165
    148166/* The size of register area mapped to I/O space */
     
    45584576static DECLCALLBACK(void) e1kConfigurePCI(PCIDEVICE& pci, E1KCHIP eChip)
    45594577{
     4578    Assert(eChip < RT_ELEMENTS(g_Chips));
    45604579    /* Configure PCI Device, assume 32-bit mode ******************************/
    45614580    PCIDevSetVendorId(&pci, E1K_VENDOR_ID);
    4562     PCIDevSetDeviceId(&pci, eChip == E1K_CHIP_82540EM ?
    4563                       E1K_DEVICE_ID_82540EM:
    4564                       E1K_DEVICE_ID_82543GC);
     4581    PCIDevSetDeviceId(&pci, g_Chips[eChip].uPCIDeviceId);
    45654582    e1kPCICfgSetU16(pci, VBOX_PCI_SUBSYSTEM_VENDOR_ID, E1K_SUBSYSTEM_VENDOR_ID);
    4566     e1kPCICfgSetU16(pci, VBOX_PCI_SUBSYSTEM_ID, eChip == E1K_CHIP_82540EM ?
    4567                     E1K_SUBSYSTEM_ID_82540EM:
    4568                     E1K_SUBSYSTEM_ID_82543GC);
     4583    e1kPCICfgSetU16(pci, VBOX_PCI_SUBSYSTEM_ID, g_Chips[eChip].uPCISubsystemId);
    45694584
    45704585    e1kPCICfgSetU16(pci, VBOX_PCI_COMMAND,            0x0000);
     
    46674682        return PDMDEV_SET_ERROR(pDevIns, rc,
    46684683                                N_("Configuration error: Failed to get the value of 'AdapterType'"));
    4669     Assert(pState->eChip == E1K_CHIP_82540EM ||
    4670            pState->eChip == E1K_CHIP_82543GC);
    4671 
    4672     E1kLog(("%s Chip=%s\n", INSTANCE(pState), pState->eChip == E1K_CHIP_82540EM ? "82540EM" : "82543GC"));
     4684    Assert(pState->eChip <= E1K_CHIP_82545EM);
     4685
     4686    E1kLog(("%s Chip=%s\n", INSTANCE(pState), g_Chips[pState->eChip].pcszName));
    46734687
    46744688    /* Initialize state structure */
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp

    r18566 r18591  
    162162                 "                            [-nictype<1-N> Am79C970A|Am79C973"
    163163#ifdef VBOX_WITH_E1000
    164                                                                               "|82540EM|82543GC"
     164                                                                              "|82540EM|82543GC|82545EM"
    165165#endif
    166166                 "]\n"
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r18113 r18591  
    763763                    strNICType = "82543GC";
    764764                    break;
     765                case NetworkAdapterType_I82545EM:
     766                    strNICType = "82545EM";
     767                    break;
    765768#endif
    766769                default:
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp

    r18177 r18591  
    14931493                    CHECK_ERROR_RET(nic, COMSETTER(AdapterType)(NetworkAdapterType_I82543GC), 1);
    14941494                }
     1495                else if (strcmp(nictype[n], "82545EM") == 0)
     1496                {
     1497                    CHECK_ERROR_RET(nic, COMSETTER(AdapterType)(NetworkAdapterType_I82545EM), 1);
     1498                }
    14951499#endif
    14961500                else
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxApplianceEditorWgt.cpp

    r18384 r18591  
    408408                    e->addItem (vboxGlobal().toString (KNetworkAdapterType_I82540EM), KNetworkAdapterType_I82540EM);
    409409                    e->addItem (vboxGlobal().toString (KNetworkAdapterType_I82543GC), KNetworkAdapterType_I82543GC);
     410                    e->addItem (vboxGlobal().toString (KNetworkAdapterType_I82545EM), KNetworkAdapterType_I82545EM);
    410411#endif /* VBOX_WITH_E1000 */
    411412                    editor = e;
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp

    r18495 r18591  
    29132913    mNetworkAdapterTypes [KNetworkAdapterType_I82543GC] =
    29142914        tr ("Intel PRO/1000 T Server (82543GC)", "NetworkAdapterType");
     2915    mNetworkAdapterTypes [KNetworkAdapterType_I82545EM] =
     2916        tr ("Intel PRO/1000 MT Server (82545EM)", "NetworkAdapterType");
    29152917
    29162918    mNetworkAttachmentTypes [KNetworkAttachmentType_Null] =
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMInformationDlg.cpp

    r18358 r18591  
    262262            case KNetworkAdapterType_I82540EM:
    263263            case KNetworkAdapterType_I82543GC:
     264            case KNetworkAdapterType_I82545EM:
    264265                name = "E1k";
    265266                break;
  • trunk/src/VBox/Frontends/VirtualBox/src/VBoxVMSettingsNetwork.cpp

    r18404 r18591  
    293293    mCbAdapterType->setItemData (3,
    294294        mCbAdapterType->itemText (3), Qt::ToolTipRole);
     295    mCbAdapterType->insertItem (4,
     296        vboxGlobal().toString (KNetworkAdapterType_I82545EM));
     297    mCbAdapterType->setItemData (4,
     298        KNetworkAdapterType_I82545EM);
     299    mCbAdapterType->setItemData (4,
     300        mCbAdapterType->itemText (4), Qt::ToolTipRole);
    295301#endif /* VBOX_WITH_E1000 */
    296302
  • trunk/src/VBox/Main/ApplianceImpl.cpp

    r18590 r18591  
    15291529                    else if (!ea.strAdapterType.compare("E1000", Utf8Str::CaseInsensitive))
    15301530                    {
    1531                         /* If the default adapter is already one of the two
     1531                        /* If the default adapter is already one of the three
    15321532                         * E1000 adapters use the default one. If not use the
    15331533                         * I82540EM as fallback. */
    15341534                        if (!(defaultAdapterVBox == NetworkAdapterType_I82540EM ||
    1535                               defaultAdapterVBox == NetworkAdapterType_I82543GC))
     1535                              defaultAdapterVBox == NetworkAdapterType_I82543GC ||
     1536                              defaultAdapterVBox == NetworkAdapterType_I82545EM))
    15361537                            nwAdapterVBox = NetworkAdapterType_I82540EM;
    15371538                    }
     
    30013002#ifdef VBOX_WITH_E1000
    30023003                                    case NetworkAdapterType_I82540EM:
     3004                                    case NetworkAdapterType_I82545EM:
    30033005                                    case NetworkAdapterType_I82543GC: strResourceSubType = "E1000"; break;
    30043006#endif /* VBOX_WITH_E1000 */
  • trunk/src/VBox/Main/ConsoleImpl.cpp

    r18493 r18591  
    31963196            AssertComRC(rc);
    31973197            if (adapterType == NetworkAdapterType_I82540EM ||
    3198                 adapterType == NetworkAdapterType_I82543GC)
     3198                adapterType == NetworkAdapterType_I82543GC ||
     3199                adapterType == NetworkAdapterType_I82545EM)
    31993200                cszAdapterName = "e1000";
    32003201#endif
  • trunk/src/VBox/Main/ConsoleImpl2.cpp

    r18405 r18591  
    12031203            case NetworkAdapterType_I82540EM:
    12041204            case NetworkAdapterType_I82543GC:
     1205            case NetworkAdapterType_I82545EM:
    12051206                pDev = pDevE1000;
    12061207                break;
     
    12561257            case NetworkAdapterType_I82543GC:
    12571258                rc = CFGMR3InsertInteger(pCfg, "AdapterType", 1);                   RC_CHECK();
     1259                break;
     1260            case NetworkAdapterType_I82545EM:
     1261                rc = CFGMR3InsertInteger(pCfg, "AdapterType", 2);                   RC_CHECK();
    12581262                break;
    12591263        }
  • trunk/src/VBox/Main/NetworkAdapterImpl.cpp

    r17843 r18591  
    209209        case NetworkAdapterType_I82540EM:
    210210        case NetworkAdapterType_I82543GC:
     211        case NetworkAdapterType_I82545EM:
    211212#endif
    212213            break;
     
    883884    else if (strcmp (adapterType, "82543GC") == 0)
    884885        mData->mAdapterType = NetworkAdapterType_I82543GC;
     886    else if (strcmp (adapterType, "82545EM") == 0)
     887        mData->mAdapterType = NetworkAdapterType_I82545EM;
    885888    else
    886889        ComAssertMsgFailedRet (("Invalid adapter type '%s'", adapterType),
     
    10131016            typeStr = "82543GC";
    10141017            break;
     1018        case NetworkAdapterType_I82545EM:
     1019            typeStr = "82545EM";
     1020            break;
    10151021        default:
    10161022            ComAssertMsgFailedRet (("Invalid network adapter type: %d",
     
    11631169    /* Set default network adapter for this OS type */
    11641170    if (defaultType == NetworkAdapterType_I82540EM ||
    1165         defaultType == NetworkAdapterType_I82543GC)
     1171        defaultType == NetworkAdapterType_I82543GC ||
     1172        defaultType == NetworkAdapterType_I82545EM)
    11661173    {
    11671174        if (e1000enabled) mData->mAdapterType = defaultType;
  • trunk/src/VBox/Main/idl/VirtualBox.xidl

    r18566 r18591  
    1091210912    <const name="I82540EM"              value="3"/>
    1091310913    <const name="I82543GC"              value="4"/>
     10914    <const name="I82545EM"              value="5"/>
    1091410915  </enum>
    1091510916
  • trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd

    r18265 r18591  
    215215    <xsd:enumeration value="82540EM"/>
    216216    <xsd:enumeration value="82543GC"/>
     217    <xsd:enumeration value="82545EM"/>
    217218  </xsd:restriction>
    218219</xsd:simpleType>
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