diff options
author | mjacob <mjacob@FreeBSD.org> | 2000-10-16 23:08:45 +0000 |
---|---|---|
committer | mjacob <mjacob@FreeBSD.org> | 2000-10-16 23:08:45 +0000 |
commit | fa60c9131abce6e30c48c2193513d79197871073 (patch) | |
tree | c82633fd2f3ec460cf2758593f744acccd0af2f0 /sys/pci/if_wxreg.h | |
parent | 0630faf57d33ad66926819237bb3ac2222b6eb65 (diff) | |
download | FreeBSD-src-fa60c9131abce6e30c48c2193513d79197871073.zip FreeBSD-src-fa60c9131abce6e30c48c2193513d79197871073.tar.gz |
Very early and very *very* lightly tested support for LIVENGOOD chipset
(followon to WISEMAN). Presumably some flavors are also no multimode copper
as well.
Diffstat (limited to 'sys/pci/if_wxreg.h')
-rw-r--r-- | sys/pci/if_wxreg.h | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/sys/pci/if_wxreg.h b/sys/pci/if_wxreg.h index 9a7309b..da78b6f 100644 --- a/sys/pci/if_wxreg.h +++ b/sys/pci/if_wxreg.h @@ -29,10 +29,21 @@ #define WX_VENDOR_INTEL 0x8086 #define WX_PRODUCT_82452 0x1000 +#define WX_PRODUCT_LIVENGOOD 0x1001 +#define WX_PRODUCT_82452_SC 0x1003 #define WX_MMBA 0x10 #define MWI 0x10 /* Memory Write Invalidate */ #define WX_CACHELINE_SIZE 0x20 +/* Join PCI ID and revision into one value */ +#define WX_WISEMAN_0 0x10000000 +#define WX_WISEMAN_2_0 0x10000002 +#define WX_WISEMAN_2_1 0x10000003 +#define WX_LIVENGOOD 0x10010000 + +#define IS_WISEMAN(sc) ((sc)->wx_idnrev < WX_LIVENGOOD) +#define IS_LIVENGOOD(sc) (!IS_WISEMAN(sc)) + /* * Information about this chipset gathered from a released Intel Linux driver, * which was clearly a port of an NT driver. @@ -107,6 +118,8 @@ typedef struct { #define WXREG_DCR 0x00000000 #define WXREG_DSR 0x00000008 #define WXREG_EECDR 0x00000010 +#define WXREG_EXCT 0x00000018 +#define WXREG_MDIC 0x00000020 #define WXREG_FCAL 0x00000028 #define WXREG_FCAH 0x0000002C #define WXREG_FCT 0x00000030 @@ -165,6 +178,11 @@ typedef struct { #define WXDCR_LRST 0x8 /* Link Reset */ #define WXDCR_SLU 0x40 /* Set Link Up */ #define WXDCR_ILOS 0x80 /* Invert Loss-of-Signal */ +#define WXDCR_100BT 0x100 /* LIVENGOOD: Set 100BaseT */ +#define WXDCR_1000BT 0x200 /* LIVENGOOD: Set 1000BaseT */ +#define WXDCR_BEM32 0x400 /* LIVENGOOD: Set Big Endian 32 (?) */ +#define WXDCR_FRCSPD 0x800 /* LIVENGOOD: Force Speed (?) */ +#define WXDCR_FRCDPX 0x1000 /* LIVENGOOD: Force Full Duplex */ /* * General purpose I/O pins @@ -201,6 +219,13 @@ typedef struct { #define WXDSR_TXCLK 0x4 /* transmit clock running */ #define WXDSR_RBCLK 0x8 /* receive clock running */ #define WXDSR_TXOFF 0x10 /* transmit paused */ +#define WXDSR_TBIMODE 0x20 /* LIVENGOOD: Fibre Mode */ +#define WXDSR_100BT 0x40 /* LIVENGOOD: 100BaseT */ +#define WXDSR_1000BT 0x80 /* LIVENGOOD: 1000BaseT */ +#define WXDSR_ASDV 0x300 /* LIVENGOOD: ?? */ +#define WXDSR_MTXCKOK 0x400 /* LIVENGOOD: ?? */ +#define WXDSR_PCI66 0x800 /* LIVENGOOD: 66 MHz bus */ +#define WXDSR_BUS64 0x1000 /* LIVENGOOD: In 64 bit slot */ /* * EEPROM Register Defines @@ -236,8 +261,10 @@ typedef struct { #define WXISR_LSC 0x4 /* link status change */ #define WXISR_RXSEQ 0x8 /* receive sequence error */ #define WXISR_RXDMT0 0x10 /* receiver ring 0 getting empty */ +#define WXISR_RXDMT1 0x20 /* receiver ring 1 getting empty */ #define WXISR_RXO 0x40 /* receiver overrun */ #define WXISR_RXT0 0x80 /* ring 0 receiver timer interrupt */ +#define WXISR_RXT1 0x100 /* ring 1 receiver timer interrupt */ #define WXISR_PCIE 0x200 /* ?? Probably PCI interface error... */ #define WXIENABLE_DEFAULT \ @@ -256,12 +283,17 @@ typedef struct { #define WXRCTL_MPE 0x10 /* multicast promiscuous mode */ #define WXRCTL_LPE 0x20 /* large packet enable */ #define WXRCTL_BAM 0x8000 /* broadcast accept mode */ +#define WXRCTL_BSEX 0x2000000 /* LIVENGOOD: Buffer Size Extension */ -#define WXRCTL_2KRBUF (0 << 16) /* 2-Kbyte Receive Buffers */ -#define WXRCTL_1KRBUF (1 << 16) /* 1-Kbyte Receive Buffers */ +#define WXRCTL_2KRBUF (0 << 16) /* 2KB Receive Buffers */ +#define WXRCTL_1KRBUF (1 << 16) /* 1KB Receive Buffers */ #define WXRCTL_512BRBUF (2 << 16) /* 512 Byte Receive Buffers */ #define WXRCTL_256BRBUF (3 << 16) /* 256 Byte Receive Buffers */ +#define WXRCTL_4KRBUF (3 << 16) /* LIVENGOOD: 4KB Receive Buffers */ +#define WXRCTL_8KRBUF (2 << 16) /* LIVENGOOD: 8KB Receive Buffers */ +#define WXRCTL_16KRBUF (1 << 16) /* LIVENGOOD: 16KB Receive Buffers */ + /* * Receive Delay Timer Register bits. @@ -327,12 +359,17 @@ typedef struct { #define WX_EEPROM_CTLR1_SWDPIO_SHIFT 5 #define WX_EEPROM_CTLR1_ILOS (1 << 4) +#define WX_EEPROM_CTLR2_OFF 0xF +#define WX_EEPROM_CTLR2_SWDPIO 0xF0 +#define WX_EEPROM_EXT_SHIFT 4 + #define WX_XTIMER_DFLT 0x100 #define WX_RCV_FLOW_HI_DFLT 0x8000 #define WX_RCV_FLOW_LO_DFLT 0x4000 -#define WX_TIPG_DFLT (10 | (2 << 10) | (10 << 20)) +#define WX_WISEMAN_TIPG_DFLT (10 | (2 << 10) | (10 << 20)) +#define WX_LIVENGOOD_TIPG_DFLT (6 | (8 << 10) | (6 << 20)) #define WX_CRC_LENGTH 4 |