Extend Intel PRO/100 support

This commit is contained in:
Erik van der Kouwe 2009-08-26 21:01:46 +00:00
parent d84472dfc8
commit ada4859302
6 changed files with 19 additions and 2 deletions

View File

@ -98,6 +98,7 @@ PRIVATE struct pcitab pcitab_fxp[]=
{ {
{ 0x8086, 0x1229, 0 }, /* Intel 82557, etc. */ { 0x8086, 0x1229, 0 }, /* Intel 82557, etc. */
{ 0x8086, 0x2449, 0 }, /* Intel 82801BA/BAM/CA/CAM */ { 0x8086, 0x2449, 0 }, /* Intel 82801BA/BAM/CA/CAM */
{ 0x8086, 0x103d, 0 }, /* Intel 82801DB */
{ 0x0000, 0x0000, 0 } { 0x0000, 0x0000, 0 }
}; };
@ -210,6 +211,7 @@ fxp_t;
#define FT_82557 0x1 #define FT_82557 0x1
#define FT_82558A 0x2 #define FT_82558A 0x2
#define FT_82559 0x4 #define FT_82559 0x4
#define FT_82801 0x8
static fxp_t *fxp_table; static fxp_t *fxp_table;
phys_bytes fxp_table_phys; phys_bytes fxp_table_phys;
@ -634,6 +636,9 @@ fxp_t *fp;
case FXP_REV_82551_2: str= "82551(2)"; /* 0x10 */ case FXP_REV_82551_2: str= "82551(2)"; /* 0x10 */
fp->fxp_type= FT_82559; fp->fxp_type= FT_82559;
break; break;
case FXP_REV_82801DB: str= "82801DB"; /* 0x81 */
fp->fxp_type= FT_82801;
break;
} }
#if VERBOSE #if VERBOSE
@ -739,6 +744,7 @@ fxp_t *fp;
break; break;
case FT_82558A: case FT_82558A:
case FT_82559: case FT_82559:
case FT_82801:
if (mwi) if (mwi)
fp->fxp_conf_bytes[3] |= CCB3_MWIE; fp->fxp_conf_bytes[3] |= CCB3_MWIE;
if (ext_stat1) if (ext_stat1)
@ -758,6 +764,13 @@ fxp_t *fp;
} }
fp->fxp_conf_bytes[18] |= CCB18_LROK; 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; break;
default: default:
panic("FXP","fxp_conf_hw: bad device type", fp->fxp_type); panic("FXP","fxp_conf_hw: bad device type", fp->fxp_type);

View File

@ -24,6 +24,7 @@ Created: Nov 2004 by Philip Homburg <philip@f-mnx.phicoh.com>
#define FXP_REV_82550_3 0x0E #define FXP_REV_82550_3 0x0E
#define FXP_REV_82551_1 0x0F #define FXP_REV_82551_1 0x0F
#define FXP_REV_82551_2 0x10 #define FXP_REV_82551_2 0x10
#define FXP_REV_82801DB 0x81
/* Control/Status Registers (CSR). The first 8 bytes are called /* Control/Status Registers (CSR). The first 8 bytes are called
* System Control Block (SCB) * System Control Block (SCB)

View File

@ -350,7 +350,7 @@ message *mp;
return; return;
} }
acl[i].inuse= 1; acl[i].inuse= 1;
if(debug) if(debug > 1)
printf("PCI: do_acl: setting ACL for %d ('%s') at entry %d\n", printf("PCI: do_acl: setting ACL for %d ('%s') at entry %d\n",
acl[i].acl.rsp_endpoint, acl[i].acl.rsp_label, acl[i].acl.rsp_endpoint, acl[i].acl.rsp_label,
i); i);

View File

@ -1264,7 +1264,7 @@ PRIVATE void complete_bridges()
*===========================================================================*/ *===========================================================================*/
PRIVATE void complete_bars() PRIVATE void complete_bars()
{ {
#if 0 #if 1
int i, j, r, bar_nr, reg; int i, j, r, bar_nr, reg;
u32_t memgap_low, memgap_high, iogap_low, iogap_high, io_high, u32_t memgap_low, memgap_high, iogap_low, iogap_high, io_high,
base, size, v32, diff1, diff2; base, size, v32, diff1, diff2;

View File

@ -118,6 +118,7 @@ struct pci_device pci_device_table[]=
{ 0x8086, 0x1004, "Intel 82543GC Gigabit Ethernet Controller" }, { 0x8086, 0x1004, "Intel 82543GC Gigabit Ethernet Controller" },
{ 0x8086, 0x1029, "Intel EtherExpressPro100 ID1029" }, { 0x8086, 0x1029, "Intel EtherExpressPro100 ID1029" },
{ 0x8086, 0x1030, "Intel Corporation 82559 InBusiness 10/100" }, { 0x8086, 0x1030, "Intel Corporation 82559 InBusiness 10/100" },
{ 0x8086, 0x103d, "Intel Corporation 82801DB PRO/100 VE (MOB)" },
{ 0x8086, 0x1209, "Intel EtherExpressPro100 82559ER" }, { 0x8086, 0x1209, "Intel EtherExpressPro100 82559ER" },
{ 0x8086, 0x1229, "Intel EtherExpressPro100 82557/8/9" }, { 0x8086, 0x1229, "Intel EtherExpressPro100 82557/8/9" },
{ 0x8086, 0x122D, "Intel 82437FX" }, { 0x8086, 0x122D, "Intel 82437FX" },

View File

@ -114,7 +114,9 @@ driver fxp
PROFBUF # 38 PROFBUF # 38
SYSCTL SYSCTL
; ;
pci device 8086/103d;
pci device 8086/1229; pci device 8086/1229;
pci device 8086/2449;
ipc ipc
SYSTEM PM RS LOG TTY DS VM SYSTEM PM RS LOG TTY DS VM
pci inet amddev pci inet amddev