From 431a5a556d745f2d7476b50549a11091e28a50b5 Mon Sep 17 00:00:00 2001 From: Erik van der Kouwe Date: Fri, 15 Oct 2010 08:53:22 +0000 Subject: [PATCH] e1000: add 82574L ethernet adapter (thx Niek for your comments) --- commands/netconf/netconf.sh | 4 +++- drivers/e1000/e1000.c | 6 +++++- drivers/e1000/e1000_pci.h | 1 + drivers/pci/pci_table.c | 1 + etc/system.conf | 1 + 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/commands/netconf/netconf.sh b/commands/netconf/netconf.sh index 78064db4f..9606e64ce 100644 --- a/commands/netconf/netconf.sh +++ b/commands/netconf/netconf.sh @@ -110,7 +110,9 @@ cards() card 5 "Realtek 8029 based card (also emulated by Qemu)" "10EC:8029" card 6 "NE2000, 3com 503 or WD based card (also emulated by Bochs)" card 7 "AMD LANCE (also emulated by VMWare and VirtualBox)" "1022:2000" - card 8 "Intel PRO/1000 Gigabit" "8086:100E" "8086:107C" "8086:10CD" + card 8 "Intel PRO/1000 Gigabit" \ + "8086:100E" "8086:107C" "8086:10CD" "8086:10D3" + card 9 "Attansic/Atheros L2 FastEthernet" "1969:2048" card 10 "DEC Tulip 21140A in VirtualPC" "1011:0009" card 11 "Different Ethernet card (no networking)" diff --git a/drivers/e1000/e1000.c b/drivers/e1000/e1000.c index 90a171428..976e7dd0b 100644 --- a/drivers/e1000/e1000.c +++ b/drivers/e1000/e1000.c @@ -26,6 +26,7 @@ PRIVATE u16_t pcitab_e1000[] = E1000_DEV_ID_82540EM, E1000_DEV_ID_82541GI_LF, E1000_DEV_ID_ICH10_R_BM_LF, + E1000_DEV_ID_82574L, 0, }; @@ -285,6 +286,7 @@ PRIVATE int e1000_probe(e1000_t *e, int skip) e->eeprom_read = eeprom_ich; break; + case E1000_DEV_ID_82574L: case E1000_DEV_ID_82541GI_LF: e->eeprom_done_bit = (1 << 1); e->eeprom_addr_off = 2; @@ -320,7 +322,9 @@ PRIVATE int e1000_probe(e1000_t *e, int skip) panic("failed to map hardware registers from PCI"); } /* Optionally map flash memory. */ - if (pci_attr_r32(devind, PCI_BAR_3)) + if (did != E1000_DEV_ID_82540EM && + did != E1000_DEV_ID_82540EP && + pci_attr_r32(devind, PCI_BAR_2)) { if((e->flash = vm_map_phys(SELF, (void *) pci_attr_r32(devind, PCI_BAR_2), 0x10000)) == MAP_FAILED) { diff --git a/drivers/e1000/e1000_pci.h b/drivers/e1000/e1000_pci.h index 0528aaa3a..344c8b9eb 100644 --- a/drivers/e1000/e1000_pci.h +++ b/drivers/e1000/e1000_pci.h @@ -107,6 +107,7 @@ #define E1000_DEV_ID_PCH_M_HV_LC 0x10EB #define E1000_DEV_ID_PCH_D_HV_DM 0x10EF #define E1000_DEV_ID_PCH_D_HV_DC 0x10F0 +#define E1000_DEV_ID_82574L 0x10D3 #define E1000_DEV_ID_82576 0x10C9 #define E1000_DEV_ID_82576_FIBER 0x10E6 #define E1000_DEV_ID_82576_SERDES 0x10E7 diff --git a/drivers/pci/pci_table.c b/drivers/pci/pci_table.c index 47d38a476..65d87587d 100644 --- a/drivers/pci/pci_table.c +++ b/drivers/pci/pci_table.c @@ -138,6 +138,7 @@ struct pci_device pci_device_table[]= { 0x8086, 0x1064, "Intel Corporation 82562 PRO/100 VE" }, { 0x8086, 0x107C, "Intel PRO/1000 GT Desktop Adapter" }, { 0x8086, 0x10CD, "Intel PRO/1000 Gigabit Network Connection" }, + { 0x8086, 0x10D3, "Intel 82574L Gigabit Network Connection" }, { 0x8086, 0x1209, "Intel EtherExpressPro100 82559ER" }, { 0x8086, 0x1229, "Intel EtherExpressPro100 82557/8/9" }, { 0x8086, 0x122D, "Intel 82437FX" }, diff --git a/etc/system.conf b/etc/system.conf index 0c28b5965..8671583d8 100644 --- a/etc/system.conf +++ b/etc/system.conf @@ -599,6 +599,7 @@ service e1000 pci device 8086/100e; pci device 8086/107c; pci device 8086/10cd; + pci device 8086/10d3; ipc SYSTEM pm rs log tty ds vm pci inet ; -- 2.44.0