Skip to content

Commit

Permalink
e1000: remove broken support for 82573L
Browse files Browse the repository at this point in the history
Currently, e1000 support is based on the manual for the 8254xx
model series. 82573x models are documented in a separate manual
(see http://www.intel.com/content/dam/www/public/us/en/documents/manuals/pcie-gbe-controllers-open-source-manual.pdf)
and the 82573L device ID no longer works correctly on either Linux
(3.14.*) or Windows 7.

This patch removes stale code claiming to support 82573L, cleaning
up the code base for the remaining 8254xx model series.

Signed-off-by: Gabriel Somlo <somlo@cmu.edu>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
  • Loading branch information
gsomlo authored and stefanhaRH committed Jun 9, 2014
1 parent b167383 commit 7efea76
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 19 deletions.
18 changes: 0 additions & 18 deletions hw/net/e1000.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,6 @@ static int debugflags = DBGBIT(TXERR) | DBGBIT(GENERAL);
/*
* HW models:
* E1000_DEV_ID_82540EM works with Windows, Linux, and OS X <= 10.8
* E1000_DEV_ID_82573L OK with windoze and Linux 2.6.22,
* appears to perform better than 82540EM, but breaks with Linux 2.6.18
* E1000_DEV_ID_82544GC_COPPER appears to work; not well tested
* E1000_DEV_ID_82545EM_COPPER works with Linux and OS X >= 10.6
* Others never tested
Expand Down Expand Up @@ -144,7 +142,6 @@ typedef struct E1000State_st {
typedef struct E1000BaseClass {
PCIDeviceClass parent_class;
uint16_t phy_id2;
bool is_8257xx;
} E1000BaseClass;

#define TYPE_E1000_BASE "e1000-base"
Expand Down Expand Up @@ -271,15 +268,9 @@ static void
set_interrupt_cause(E1000State *s, int index, uint32_t val)
{
PCIDevice *d = PCI_DEVICE(s);
E1000BaseClass *edc = E1000_DEVICE_GET_CLASS(d);
uint32_t pending_ints;
uint32_t mit_delay;

if (val && edc->is_8257xx) {
/* hack only for 8257xx models */
val |= E1000_ICR_INT_ASSERTED;
}

s->mac_reg[ICR] = val;

/*
Expand Down Expand Up @@ -1581,7 +1572,6 @@ typedef struct E1000Info {
uint16_t device_id;
uint8_t revision;
uint16_t phy_id2;
bool is_8257xx;
} E1000Info;

static void e1000_class_init(ObjectClass *klass, void *data)
Expand All @@ -1598,7 +1588,6 @@ static void e1000_class_init(ObjectClass *klass, void *data)
k->device_id = info->device_id;
k->revision = info->revision;
e->phy_id2 = info->phy_id2;
e->is_8257xx = info->is_8257xx;
k->class_id = PCI_CLASS_NETWORK_ETHERNET;
set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
dc->desc = "Intel Gigabit Ethernet";
Expand Down Expand Up @@ -1634,13 +1623,6 @@ static const E1000Info e1000_devices[] = {
.revision = 0x03,
.phy_id2 = E1000_PHY_ID2_8254xx_DEFAULT,
},
{
.name = "e1000-82573l",
.device_id = E1000_DEV_ID_82573L,
.revision = 0x03,
.phy_id2 = E1000_PHY_ID2_82573x,
.is_8257xx = true,
},
};

static const TypeInfo e1000_default_info = {
Expand Down
1 change: 0 additions & 1 deletion tests/e1000-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ static const char *models[] = {
"e1000-82540em",
"e1000-82544gc",
"e1000-82545em",
"e1000-82573l",
};

int main(int argc, char **argv)
Expand Down

0 comments on commit 7efea76

Please sign in to comment.