35 #define RESET_KIND_SHUTDOWN 0 36 #define RESET_KIND_INIT 1 37 #define RESET_KIND_SUSPEND 2 39 #define TG3_DEF_MAC_MODE 0 42 {
DBGP(
"%s\n", __func__);
49 {
DBGP(
"%s\n", __func__);
59 {
DBGP(
"%s\n", __func__);
65 {
DBGP(
"%s\n", __func__);
71 {
DBGP(
"%s\n", __func__);
98 {
DBGP(
"%s\n", __func__);
114 {
DBGP(
"%s\n", __func__);
130 {
DBGP(
"%s\n", __func__);
153 {
DBGP(
"%s\n", __func__);
168 #define PCI_VENDOR_ID_ARIMA 0x161f 171 {
DBGP(
"%s\n", __func__);
206 u32 nic_cfg, led_cfg;
207 u32 nic_phy_id, ver, cfg2 = 0, cfg4 = 0, eeprom_phy_id;
208 int eeprom_phy_serdes = 0;
211 tp->nic_sram_data_cfg = nic_cfg;
218 (ver > 0) && (ver < 0x100))
226 eeprom_phy_serdes = 1;
229 if (nic_phy_id != 0) {
233 eeprom_phy_id = (id1 >> 16) << 10;
234 eeprom_phy_id |= (id2 & 0xfc00) << 16;
235 eeprom_phy_id |= (id2 & 0x03ff) << 0;
239 tp->phy_id = eeprom_phy_id;
240 if (eeprom_phy_serdes) {
308 if ((
tp->subsystem_vendor ==
310 (
tp->subsystem_device == 0x205a ||
311 tp->subsystem_device == 0x2063))
328 if (cfg2 & (1 << 17))
333 if (cfg2 & (1 << 18))
360 {
DBGP(
"%s\n", __func__);
370 orig_clock_ctrl = clock_ctrl;
374 tp->pci_clock_ctrl = clock_ctrl;
394 {
DBGP(
"%s\n", __func__);
397 u32 pci_state_reg, grc_misc_cfg;
422 tp->pci_chip_rev_id = (misc_ctrl_reg >>
425 u32 prod_id_asic_rev;
449 tp->pci_chip_rev_id = prod_id_asic_rev;
459 tp->misc_host_ctrl |= (misc_ctrl_reg &
502 if (
tp->pcie_cap != 0) {
526 "Cannot find PCI-X capability, aborting\n");
542 &
tp->pci_cacheline_sz);
546 tp->pci_lat_timer < 64) {
547 tp->pci_lat_timer = 64;
701 if (
tp->phy_otp == 0)
710 tp->coalesce_mode = 0;
761 writel(0x00000000, sram_base);
762 writel(0x00000000, sram_base + 4);
763 writel(0xffffffff, sram_base + 4);
764 if (
readl(sram_base) != 0x00000000)
801 (grc_misc_cfg == 0x8000 || grc_misc_cfg == 0x4000)) ||
819 DBGC(&
tp->pdev->dev,
"phy probe failed, err: %s\n",
strerror(err));
844 tp->rx_std_max_post = 8;
850 {
DBGP(
"%s\n", __func__);
853 tp->bufmgr_config.mbuf_read_dma_low_water =
855 tp->bufmgr_config.mbuf_mac_rx_low_water =
857 tp->bufmgr_config.mbuf_high_water =
860 tp->bufmgr_config.mbuf_read_dma_low_water_jumbo =
862 tp->bufmgr_config.mbuf_mac_rx_low_water_jumbo =
864 tp->bufmgr_config.mbuf_high_water_jumbo =
867 tp->bufmgr_config.mbuf_read_dma_low_water =
869 tp->bufmgr_config.mbuf_mac_rx_low_water =
871 tp->bufmgr_config.mbuf_high_water =
874 tp->bufmgr_config.mbuf_mac_rx_low_water =
876 tp->bufmgr_config.mbuf_high_water =
880 tp->bufmgr_config.mbuf_read_dma_low_water_jumbo =
882 tp->bufmgr_config.mbuf_mac_rx_low_water_jumbo =
884 tp->bufmgr_config.mbuf_high_water_jumbo =
887 tp->bufmgr_config.mbuf_read_dma_low_water =
889 tp->bufmgr_config.mbuf_mac_rx_low_water =
891 tp->bufmgr_config.mbuf_high_water =
894 tp->bufmgr_config.mbuf_read_dma_low_water_jumbo =
896 tp->bufmgr_config.mbuf_mac_rx_low_water_jumbo =
898 tp->bufmgr_config.mbuf_high_water_jumbo =
906 #define TG3_FW_EVENT_TIMEOUT_USEC 2500 909 {
DBGP(
"%s\n", __func__);
922 {
DBGP(
"%s\n", __func__);
936 {
DBGP(
"%s\n", __func__);
952 {
DBGP(
"%s\n", __func__);
959 {
DBGP(
"%s\n", __func__);
968 {
DBGP(
"%s\n", __func__);
985 #define MAX_WAIT_CNT 1000 989 {
DBGP(
"%s\n", __func__);
1018 if ((
val & enable_bit) == 0)
1024 "tg3_stop_block timed out, ofs=%lx enable_bit=%x\n",
1033 {
DBGP(
"%s\n", __func__);
1072 "%s timed out, TX_MODE_ENABLE will not clear " 1094 {
DBGP(
"%s\n", __func__);
1096 u32 addr_high, addr_low;
1099 addr_high = ((
tp->dev->ll_addr[0] << 8) |
1100 tp->dev->ll_addr[1]);
1101 addr_low = ((
tp->dev->ll_addr[2] << 24) |
1102 (
tp->dev->ll_addr[3] << 16) |
1103 (
tp->dev->ll_addr[4] << 8) |
1104 (
tp->dev->ll_addr[5] << 0));
1105 for (i = 0; i < 4; i++) {
1106 if (i == 1 && skip_mac_1)
1114 for (i = 0; i < 12; i++) {
1120 addr_high = (
tp->dev->ll_addr[0] +
1121 tp->dev->ll_addr[1] +
1122 tp->dev->ll_addr[2] +
1123 tp->dev->ll_addr[3] +
1124 tp->dev->ll_addr[4] +
1125 tp->dev->ll_addr[5]) &
1132 {
DBGP(
"%s\n", __func__);
1139 {
DBGP(
"%s\n", __func__);
1145 tp->misc_host_ctrl);
1159 tp->pci_cacheline_sz);
1178 {
DBGP(
"%s\n", __func__);
1185 for (i = 0; i < 200; i++) {
1194 for (i = 0; i < 100000; i++) {
1206 if (i >= 100000 && !
tg3_flag(
tp, NO_FWARE_REPORTED)) {
1209 DBGC(
tp->dev,
"No firmware running\n");
1223 {
DBGP(
"%s\n", __func__);
1228 if (
tp->nvram_lock_cnt == 0) {
1230 for (i = 0; i < 8000; i++) {
1240 tp->nvram_lock_cnt++;
1246 {
DBGP(
"%s\n", __func__);
1249 if (
tp->nvram_lock_cnt > 0)
1250 tp->nvram_lock_cnt--;
1251 if (
tp->nvram_lock_cnt == 0)
1257 {
DBGP(
"%s\n", __func__);
1268 tp->nvram_lock_cnt = 0;
1287 write_op =
tp->write32;
1288 if (write_op == tg3_write_flush_reg32)
1289 tp->write32 = tg3_write32;
1300 if (
tp->hw_status) {
1301 tp->hw_status->status = 0;
1302 tp->hw_status->status_tag = 0;
1305 tp->last_irq_tag = 0;
1376 for (i = 0; i < 5000; i++)
1381 cfg_val | (1 << 15));
1421 tw32(0x5000, 0x400);
1462 tw32(0x7c00,
val | (1 << 25));
1481 {
DBGP(
"%s\n", __func__);
1502 {
DBGP(
"%s\n", __func__);
1520 for (i = 0; i < 1000; i++) {
1542 {
DBGP(
"%s\n", __func__);
1552 (
addr %
tp->nvram_pagesize);
1558 {
DBGP(
"%s\n", __func__);
1568 {
DBGP(
"%s\n", __func__);
1577 #define NVRAM_CMD_TIMEOUT 10000 1580 {
DBGP(
"%s\n", __func__);
1606 {
DBGP(
"%s\n", __func__);
1640 {
DBGP(
"%s\n", __func__);
1650 {
DBGP(
"%s\n", __func__);
1653 u32 hi, lo, mac_offset;
1669 mac_offset += 0x18c;
1675 if ((hi >> 16) == 0x484b) {
1676 dev->hw_addr[0] = (hi >> 8) & 0xff;
1677 dev->hw_addr[1] = (hi >> 0) & 0xff;
1680 dev->hw_addr[2] = (lo >> 24) & 0xff;
1681 dev->hw_addr[3] = (lo >> 16) & 0xff;
1682 dev->hw_addr[4] = (lo >> 8) & 0xff;
1683 dev->hw_addr[5] = (lo >> 0) & 0xff;
1693 memcpy(&
dev->hw_addr[0], ((
char *)&hi) + 2, 2);
1694 memcpy(&
dev->hw_addr[2], (
char *)&lo,
sizeof(lo));
1701 dev->hw_addr[5] = lo & 0xff;
1702 dev->hw_addr[4] = (lo >> 8) & 0xff;
1703 dev->hw_addr[3] = (lo >> 16) & 0xff;
1704 dev->hw_addr[2] = (lo >> 24) & 0xff;
1705 dev->hw_addr[1] = hi & 0xff;
1706 dev->hw_addr[0] = (hi >> 8) & 0xff;
1718 {
DBGP(
"%s\n", __func__);
1742 {
DBGP(
"%s\n", __func__);
1769 {
DBGP(
"%s\n", __func__);
1773 ((
u64) mapping >> 32));
1776 ((
u64) mapping & 0xffffffff));
1788 {
DBGP(
"%s\n", __func__);
1836 for (i = 0; i < 16; i++)
1848 ((
u64)
tp->status_mapping >> 32));
1850 ((
u64)
tp->status_mapping & 0xffffffff));
1870 {
DBGP(
"%s\n", __func__);
1897 {
DBGP(
"%s\n", __func__);
2005 val |= (1 << 26) | (1 << 28) | (1 << 29);
2074 tp->bufmgr_config.mbuf_read_dma_low_water);
2076 tp->bufmgr_config.mbuf_mac_rx_low_water);
2078 tp->bufmgr_config.mbuf_high_water);
2081 tp->bufmgr_config.dma_low_water);
2083 tp->bufmgr_config.dma_high_water);
2093 for (i = 0; i < 2000; i++) {
2099 DBGC(
tp->dev,
"%s cannot enable BUFMGR\n", __func__);
2155 #define TG3_MAX_MTU 1522 2261 for (i = 0; i < 2000; i++) {
2333 tp->grc_local_ctrl &= ~gpio_mask;
2412 err = tg3_load_5701_a0_firmware_fix(
tp);
2426 tp->tx_mode &= ~
val;
2573 {
DBGP(
"%s\n", __func__);
2584 {
DBGP(
"%s\n", __func__);
2588 txd->addr_hi = ((
u64) mapping >> 32);
2589 txd->addr_lo = ((
u64) mapping & 0xffffffff);
2595 {
DBGP(
"%s\n", __func__);
2613 test_desc.
addr_lo = buf_dma & 0xffffffff;
2640 test_desc.
flags = 0x00000005;
2642 for (i = 0; i < (
sizeof(test_desc) /
sizeof(
u32)); i++) {
2645 val = *(((
u32 *)&test_desc) + i);
2647 sram_dma_descs + (i *
sizeof(
u32)));
2658 for (i = 0; i < 40; i++) {
2665 if ((
val & 0xffff) == sram_dma_descs) {
#define TG3_PHYFLG_5704_A0_BUG
#define TG3_PCIE_PHY_TSTCTL_PSCRAM
#define TG3_SRAM_RX_STD_BDCACHE_SIZE_5755
#define PCI_FUNC(busdevfn)
#define TX_LENGTHS_IPG_SHIFT
void tg3_enable_ints(struct tg3 *tp)
#define ASIC_REV_USE_PROD_ID_REG
#define TG3_PHYFLG_USE_MI_INTERRUPT
#define EINVAL
Invalid argument.
#define RDMAC_MODE_MBUF_RBD_CRPT_ENAB
#define MEMARB_MODE_ENABLE
#define STD_REPLENISH_LWM
int tg3_writephy(struct tg3 *tp, int reg, u32 val)
#define LED_CTRL_MODE_SHASTA_MAC
static void tg3_generate_fw_event(struct tg3 *tp)
#define TG3_CPMU_D0_CLCK_POLICY
#define NIC_SRAM_DATA_CFG_2
#define WDMAC_MODE_BURST_ALL_DATA
#define GRC_MODE_HOST_SENDBDS
#define RX_MODE_KEEP_VLAN_TAG
#define TG3_RDMA_RSRVCTRL_FIFO_LWM_MASK
#define TG3PCI_DEVICE_TIGON3_57781
#define PCI_DEVICE_ID_TIGON3_5787F
#define TG3_PHYFLG_BER_BUG
#define PCI_CACHE_LINE_SIZE
PCI cache line size.
#define NIC_SRAM_MAC_ADDR_LOW_MBOX
static void __tg3_set_rx_mode(struct net_device *dev)
#define DEFAULT_MB_HIGH_WATER_JUMBO
#define HOSTCC_MODE_32BYTE
#define VCPU_STATUS_DRV_RESET
#define NIC_SRAM_DATA_CFG_LED_MODE_MASK
#define BUFMGR_MODE_ATTN_ENABLE
#define CHIPREV_ID_57780_A0
#define PCI_X_CMD_READ_2K
#define NIC_SRAM_DATA_VER_SHIFT
#define EBUSY
Device or resource busy.
static void tg3_get_eeprom_hw_cfg(struct tg3 *tp)
#define BDINFO_FLAGS_DISABLED
#define DMA_RWCTRL_CRDRDR_RDMA_MRRS_MSK
#define TG3_SRAM_RX_STD_BDCACHE_SIZE_5906
#define NIC_SRAM_DATA_CFG_MINI_PCI
#define RCVDCC_MODE_ATTN_ENABLE
#define PCI_X_CMD_MAX_SPLIT
static void tg3_disable_nvram_access(struct tg3 *tp)
#define TX_MODE_MBUF_LOCKUP_FIX
#define HOSTCC_TXCOAL_MAXF_INT
#define MAILBOX_INTERRUPT_0
#define PCI_X_CMD_MAX_READ
#define ATMEL_AT45DB0X1B_PAGE_POS
int tg3_phy_probe(struct tg3 *tp)
#define CHIPREV_ID_5701_B5
u32 tg3_read_otp_phycfg(struct tg3 *tp)
int tg3_rx_prodring_init(struct tg3 *tp, struct tg3_rx_prodring_set *tpr);
#define PCI_EXP_DEVSTA_CED
#define HOSTCC_TXCOAL_TICK_INT
#define TG3PCI_MEM_WIN_BASE_ADDR
#define TG3_CORR_ERR_STAT_CLEAR
#define DEFAULT_MB_HIGH_WATER_JUMBO_57765
#define BUFMGR_DMA_DESC_POOL_SIZE
#define PCI_LATENCY_TIMER
PCI latency timer.
#define DEFAULT_MB_MACRX_LOW_WATER_57765
#define BUFMGR_MB_POOL_ADDR
#define TG3PCI_GEN2_PRODID_ASICREV
#define MAC_MODE_APE_TX_EN
#define TG3_CPMU_LSPD_10MB_CLK
static void tg3_set_bdinfo(struct tg3 *tp, u32 bdinfo_addr, dma_addr_t mapping, u32 maxlen_flags, u32 nic_addr)
#define MAC_LOW_WMARK_MAX_RX_FRAME
#define DEFAULT_MB_HIGH_WATER_57765
#define CHIPREV_ID_5750_A0
#define BUFMGR_MB_HIGH_WATER
#define NIC_SRAM_DATA_CFG_4
#define VCPU_STATUS_INIT_DONE
#define TG3PCI_DEVICE_TIGON3_57761
#define GRC_MODE_BYTE_SWAP_B2HRX_DATA
#define PCI_PM_CTRL_PME_STATUS
PME pin status.
#define DEFAULT_MB_MACRX_LOW_WATER_JUMBO_57765
#define RCVLPC_STATS_ENABLE
#define PCIE_PWR_MGMT_L1_THRESH_MSK
int pci_write_config_word(struct pci_device *pci, unsigned int where, uint16_t value)
Write 16-bit word to PCI configuration space.
#define TG3_CORR_ERR_STAT
#define MAILBOX_RCVRET_CON_IDX_0
#define MAILBOX_SNDNIC_PROD_IDX_0
#define TG3_RDMA_RSRVCTRL_TXMRGN_320B
#define TG3PCI_MEM_WIN_DATA
#define PCI_EXP_DEVSTA_NFED
#define TG3_PHYFLG_10_100_ONLY
#define FTQ_RCVDATA_COMP_FIFO_ENQDEQ
uint8_t size
Entry size (in 32-bit words)
#define PCI_VENDOR_ID_BROADCOM
uint32_t readl(volatile uint32_t *io_addr)
Read 32-bit dword from memory-mapped device.
int tg3_readphy(struct tg3 *tp, int reg, u32 *val)
#define GRC_MODE_HTX2B_ENABLE
#define GRC_MISC_CFG_CORECLK_RESET
#define DEFAULT_MB_HIGH_WATER_5705
void tg3_init_bufmgr_config(struct tg3 *tp)
#define TX_MODE_CNT_DN_MODE
static int tg3_poll_fw(struct tg3 *tp)
#define HOSTCC_STATUS_BLK_NIC_ADDR
#define TG3_RX_RET_MAX_SIZE_5705
void __tg3_set_mac_addr(struct tg3 *tp, int skip_mac_1)
#define NIC_SRAM_DATA_PHY_ID2_MASK
#define NIC_SRAM_MBUF_POOL_SIZE64
#define DMA_RWCTRL_DIS_CACHE_ALIGNMENT
#define CHIPREV_ID_5701_B0
#define NIC_SRAM_DMA_DESC_POOL_BASE
#define GRC_LCLCTRL_GPIO_OUTPUT0
#define NIC_SRAM_FW_CMD_MBOX
#define NIC_SRAM_MAC_ADDR_HIGH_MBOX
static u32 tg3_read32_mbox_5906(struct tg3 *tp, u32 off)
#define RCVLPC_STATSENAB_LNGBRST_RFIX
void tg3_set_power_state_0(struct tg3 *tp)
static void tg3_setup_rxbd_thresholds(struct tg3 *tp)
#define GRC_MODE_IRQ_ON_MAC_ATTN
#define DEFAULT_MB_MACRX_LOW_WATER_JUMBO
#define CHIPREV_ID_5705_A0
#define WDMAC_MODE_FIFOURUN_ENAB
#define SNDDATAI_SCTRL_ENABLE
#define GRC_MODE_NO_TX_PHDR_CSUM
#define TG3_PCIE_LNKCTL_L1_PLL_PD_DIS
#define TG3_PCIE_PL_LO_PHYCTL1
int tg3_setup_phy(struct tg3 *tp, int force_reset)
int pci_read_config_word(struct pci_device *pci, unsigned int where, uint16_t *value)
Read 16-bit word from PCI configuration space.
#define DEFAULT_MB_MACRX_LOW_WATER
#define PCISTATE_RETRY_SAME_DMA
#define MAC_MODE_LINK_POLARITY
static int tg3_nvram_read_be32(struct tg3 *tp, u32 offset, u32 *val)
#define TG3PCI_DEVICE_TIGON3_5718
#define PCI_COMMAND
PCI command.
#define GET_CHIP_REV_ID(MISC_HOST_CTRL)
#define TG3_BDINFO_MAXLEN_FLAGS
static int tg3_abort_hw(struct tg3 *tp)
#define TG3_PHYFLG_ENABLE_APD
#define PCI_EXP_DEVCTL_NOSNOOP_EN
#define FTQ_RCVBD_COMP_FIFO_ENQDEQ
#define RCV_RULE_DISABLE_MASK
#define TG3_RX_STD_MAX_SIZE_5700
#define HOSTCC_STATUS_BLK_HOST_ADDR
#define TG3PCI_DEVICE_TIGON3_5719
int tg3_get_invariants(struct tg3 *tp)
#define GRC_MODE_WORD_SWAP_B2HRX_DATA
#define TX_LENGTHS_JMB_FRM_LEN_MSK
#define BUFMGR_MODE_MBLOW_ATTN_ENAB
#define PCI_EXP_DEVCTL_RELAX_EN
#define tw32_mailbox_f(reg, val)
#define TG3PCI_DEVICE_TIGON3_5717
#define TG3PCI_DUAL_MAC_CTRL
#define DEFAULT_MB_MACRX_LOW_WATER_5906
#define GRC_LCLCTRL_GPIO_UART_SEL
static int tg3_nvram_exec_cmd(struct tg3 *tp, u32 nvram_cmd)
#define DEFAULT_MB_RDMA_LOW_WATER_JUMBO
#define RCVLPC_STATSCTRL_ENABLE
#define PCI_DEVICE_ID_TIGON3_5722
#define PCI_PM_CTRL_PME_ENABLE
PME pin enable.
#define CLOCK_CTRL_DELAY_PCI_GRANT
#define MAC_MODE_PORT_MODE_TBI
#define TG3PCI_PRODID_ASICREV
#define CLOCK_CTRL_ALTCLK
#define tw32_rx_mbox(reg, val)
#define NIC_SRAM_RGMII_EXT_IBND_TX_EN
#define PCI_EXP_DEVSTA_FED
#define GET_ASIC_REV(CHIP_REV_ID)
void tg3_write_indirect_reg32(struct tg3 *tp, u32 off, u32 val)
#define CHIPREV_ID_57765_A0
#define TG3_PCIE_DL_LO_FTSMAX_MSK
#define MAC_MODE_APE_RX_EN
#define GRC_MISC_CFG_BOARD_ID_5788
#define TG3_RDMA_RSRVCTRL_FIFO_OFLW_FIX
#define BUFMGR_DMA_DESC_POOL_ADDR
#define PCIE_PWR_MGMT_EXT_ASPM_TMR_EN
#define TX_LENGTHS_CNT_DWN_VAL_MSK
#define TG3_PHYFLG_PHY_SERDES
Dynamic memory allocation.
static int tg3_chip_reset(struct tg3 *tp)
#define WDMAC_MODE_TGTABORT_ENAB
#define TG3_BDINFO_HOST_ADDR
#define WDMAC_MODE_FIFOOREAD_ENAB
#define TG3_PHYFLG_MII_SERDES
#define PCI_DEVICE_ID_TIGON3_5901_2
#define EEPROM_ADDR_ADDR_MASK
#define TG3PCI_DEVICE_TIGON3_57765
#define TG3_RDMA_RSRVCTRL_TXMRGN_MASK
#define NIC_SRAM_DATA_PHY_ID1_MASK
#define TG3_PCIE_PHY_TSTCTL
#define PCI_EXP_DEVSTA_URD
#define SNDDATAI_STATSCTRL
#define HOSTCC_TXMAX_FRAMES
#define HOSTCC_MODE_CLRTICK_RXBD
#define CLOCK_CTRL_625_CORE
#define SNDDATAI_STATSENAB
#define DEFAULT_MB_RDMA_LOW_WATER_JUMBO_5780
#define RDMAC_MODE_FIFOOREAD_ENAB
int tg3_get_device_address(struct tg3 *tp)
#define NIC_SRAM_MBUF_POOL_SIZE96
#define NIC_SRAM_STATUS_BLK
#define NIC_SRAM_DATA_SIG_MAGIC
#define TG3_PCIE_PL_LO_PHYCTL5_DIS_L2CLKREQ
#define WDMAC_MODE_MSTABORT_ENAB
#define TG3_PHYFLG_CAPACITIVE_COUPLING
#define TG3PCI_GEN15_PRODID_ASICREV
#define TG3_PHYFLG_ANY_SERDES
#define PCI_DEVICE_ID_TIGON3_5901
#define PCI_DEVICE_ID_TIGON3_5761
#define TG3_PCIE_EIDLE_DELAY_MASK
int tg3_do_test_dma(struct tg3 *tp, u32 __unused *buf, dma_addr_t buf_dma, int size, int to_device)
#define TG3_PCIE_PL_LO_PHYCTL1_L1PLLPD_EN
static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
#define SHASTA_EXT_LED_MAC
void * memcpy(void *dest, const void *src, size_t len) __nonnull
#define DEFAULT_DMA_HIGH_WATER
#define BUFMGR_DMA_LOW_WATER
#define TG3_PHYFLG_IS_FET
#define CPMU_CLCK_ORIDE_MAC_ORIDE_EN
int tg3_phy_reset(struct tg3 *tp)
#define GRC_MISC_CFG_KEEP_GPHY_POWER
#define PCI_PM_CTRL_STATE_MASK
Current power state.
#define TG3_LSO_RD_DMA_CRPTEN_CTRL
#define NIC_SRAM_DATA_CFG_LED_MODE_PHY_2
#define HOSTCC_TXCOL_TICKS
#define TG3_PCIE_DL_LO_FTSMAX
#define GRC_MODE_PCIE_DL_SEL
#define FTQ_DMA_HIGH_WRITE_FIFO_ENQDEQ
#define RDMAC_MODE_FIFO_SIZE_128
#define GRC_LCLCTRL_USE_EXT_SIG_DETECT
#define GRC_LCLCTRL_GPIO_OE3
#define WDMAC_MODE_ADDROFLOW_ENAB
int pci_read_config_dword(struct pci_device *pci, unsigned int where, uint32_t *value)
Read 32-bit dword from PCI configuration space.
#define MAC_MODE_FHDE_ENABLE
#define DEFAULT_MB_HIGH_WATER_JUMBO_5780
#define tg3_flag_set(tp, flag)
#define GRC_MISC_CFG_BOARD_ID_MASK
#define NIC_SRAM_TX_BUFFER_DESC
#define TX_LENGTHS_SLOT_TIME_SHIFT
#define TG3_PCIE_DL_LO_FTSMAX_VAL
#define TG3_PCIE_EIDLE_DELAY
void * priv
Driver private data.
#define SNDBDI_MODE_ATTN_ENABLE
void tg3_set_txd(struct tg3 *tp, int entry, dma_addr_t mapping, int len, u32 flags)
#define PCI_EXP_DEVCTL_PAYLOAD
#define TG3_64BIT_REG_LOW
#define TG3_FW_EVENT_TIMEOUT_USEC
#define CPMU_LSPD_10MB_MACCLK_6_25
#define __unused
Declare a variable or data structure as unused.
#define TG3_PCIE_PL_LO_PHYCTL5
#define TG3_CPMU_CLCK_ORIDE
static int tg3_stop_block(struct tg3 *tp, unsigned long ofs, u32 enable_bit)
void writel(uint32_t data, volatile uint32_t *io_addr)
Write 32-bit dword to memory-mapped device.
#define PCIE_PWR_MGMT_L1_THRESH_4MS
void udelay(unsigned long usecs)
Delay for a fixed number of microseconds.
#define GRC_LCLCTRL_GPIO_OUTPUT1
#define SNDBDI_MODE_MULTI_TXQ_EN
u32 tg3_read_indirect_mbox(struct tg3 *tp, u32 off)
void tg3_read_mem(struct tg3 *tp, u32 off, u32 *val)
static int tg3_nvram_lock(struct tg3 *tp)
static int netdev_link_ok(struct net_device *netdev)
Check link state of network device.
#define RCVBDI_STD_THRESH
#define HOSTCC_MODE_ENABLE
#define TG3_PHYFLG_ADC_BUG
#define LED_CTRL_MODE_MAC
#define LED_CTRL_MODE_PHY_1
static void tg3_rings_reset(struct tg3 *tp)
#define NIC_SRAM_FIRMWARE_MBOX_MAGIC1
#define MAC_MODE_TXSTAT_CLEAR
#define GRC_MODE_4X_NIC_SEND_RINGS
#define TG3_PCIE_LNKCTL_L1_PLL_PD_EN
#define MAC_EXTADDR_0_LOW
#define NIC_SRAM_DATA_PHY_ID
#define MAC_MI_STAT_LNKSTAT_ATTN_ENAB
#define MBFREE_MODE_ENABLE
#define NIC_SRAM_DATA_CFG
#define HOSTCC_RXCOAL_TICK_INT
static struct tulip_private * tp
#define CHIPREV_ID_5752_A0
#define SNDBDS_MODE_ATTN_ENABLE
#define TG3PCI_DEVICE_TIGON3_5720
#define TG3_PHYFLG_ADJUST_TRIM
#define SHASTA_EXT_LED_MODE_MASK
#define PCISTATE_CONV_PCI_MODE
#define RCVDCC_MODE_ENABLE
#define MAC_MI_MODE_500KHZ_CONST
static void tg3_save_pci_state(struct tg3 *tp)
#define DEFAULT_MB_RDMA_LOW_WATER
#define FTQ_DMA_HIGH_READ_FIFO_ENQDEQ
static void __tg3_set_coalesce(struct tg3 *tp)
#define PCISTATE_ROM_RETRY_ENABLE
#define TG3PCI_DEVICE_TIGON3_57785
#define EEPROM_ADDR_START
#define TX_MODE_JMB_FRM_LEN
#define NIC_SRAM_STATS_BLK
#define NIC_SRAM_DATA_CFG_APE_ENABLE
#define RCVBDI_MODE_ENABLE
#define LED_CTRL_MODE_SHARED
#define PCI_PM_CTRL
Power management control and status.
char * strerror(int errno)
Retrieve string representation of error number.
#define DEFAULT_MB_RDMA_LOW_WATER_5705
#define TG3PCI_RCV_RET_RING_CON_IDX
#define NVRAM_CMD_TIMEOUT
#define tg3_flag(tp, flag)
int pci_write_config_byte(struct pci_device *pci, unsigned int where, uint8_t value)
Write byte to PCI configuration space.
#define GRC_LCLCTRL_GPIO_OUTPUT3
#define TG3_SRAM_RX_STD_BDCACHE_SIZE_5700
#define GRC_MODE_NO_RX_PHDR_CSUM
#define MAC_EXTADDR_0_HIGH
#define BUFMGR_MB_POOL_SIZE
#define PCI_DEVICE_ID_TIGON3_5753F
#define TG3PCI_MISC_HOST_CTRL
#define GRC_LCLCTRL_USE_SIG_DETECT
#define CHIPREV_ID_5720_A0
#define CHIPREV_ID_5701_B2
#define TG3_PHY_ID_INVALID
#define RDMAC_MODE_FIFOOFLOW_ENAB
#define NIC_SRAM_DATA_VER
#define TX_BACKOFF_SEED_MASK
#define RDMAC_MODE_MBUF_SBD_CRPT_ENAB
#define DMA_RWCTRL_TAGGED_STAT_WA
#define PCISTATE_BUS_32BIT
#define TG3_DEF_RX_RING_PENDING
#define RDMAC_MODE_LNGREAD_ENAB
static int tg3_nvram_read(struct tg3 *tp, u32 offset, u32 *val)
#define GRC_LCLCTRL_SETINT
#define PCI_COMMAND_INVALIDATE
Mem.
int tg3_halt(struct tg3 *tp)
#define MAC_MODE_PORT_MODE_GMII
#define NIC_SRAM_RGMII_EXT_IBND_RX_EN
static void tg3_write32_mbox_5906(struct tg3 *tp, u32 off, u32 val)
#define RDMAC_MODE_PARITYERR_ENAB
#define GRC_LCLCTRL_GPIO_OE1
int tg3_init_hw(struct tg3 *tp, int reset_phy)
#define TG3_RDMA_RSRVCTRL_REG
#define GRC_MODE_PCIE_PL_SEL
#define NIC_SRAM_RGMII_INBAND_DISABLE
#define ENODEV
No such device.
#define NIC_SRAM_DATA_CFG_ASF_ENABLE
#define GRC_MISC_CFG_BOARD_ID_5788M
u32 tg3_read_indirect_reg32(struct tg3 *tp, u32 off)
#define PCI_DEVICE_ID_TIGON3_5751F
#define NIC_SRAM_WIN_BASE
void tg3_write_mem(struct tg3 *tp, u32 off, u32 val)
#define CHIPREV_ID_57780_A1
#define HOSTCC_RXCOAL_MAXF_INT
#define RCVLSC_MODE_ENABLE
#define TG3_RDMA_RSRVCTRL_FIFO_LWM_1_5K
#define NIC_SRAM_DATA_CFG_EEPROM_WP
#define FWCMD_NICDRV_PAUSE_FW
#define EEPROM_ADDR_ADDR_SHIFT
static void tg3_switch_clocks(struct tg3 *tp)
#define PCISTATE_ROM_ENABLE
#define TG3_64BIT_REG_HIGH
#define MAC_TX_BACKOFF_SEED
#define RDMAC_MODE_MSTABORT_ENAB
#define TG3PCI_DMA_RW_CTRL
#define TG3PCI_DEVICE_TIGON3_57766
#define RCVBDI_MODE_RCB_ATTN_ENAB
#define PCI_COMMAND_SERR
SERR# enable.
static int is_valid_ether_addr(const void *addr)
Check if Ethernet address is valid.
#define EEPROM_ADDR_COMPLETE
#define MISC_HOST_CTRL_CHIPREV
#define tg3_flag_clear(tp, flag)
#define DEFAULT_MB_MACRX_LOW_WATER_5705
#define GRC_RX_CPU_DRIVER_EVENT
#define RCVLPC_STATSENAB_DACK_FIX
#define PCI_CAP_ID_EXP
PCI Express.
#define RCVDBDI_MODE_INV_RING_SZ
#define MISC_HOST_CTRL_MASK_PCI_INT
#define LED_CTRL_MODE_PHY_2
#define CHIPREV_ID_5750_A1
#define TG3_BDINFO_NIC_ADDR
#define DEFAULT_TXCOAL_TICK_INT
#define TG3_RX_STD_PROD_IDX_REG
#define TG3PCI_DEVICE_TIGON3_57762
#define NIC_SRAM_DATA_CFG_LED_MODE_MAC
#define TG3PCI_DEVICE_TIGON3_57795
#define NIC_SRAM_DATA_CFG_PHY_TYPE_FIBER
struct device * dev
Underlying hardware device.
#define CLOCK_CTRL_CLKRUN_OENABLE
#define GRC_MISC_CFG_PRESCALAR_SHIFT
#define NIC_SRAM_RCV_RET_RCB
#define TG3_HW_STATUS_SIZE
#define TG3PCI_CLOCK_CTRL
static void tg3_write_sig_pre_reset(struct tg3 *tp)
Network device management.
#define GRC_MODE_B2HRX_ENABLE
#define NIC_SRAM_DATA_CFG_2_APD_EN
#define RDMAC_MODE_MULT_DMA_RD_DIS
#define MII_TG3_RXR_COUNTERS
#define TG3PCI_DEVICE_TIGON3_57790
#define CHIPREV_ID_5703_A1
#define DEFAULT_MB_HIGH_WATER_5906
#define HOSTCC_STAT_COAL_TICKS
void mdelay(unsigned long msecs)
Delay for a fixed number of milliseconds.
#define RCVDBDI_MODE_ENABLE
#define cpu_to_be32(value)
#define PCI_VENDOR_ID_DELL
#define GRC_LCLCTRL_AUTO_SEEPROM
dma_addr_t rx_std_mapping
#define TG3_PCIE_EIDLE_DELAY_13_CLKS
#define RDMAC_MODE_FIFOURUN_ENAB
#define SHASTA_EXT_LED_SHARED
#define CHIPREV_ID_5701_A0
#define TG3_RX_JMB_PROD_IDX_REG
#define SNDBDC_MODE_ATTN_ENABLE
#define SD_STATUS_UPDATED
#define SNDBDC_MODE_ENABLE
#define SNDBDI_MODE_ENABLE
#define GRC_LCLCTRL_GPIO_OUTPUT2
static void tg3_stop_fw(struct tg3 *tp)
#define PCI_DEVICE_ID_TIGON3_5705F
#define GRC_MODE_HOST_STACKUP
#define GRC_LCLCTRL_GPIO_OE0
Media Independent Interface constants.
#define TG3_RDMA_RSRVCTRL_FIFO_HWM_MASK
#define NIC_SRAM_DATA_SIG
#define SERDES_RX_SIG_DETECT
#define EEPROM_ADDR_DEVID_MASK
#define NIC_SRAM_DATA_CFG_PHY_TYPE_MASK
#define CHIPREV_ID_5750_A3
#define CHIPREV_ID_5906_A1
void tg3_mdio_init(struct tg3 *tp)
#define TG3_PHYFLG_JITTER_BUG
#define NIC_SRAM_DATA_CFG_3
#define WDMAC_MODE_ENABLE
static int tg3_nvram_read_using_eeprom(struct tg3 *tp, u32 offset, u32 *val)
static u32 tg3_nvram_phys_addr(struct tg3 *tp, u32 addr)
#define PCI_COMMAND_PARITY
Parity error response.
#define EIO
Input/output error.
#define CPMU_CLCK_ORIDE_MAC_CLCK_ORIDE_EN
#define CLOCK_CTRL_FORCE_CLKRUN
int tg3_init_rings(struct tg3 *tp)
#define HOSTCC_RXMAX_FRAMES
int pci_write_config_dword(struct pci_device *pci, unsigned int where, uint32_t value)
Write 32-bit dword to PCI configuration space.
#define BUFMGR_MB_MACRX_LOW_WATER
#define HOSTCC_RXCOL_TICKS
void tg3_write_indirect_mbox(struct tg3 *tp, u32 off, u32 val)
#define TG3PCI_REG_BASE_ADDR
#define NIC_SRAM_DMA_DESC_POOL_SIZE
#define SNDDATAI_MODE_ENABLE
#define MAC_MODE_RXSTAT_CLEAR
void tg3_wait_for_event_ack(struct tg3 *tp)
#define TG3_LSO_RD_DMA_CRPTEN_CTRL_BLEN_BD_4K
#define GRC_MODE_IRQ_ON_FLOW_ATTN
#define WDMAC_MODE_FIFOOFLOW_ENAB
#define DEFAULT_MB_HIGH_WATER
#define PCI_VENDOR_ID_ARIMA
uint16_t offset
Offset to command line.
void mb(void)
Memory barrier.
#define SNDDATAC_MODE_ENABLE
#define GRC_VCPU_EXT_CTRL
#define TG3_PCIE_TLDLPL_PORT
#define SHASTA_EXT_LED_COMBO
#define RCVCC_MODE_ENABLE
#define MAC_MODE_RDE_ENABLE
#define GET_CHIP_REV(CHIP_REV_ID)
#define TG3PCI_STD_RING_PROD_IDX
#define MAC_MODE_TXSTAT_ENABLE
#define RDMAC_MODE_H2BNC_VLAN_DET
#define CHIPREV_ID_5704_A0
#define RCVLSC_MODE_ATTN_ENABLE
#define PCI_DEVICE_ID_TIGON3_5756
#define TG3PCI_DEVICE_TIGON3_5761S
#define CHIPREV_ID_5717_A0
#define GRC_MODE_PCIE_PORT_MASK
#define NIC_SRAM_MBUF_POOL_BASE
#define TG3_PCIE_PHY_TSTCTL_PCIE10
#define TG3PCI_MISC_LOCAL_CTRL
#define SNDBDS_MODE_ENABLE
#define GRC_VCPU_EXT_CTRL_HALT_CPU
#define TG3_CPMU_CLCK_ORIDE_EN
#define MII_TG3_TEST1_CRC_EN
static void tg3_restore_pci_state(struct tg3 *tp)
#define PCIE_PWR_MGMT_THRESH
#define GRC_LCLCTRL_INT_ON_ATTN
#define WDMAC_MODE_PARITYERR_ENAB
#define HOSTCC_MODE_CLRTICK_TXBD
#define BUFMGR_MB_RDMA_LOW_WATER
#define TX_LENGTHS_IPG_CRS_SHIFT
#define NIC_SRAM_SEND_RCB
#define RCV_RULE_CFG_DEFAULT_CLASS
#define CLOCK_CTRL_44MHZ_CORE
#define WDMAC_MODE_LNGREAD_ENAB
#define EEPROM_ADDR_DEVID_SHIFT
#define RDMAC_MODE_FIFO_LONG_BURST
#define DEFAULT_STAT_COAL_TICKS
#define DEFAULT_DMA_LOW_WATER
#define DEFAULT_MB_MACRX_LOW_WATER_JUMBO_5780
#define RCVLPC_MODE_ENABLE
#define MAC_MODE_TDE_ENABLE
#define TG3_PHYFLG_SERDES_PREEMPHASIS
#define TG3PCI_DEVICE_TIGON3_57791
#define RDMAC_MODE_ADDROFLOW_ENAB
#define SNDDATAC_MODE_CDELAY
#define NIC_SRAM_RX_BUFFER_DESC
#define TG3_PHYFLG_PARALLEL_DETECT
#define PCI_DEVICE_ID_TIGON3_5755M
#define BDINFO_FLAGS_MAXLEN_SHIFT
#define tw32_mailbox(reg, val)
#define tw32_mailbox(reg, val) tg3_write_indirect_mbox(((val) & 0xffffffff), tp->regs + (reg))
#define RCVDBDI_MODE_LRG_RING_SZ
#define PCI_EXP_LNKCTL_CLKREQ_EN
#define CPMU_LSPD_10MB_MACCLK_MASK
#define RDMAC_MODE_ENABLE
#define RDMAC_MODE_BD_SBD_CRPT_ENAB
static void tg3_nvram_unlock(struct tg3 *tp)
#define WDMAC_MODE_STATUS_TAG_FIX
static void tg3_enable_nvram_access(struct tg3 *tp)
#define DEFAULT_RXCOAL_TICK_INT
#define tw32_wait_f(reg, val, us)
#define TG3_RDMA_RSRVCTRL_FIFO_HWM_1_5K
#define MAC_MODE_RXSTAT_ENABLE
#define PCISTATE_BUS_SPEED_HIGH
#define GRC_LCLCTRL_CLEARINT
#define BUFMGR_DMA_HIGH_WATER
#define TG3_LSO_RD_DMA_CRPTEN_CTRL_BLEN_LSO_4K
#define CHIPREV_ID_5719_A0
#define BUFMGR_MODE_NO_TX_UNDERRUN
#define PCI_EXP_DEVCTL
PCI Express.
#define NIC_SRAM_DATA_CFG_LED_MODE_PHY_1
#define MISC_HOST_CTRL_CHIPREV_SHIFT
#define CHIPREV_ID_5752_A0_HW
#define GRC_LCLCTRL_GPIO_OE2
#define CHIPREV_ID_5705_A1
void tg3_disable_ints(struct tg3 *tp)
#define TG3_PHYFLG_NO_ETH_WIRE_SPEED
#define NIC_SRAM_FIRMWARE_MBOX
if(natsemi->flags &NATSEMI_64BIT) return 1
#define RCVCC_MODE_ATTN_ENABLE
#define SNDDATAI_SCTRL_FASTUPD
#define RDMAC_MODE_TGTABORT_ENAB
#define tw32_tx_mbox(reg, val)
#define BUFMGR_MODE_ENABLE
#define LED_CTRL_MODE_COMBO
void * memset(void *dest, int character, size_t len) __nonnull
int pci_read_config_byte(struct pci_device *pci, unsigned int where, uint8_t *value)
Read byte from PCI configuration space.
void _tw32_flush(struct tg3 *tp, u32 off, u32 val, u32 usec_wait)
#define MISC_HOST_CTRL_TAGGED_STATUS