From: Erik van der Kouwe Date: Wed, 26 Aug 2009 21:01:46 +0000 (+0000) Subject: Extend Intel PRO/100 support X-Git-Tag: v3.1.5~174 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/zpipe.c?a=commitdiff_plain;h=ada48593024ba6963fe67bc36a1aa2b94a44cc4a;p=minix.git Extend Intel PRO/100 support --- diff --git a/drivers/fxp/fxp.c b/drivers/fxp/fxp.c index 20a7779bf..b739bb0ca 100644 --- a/drivers/fxp/fxp.c +++ b/drivers/fxp/fxp.c @@ -98,6 +98,7 @@ PRIVATE struct pcitab pcitab_fxp[]= { { 0x8086, 0x1229, 0 }, /* Intel 82557, etc. */ { 0x8086, 0x2449, 0 }, /* Intel 82801BA/BAM/CA/CAM */ + { 0x8086, 0x103d, 0 }, /* Intel 82801DB */ { 0x0000, 0x0000, 0 } }; @@ -210,6 +211,7 @@ fxp_t; #define FT_82557 0x1 #define FT_82558A 0x2 #define FT_82559 0x4 +#define FT_82801 0x8 static fxp_t *fxp_table; phys_bytes fxp_table_phys; @@ -634,6 +636,9 @@ fxp_t *fp; case FXP_REV_82551_2: str= "82551(2)"; /* 0x10 */ fp->fxp_type= FT_82559; break; + case FXP_REV_82801DB: str= "82801DB"; /* 0x81 */ + fp->fxp_type= FT_82801; + break; } #if VERBOSE @@ -739,6 +744,7 @@ fxp_t *fp; break; case FT_82558A: case FT_82559: + case FT_82801: if (mwi) fp->fxp_conf_bytes[3] |= CCB3_MWIE; if (ext_stat1) @@ -758,6 +764,13 @@ fxp_t *fp; } fp->fxp_conf_bytes[18] |= CCB18_LROK; + + if (fp->fxp_type == FT_82801) + { + fp->fxp_conf_bytes[6] = 0xba; /* ctrl 1 */ + fp->fxp_conf_bytes[15] = 0x48; /* promiscuous */ + fp->fxp_conf_bytes[21] = 0x05; /* mc_all */ + } break; default: panic("FXP","fxp_conf_hw: bad device type", fp->fxp_type); diff --git a/drivers/fxp/fxp.h b/drivers/fxp/fxp.h index 882bc2b6b..2b2f1730d 100644 --- a/drivers/fxp/fxp.h +++ b/drivers/fxp/fxp.h @@ -24,6 +24,7 @@ Created: Nov 2004 by Philip Homburg #define FXP_REV_82550_3 0x0E #define FXP_REV_82551_1 0x0F #define FXP_REV_82551_2 0x10 +#define FXP_REV_82801DB 0x81 /* Control/Status Registers (CSR). The first 8 bytes are called * System Control Block (SCB) diff --git a/drivers/pci/main.c b/drivers/pci/main.c index fba9440fe..0aeecedad 100644 --- a/drivers/pci/main.c +++ b/drivers/pci/main.c @@ -350,7 +350,7 @@ message *mp; return; } acl[i].inuse= 1; - if(debug) + if(debug > 1) printf("PCI: do_acl: setting ACL for %d ('%s') at entry %d\n", acl[i].acl.rsp_endpoint, acl[i].acl.rsp_label, i); diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 9861087ba..c4c9971d7 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -1264,7 +1264,7 @@ PRIVATE void complete_bridges() *===========================================================================*/ PRIVATE void complete_bars() { -#if 0 +#if 1 int i, j, r, bar_nr, reg; u32_t memgap_low, memgap_high, iogap_low, iogap_high, io_high, base, size, v32, diff1, diff2; diff --git a/drivers/pci/pci_table.c b/drivers/pci/pci_table.c index df3ca004c..7b46c9ca7 100644 --- a/drivers/pci/pci_table.c +++ b/drivers/pci/pci_table.c @@ -118,6 +118,7 @@ struct pci_device pci_device_table[]= { 0x8086, 0x1004, "Intel 82543GC Gigabit Ethernet Controller" }, { 0x8086, 0x1029, "Intel EtherExpressPro100 ID1029" }, { 0x8086, 0x1030, "Intel Corporation 82559 InBusiness 10/100" }, + { 0x8086, 0x103d, "Intel Corporation 82801DB PRO/100 VE (MOB)" }, { 0x8086, 0x1209, "Intel EtherExpressPro100 82559ER" }, { 0x8086, 0x1229, "Intel EtherExpressPro100 82557/8/9" }, { 0x8086, 0x122D, "Intel 82437FX" }, diff --git a/etc/drivers.conf b/etc/drivers.conf index 348c60e73..6cf6821c9 100644 --- a/etc/drivers.conf +++ b/etc/drivers.conf @@ -114,7 +114,9 @@ driver fxp PROFBUF # 38 SYSCTL ; + pci device 8086/103d; pci device 8086/1229; + pci device 8086/2449; ipc SYSTEM PM RS LOG TTY DS VM pci inet amddev