VirtualBox

Changeset 18591 in vbox for trunk/src/VBox/Devices/Network


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

E1000: Added support for 82545EM (MT Server)

File:
1 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 */
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