📄 tg3.h
字号:
/* $Id: tg3.h,v 1.3 2003/02/25 06:02:58 ebiederm Exp $ * tg3.h: Definitions for Broadcom Tigon3 ethernet driver. * * Copyright (C) 2001, 2002 David S. Miller (davem@redhat.com) * Copyright (C) 2001 Jeff Garzik (jgarzik@mandrakesoft.com) */#ifndef _T3_H#define _T3_H#include "stdint.h"typedef unsigned long dma_addr_t;/* From mii.h *//* Indicates what features are advertised by the interface. */#define ADVERTISED_10baseT_Half (1 << 0)#define ADVERTISED_10baseT_Full (1 << 1)#define ADVERTISED_100baseT_Half (1 << 2)#define ADVERTISED_100baseT_Full (1 << 3)#define ADVERTISED_1000baseT_Half (1 << 4)#define ADVERTISED_1000baseT_Full (1 << 5)#define ADVERTISED_Autoneg (1 << 6)#define ADVERTISED_TP (1 << 7)#define ADVERTISED_AUI (1 << 8)#define ADVERTISED_MII (1 << 9)#define ADVERTISED_FIBRE (1 << 10)#define ADVERTISED_BNC (1 << 11)/* The following are all involved in forcing a particular link * mode for the device for setting things. When getting the * devices settings, these indicate the current mode and whether * it was foced up into this mode or autonegotiated. *//* The forced speed, 10Mb, 100Mb, gigabit. */#define SPEED_10 0#define SPEED_100 1#define SPEED_1000 2#define SPEED_INVALID 3/* Duplex, half or full. */#define DUPLEX_HALF 0x00#define DUPLEX_FULL 0x01#define DUPLEX_INVALID 0x02/* Which connector port. */#define PORT_TP 0x00#define PORT_AUI 0x01#define PORT_MII 0x02#define PORT_FIBRE 0x03#define PORT_BNC 0x04/* Which tranceiver to use. */#define XCVR_INTERNAL 0x00#define XCVR_EXTERNAL 0x01#define XCVR_DUMMY1 0x02#define XCVR_DUMMY2 0x03#define XCVR_DUMMY3 0x04/* Enable or disable autonegotiation. If this is set to enable, * the forced link modes above are completely ignored. */#define AUTONEG_DISABLE 0x00#define AUTONEG_ENABLE 0x01/* Wake-On-Lan options. */#define WAKE_PHY (1 << 0)#define WAKE_UCAST (1 << 1)#define WAKE_MCAST (1 << 2)#define WAKE_BCAST (1 << 3)#define WAKE_ARP (1 << 4)#define WAKE_MAGIC (1 << 5)#define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC *//* Generic MII registers. */#define MII_BMCR 0x00 /* Basic mode control register */#define MII_BMSR 0x01 /* Basic mode status register */#define MII_PHYSID1 0x02 /* PHYS ID 1 */#define MII_PHYSID2 0x03 /* PHYS ID 2 */#define MII_ADVERTISE 0x04 /* Advertisement control reg */#define MII_LPA 0x05 /* Link partner ability reg */#define MII_EXPANSION 0x06 /* Expansion register */#define MII_DCOUNTER 0x12 /* Disconnect counter */#define MII_FCSCOUNTER 0x13 /* False carrier counter */#define MII_NWAYTEST 0x14 /* N-way auto-neg test reg */#define MII_RERRCOUNTER 0x15 /* Receive error counter */#define MII_SREVISION 0x16 /* Silicon revision */#define MII_RESV1 0x17 /* Reserved... */#define MII_LBRERROR 0x18 /* Lpback, rx, bypass error */#define MII_PHYADDR 0x19 /* PHY address */#define MII_RESV2 0x1a /* Reserved... */#define MII_TPISTATUS 0x1b /* TPI status for 10mbps */#define MII_NCONFIG 0x1c /* Network interface config *//* Basic mode control register. */#define BMCR_RESV 0x007f /* Unused... */#define BMCR_CTST 0x0080 /* Collision test */#define BMCR_FULLDPLX 0x0100 /* Full duplex */#define BMCR_ANRESTART 0x0200 /* Auto negotiation restart */#define BMCR_ISOLATE 0x0400 /* Disconnect DP83840 from MII */#define BMCR_PDOWN 0x0800 /* Powerdown the DP83840 */#define BMCR_ANENABLE 0x1000 /* Enable auto negotiation */#define BMCR_SPEED100 0x2000 /* Select 100Mbps */#define BMCR_LOOPBACK 0x4000 /* TXD loopback bits */#define BMCR_RESET 0x8000 /* Reset the DP83840 *//* Basic mode status register. */#define BMSR_ERCAP 0x0001 /* Ext-reg capability */#define BMSR_JCD 0x0002 /* Jabber detected */#define BMSR_LSTATUS 0x0004 /* Link status */#define BMSR_ANEGCAPABLE 0x0008 /* Able to do auto-negotiation */#define BMSR_RFAULT 0x0010 /* Remote fault detected */#define BMSR_ANEGCOMPLETE 0x0020 /* Auto-negotiation complete */#define BMSR_RESV 0x07c0 /* Unused... */#define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */#define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */#define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */#define BMSR_100FULL 0x4000 /* Can do 100mbps, full-duplex */#define BMSR_100BASE4 0x8000 /* Can do 100mbps, 4k packets *//* Advertisement control register. */#define ADVERTISE_SLCT 0x001f /* Selector bits */#define ADVERTISE_CSMA 0x0001 /* Only selector supported */#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */#define ADVERTISE_100BASE4 0x0200 /* Try for 100mbps 4k packets */#define ADVERTISE_RESV 0x1c00 /* Unused... */#define ADVERTISE_RFAULT 0x2000 /* Say we can detect faults */#define ADVERTISE_LPACK 0x4000 /* Ack link partners response */#define ADVERTISE_NPAGE 0x8000 /* Next page bit */#define ADVERTISE_FULL (ADVERTISE_100FULL | ADVERTISE_10FULL | \ ADVERTISE_CSMA)#define ADVERTISE_ALL (ADVERTISE_10HALF | ADVERTISE_10FULL | \ ADVERTISE_100HALF | ADVERTISE_100FULL)/* Link partner ability register. */#define LPA_SLCT 0x001f /* Same as advertise selector */#define LPA_10HALF 0x0020 /* Can do 10mbps half-duplex */#define LPA_10FULL 0x0040 /* Can do 10mbps full-duplex */#define LPA_100HALF 0x0080 /* Can do 100mbps half-duplex */#define LPA_100FULL 0x0100 /* Can do 100mbps full-duplex */#define LPA_100BASE4 0x0200 /* Can do 100mbps 4k packets */#define LPA_RESV 0x1c00 /* Unused... */#define LPA_RFAULT 0x2000 /* Link partner faulted */#define LPA_LPACK 0x4000 /* Link partner acked us */#define LPA_NPAGE 0x8000 /* Next page bit */#define LPA_DUPLEX (LPA_10FULL | LPA_100FULL)#define LPA_100 (LPA_100FULL | LPA_100HALF | LPA_100BASE4)/* Expansion register for auto-negotiation. */#define EXPANSION_NWAY 0x0001 /* Can do N-way auto-nego */#define EXPANSION_LCWP 0x0002 /* Got new RX page code word */#define EXPANSION_ENABLENPAGE 0x0004 /* This enables npage words */#define EXPANSION_NPCAPABLE 0x0008 /* Link partner supports npage */#define EXPANSION_MFAULTS 0x0010 /* Multiple faults detected */#define EXPANSION_RESV 0xffe0 /* Unused... *//* N-way test register. */#define NWAYTEST_RESV1 0x00ff /* Unused... */#define NWAYTEST_LOOPBACK 0x0100 /* Enable loopback for N-way */#define NWAYTEST_RESV2 0xfe00 /* Unused... *//* From tg3.h */#define TG3_64BIT_REG_HIGH 0x00UL#define TG3_64BIT_REG_LOW 0x04UL/* Descriptor block info. */#define TG3_BDINFO_HOST_ADDR 0x0UL /* 64-bit */#define TG3_BDINFO_MAXLEN_FLAGS 0x8UL /* 32-bit */#define BDINFO_FLAGS_USE_EXT_RECV 0x00000001 /* ext rx_buffer_desc */#define BDINFO_FLAGS_DISABLED 0x00000002#define BDINFO_FLAGS_MAXLEN_MASK 0xffff0000#define BDINFO_FLAGS_MAXLEN_SHIFT 16#define TG3_BDINFO_NIC_ADDR 0xcUL /* 32-bit */#define TG3_BDINFO_SIZE 0x10UL#define RX_COPY_THRESHOLD 256#define RX_STD_MAX_SIZE 1536#define RX_STD_MAX_SIZE_5705 512#define RX_JUMBO_MAX_SIZE 0xdeadbeef /* XXX *//* First 256 bytes are a mirror of PCI config space. */#define TG3PCI_VENDOR 0x00000000#define TG3PCI_VENDOR_BROADCOM 0x14e4#define TG3PCI_DEVICE 0x00000002#define TG3PCI_DEVICE_TIGON3_1 0x1644 /* BCM5700 */#define TG3PCI_DEVICE_TIGON3_2 0x1645 /* BCM5701 */#define TG3PCI_DEVICE_TIGON3_3 0x1646 /* BCM5702 */#define TG3PCI_DEVICE_TIGON3_4 0x1647 /* BCM5703 */#define TG3PCI_COMMAND 0x00000004#define TG3PCI_STATUS 0x00000006#define TG3PCI_CCREVID 0x00000008#define TG3PCI_CACHELINESZ 0x0000000c#define TG3PCI_LATTIMER 0x0000000d#define TG3PCI_HEADERTYPE 0x0000000e#define TG3PCI_BIST 0x0000000f#define TG3PCI_BASE0_LOW 0x00000010#define TG3PCI_BASE0_HIGH 0x00000014/* 0x18 --> 0x2c unused */#define TG3PCI_SUBSYSVENID 0x0000002c#define TG3PCI_SUBSYSID 0x0000002e#define TG3PCI_ROMADDR 0x00000030#define TG3PCI_CAPLIST 0x00000034/* 0x35 --> 0x3c unused */#define TG3PCI_IRQ_LINE 0x0000003c#define TG3PCI_IRQ_PIN 0x0000003d#define TG3PCI_MIN_GNT 0x0000003e#define TG3PCI_MAX_LAT 0x0000003f#define TG3PCI_X_CAPS 0x00000040#define PCIX_CAPS_RELAXED_ORDERING 0x00020000#define PCIX_CAPS_SPLIT_MASK 0x00700000#define PCIX_CAPS_SPLIT_SHIFT 20#define PCIX_CAPS_BURST_MASK 0x000c0000#define PCIX_CAPS_BURST_SHIFT 18#define PCIX_CAPS_MAX_BURST_CPIOB 2#define TG3PCI_PM_CAP_PTR 0x00000041#define TG3PCI_X_COMMAND 0x00000042#define TG3PCI_X_STATUS 0x00000044#define TG3PCI_PM_CAP_ID 0x00000048#define TG3PCI_VPD_CAP_PTR 0x00000049#define TG3PCI_PM_CAPS 0x0000004a#define TG3PCI_PM_CTRL_STAT 0x0000004c#define TG3PCI_BR_SUPP_EXT 0x0000004e#define TG3PCI_PM_DATA 0x0000004f#define TG3PCI_VPD_CAP_ID 0x00000050#define TG3PCI_MSI_CAP_PTR 0x00000051#define TG3PCI_VPD_ADDR_FLAG 0x00000052#define VPD_ADDR_FLAG_WRITE 0x00008000#define TG3PCI_VPD_DATA 0x00000054#define TG3PCI_MSI_CAP_ID 0x00000058#define TG3PCI_NXT_CAP_PTR 0x00000059#define TG3PCI_MSI_CTRL 0x0000005a#define TG3PCI_MSI_ADDR_LOW 0x0000005c#define TG3PCI_MSI_ADDR_HIGH 0x00000060#define TG3PCI_MSI_DATA 0x00000064/* 0x66 --> 0x68 unused */#define TG3PCI_MISC_HOST_CTRL 0x00000068#define MISC_HOST_CTRL_CLEAR_INT 0x00000001#define MISC_HOST_CTRL_MASK_PCI_INT 0x00000002#define MISC_HOST_CTRL_BYTE_SWAP 0x00000004#define MISC_HOST_CTRL_WORD_SWAP 0x00000008#define MISC_HOST_CTRL_PCISTATE_RW 0x00000010#define MISC_HOST_CTRL_CLKREG_RW 0x00000020#define MISC_HOST_CTRL_REGWORD_SWAP 0x00000040#define MISC_HOST_CTRL_INDIR_ACCESS 0x00000080#define MISC_HOST_CTRL_IRQ_MASK_MODE 0x00000100#define MISC_HOST_CTRL_TAGGED_STATUS 0x00000200#define MISC_HOST_CTRL_CHIPREV 0xffff0000#define MISC_HOST_CTRL_CHIPREV_SHIFT 16#define GET_CHIP_REV_ID(MISC_HOST_CTRL) \ (((MISC_HOST_CTRL) & MISC_HOST_CTRL_CHIPREV) >> \ MISC_HOST_CTRL_CHIPREV_SHIFT)#define CHIPREV_ID_5700_A0 0x7000#define CHIPREV_ID_5700_A1 0x7001#define CHIPREV_ID_5700_B0 0x7100#define CHIPREV_ID_5700_B1 0x7101#define CHIPREV_ID_5700_B3 0x7102#define CHIPREV_ID_5700_ALTIMA 0x7104#define CHIPREV_ID_5700_C0 0x7200#define CHIPREV_ID_5701_A0 0x0000#define CHIPREV_ID_5701_B0 0x0100#define CHIPREV_ID_5701_B2 0x0102#define CHIPREV_ID_5701_B5 0x0105#define CHIPREV_ID_5703_A0 0x1000#define CHIPREV_ID_5703_A1 0x1001#define CHIPREV_ID_5703_A2 0x1002#define CHIPREV_ID_5703_A3 0x1003#define CHIPREV_ID_5704_A0 0x2000#define CHIPREV_ID_5704_A1 0x2001#define CHIPREV_ID_5704_A2 0x2002#define CHIPREV_ID_5705_A0 0x3000#define CHIPREV_ID_5705_A1 0x3001#define CHIPREV_ID_5705_A2 0x3002#define CHIPREV_ID_5705_A3 0x3003#define GET_ASIC_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 12)#define ASIC_REV_5700 0x07#define ASIC_REV_5701 0x00#define ASIC_REV_5703 0x01#define ASIC_REV_5704 0x02#define ASIC_REV_5705 0x03#define GET_CHIP_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 8)#define CHIPREV_5700_AX 0x70#define CHIPREV_5700_BX 0x71#define CHIPREV_5700_CX 0x72#define CHIPREV_5701_AX 0x00#define GET_METAL_REV(CHIP_REV_ID) ((CHIP_REV_ID) & 0xff)#define METAL_REV_A0 0x00#define METAL_REV_A1 0x01#define METAL_REV_B0 0x00#define METAL_REV_B1 0x01#define METAL_REV_B2 0x02#define TG3PCI_DMA_RW_CTRL 0x0000006c#define DMA_RWCTRL_MIN_DMA 0x000000ff#define DMA_RWCTRL_MIN_DMA_SHIFT 0#define DMA_RWCTRL_READ_BNDRY_MASK 0x00000700#define DMA_RWCTRL_READ_BNDRY_DISAB 0x00000000#define DMA_RWCTRL_READ_BNDRY_16 0x00000100#define DMA_RWCTRL_READ_BNDRY_32 0x00000200#define DMA_RWCTRL_READ_BNDRY_64 0x00000300#define DMA_RWCTRL_READ_BNDRY_128 0x00000400#define DMA_RWCTRL_READ_BNDRY_256 0x00000500#define DMA_RWCTRL_READ_BNDRY_512 0x00000600#define DMA_RWCTRL_READ_BNDRY_1024 0x00000700
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -