REG_WR
REG_WR(sc, BNX_CTX_CTX_DATA, ctx_val);
REG_WR(sc, BNX_CTX_CTX_CTRL,
REG_WR(sc, BNX_CTX_DATA_ADR, offset);
REG_WR(sc, BNX_CTX_DATA, ctx_val);
REG_WR(sc, BNX_EMAC_MDIO_MODE, val);
REG_WR(sc, BNX_EMAC_MDIO_COMM, val);
REG_WR(sc, BNX_EMAC_MDIO_MODE, val);
REG_WR(sc, BNX_EMAC_MDIO_MODE, val1);
REG_WR(sc, BNX_EMAC_MDIO_COMM, val1);
REG_WR(sc, BNX_EMAC_MDIO_MODE, val1);
REG_WR(sc, BNX_EMAC_MODE, val);
REG_WR(sc, BNX_EMAC_RX_MODE, rx_mode);
REG_WR(sc, BNX_NVM_SW_ARB, BNX_NVM_SW_ARB_ARB_REQ_SET2);
REG_WR(sc, BNX_NVM_SW_ARB, BNX_NVM_SW_ARB_ARB_REQ_CLR2);
REG_WR(sc, BNX_MISC_CFG, val | BNX_MISC_CFG_NVM_WR_EN_PCI);
REG_WR(sc, BNX_NVM_COMMAND, BNX_NVM_COMMAND_DONE);
REG_WR(sc, BNX_NVM_COMMAND,
REG_WR(sc, BNX_MISC_CFG, val & ~BNX_MISC_CFG_NVM_WR_EN);
REG_WR(sc, BNX_NVM_ACCESS_ENABLE,
REG_WR(sc, BNX_NVM_ACCESS_ENABLE,
REG_WR(sc, BNX_NVM_COMMAND, BNX_NVM_COMMAND_DONE);
REG_WR(sc, BNX_NVM_ADDR, offset & BNX_NVM_ADDR_NVM_ADDR_VALUE);
REG_WR(sc, BNX_NVM_COMMAND, cmd);
REG_WR(sc, BNX_NVM_COMMAND, BNX_NVM_COMMAND_DONE);
REG_WR(sc, BNX_NVM_ADDR, offset & BNX_NVM_ADDR_NVM_ADDR_VALUE);
REG_WR(sc, BNX_NVM_COMMAND, cmd);
REG_WR(sc, BNX_NVM_COMMAND, BNX_NVM_COMMAND_DONE);
REG_WR(sc, BNX_NVM_WRITE, val32);
REG_WR(sc, BNX_NVM_ADDR, offset & BNX_NVM_ADDR_NVM_ADDR_VALUE);
REG_WR(sc, BNX_NVM_COMMAND, cmd);
REG_WR(sc, BNX_NVM_CFG1, flash->config1);
REG_WR(sc, BNX_NVM_CFG2, flash->config2);
REG_WR(sc, BNX_NVM_CFG3, flash->config3);
REG_WR(sc, BNX_NVM_WRITE1, flash->write1);
REG_WR(sc, BNX_RV2P_INSTR_HIGH, *rv2p_code);
REG_WR(sc, BNX_RV2P_INSTR_LOW, *rv2p_code);
REG_WR(sc, BNX_RV2P_PROC1_ADDR_CMD, val);
REG_WR(sc, BNX_RV2P_PROC2_ADDR_CMD, val);
REG_WR(sc, BNX_RV2P_COMMAND, BNX_RV2P_COMMAND_PROC1_RESET);
REG_WR(sc, BNX_RV2P_COMMAND, BNX_RV2P_COMMAND_PROC2_RESET);
REG_WR(sc, BNX_CTX_COMMAND, val);
REG_WR(sc, BNX_CTX_HOST_PAGE_TBL_DATA0, val |
REG_WR(sc, BNX_CTX_HOST_PAGE_TBL_DATA1, val);
REG_WR(sc, BNX_CTX_HOST_PAGE_TBL_CTRL, i |
REG_WR(sc, BNX_CTX_VIRT_ADDR, 0);
REG_WR(sc, BNX_CTX_PAGE_TBL, vcid_addr);
REG_WR(sc, BNX_CTX_VIRT_ADDR, vcid_addr);
REG_WR(sc, BNX_CTX_PAGE_TBL, vcid_addr);
REG_WR(sc, BNX_EMAC_MAC_MATCH0, val);
REG_WR(sc, BNX_EMAC_MAC_MATCH1, val);
REG_WR(sc, BNX_MISC_ENABLE_CLR_BITS, 0x5ffffff);
REG_WR(sc, BNX_MISC_ENABLE_CLR_BITS,
REG_WR(sc, BNX_MISC_NEW_CORE_CTL, val);
REG_WR(sc, BNX_MISC_COMMAND, BNX_MISC_COMMAND_SW_RESET);
REG_WR(sc, BNX_PCICFG_MISC_CONFIG, val);
REG_WR(sc, BNX_PCICFG_INT_ACK_CMD, BNX_PCICFG_INT_ACK_CMD_MASK_INT);
REG_WR(sc, BNX_DMA_CONFIG, val);
REG_WR(sc, BNX_MISC_ENABLE_SET_BITS,
REG_WR(sc, BNX_MQ_CONFIG, val);
REG_WR(sc, BNX_MQ_KNL_BYP_WIND_START, val);
REG_WR(sc, BNX_MQ_KNL_WIND_END, val);
REG_WR(sc, BNX_RV2P_CONFIG, val);
REG_WR(sc, BNX_TBDR_CONFIG, val);
REG_WR(sc, BNX_EMAC_BACKOFF_SEED, val);
REG_WR(sc, BNX_EMAC_ATTENTION_ENA, BNX_EMAC_ATTENTION_ENA_LINK);
REG_WR(sc, BNX_HC_ATTN_BITS_ENABLE, STATUS_ATTN_BITS_LINK_STATE);
REG_WR(sc, BNX_HC_STATUS_ADDR_L, (u_int32_t)(sc->status_block_paddr));
REG_WR(sc, BNX_HC_STATUS_ADDR_H,
REG_WR(sc, BNX_HC_STATISTICS_ADDR_L,
REG_WR(sc, BNX_HC_STATISTICS_ADDR_H,
REG_WR(sc, BNX_HC_TX_QUICK_CONS_TRIP, (sc->bnx_tx_quick_cons_trip_int
REG_WR(sc, BNX_HC_RX_QUICK_CONS_TRIP, (sc->bnx_rx_quick_cons_trip_int
REG_WR(sc, BNX_HC_COMP_PROD_TRIP, (sc->bnx_comp_prod_trip_int << 16) |
REG_WR(sc, BNX_HC_TX_TICKS, (sc->bnx_tx_ticks_int << 16) |
REG_WR(sc, BNX_HC_RX_TICKS, (sc->bnx_rx_ticks_int << 16) |
REG_WR(sc, BNX_HC_COM_TICKS, (sc->bnx_com_ticks_int << 16) |
REG_WR(sc, BNX_HC_CMD_TICKS, (sc->bnx_cmd_ticks_int << 16) |
REG_WR(sc, BNX_HC_STATS_TICKS, (sc->bnx_stats_ticks & 0xffff00));
REG_WR(sc, BNX_HC_STAT_COLLECT_TICKS, 0xbb8); /* 3ms */
REG_WR(sc, BNX_HC_CONFIG,
REG_WR(sc, BNX_HC_COMMAND, BNX_HC_COMMAND_CLR_STAT_NOW);
REG_WR(sc, BNX_MISC_NEW_CORE_CTL, val);
REG_WR(sc, BNX_MISC_ENABLE_SET_BITS,
REG_WR(sc, BNX_MISC_ENABLE_SET_BITS, BNX_MISC_ENABLE_DEFAULT);
REG_WR(sc, BNX_MISC_ENABLE_SET_BITS, 0x5ffffff);
REG_WR(sc, BNX_MQ_MAP_L2_5, val | BNX_MQ_MAP_L2_5_ARM);
REG_WR(sc, MB_RX_CID_ADDR + BNX_L2CTX_HOST_BSEQ, sc->rx_prod_bseq);
REG_WR(sc, BNX_PCICFG_STATUS_BIT_SET_CMD,
REG_WR(sc, BNX_PCICFG_STATUS_BIT_CLEAR_CMD,
REG_WR(sc, BNX_EMAC_STATUS, BNX_EMAC_STATUS_LINK_CHANGE);
REG_WR(sc, BNX_PCICFG_INT_ACK_CMD, BNX_PCICFG_INT_ACK_CMD_MASK_INT);
REG_WR(sc, BNX_PCICFG_INT_ACK_CMD, BNX_PCICFG_INT_ACK_CMD_INDEX_VALID |
REG_WR(sc, BNX_PCICFG_INT_ACK_CMD, BNX_PCICFG_INT_ACK_CMD_INDEX_VALID |
REG_WR(sc, BNX_HC_COMMAND, val | BNX_HC_COMMAND_COAL_NOW);
REG_WR(sc, BNX_EMAC_RX_MTU_SIZE, ether_mtu |
REG_WR(sc, BNX_RV2P_CONFIG, val);
REG_WR(sc, BNX_MISC_ENABLE_SET_BITS,
REG_WR(sc, MB_TX_CID_ADDR + BNX_L2CTX_TX_HOST_BSEQ, sc->tx_prod_bseq);
REG_WR(sc, BNX_PCICFG_INT_ACK_CMD,
REG_WR(sc, BNX_EMAC_MULTICAST_HASH0 + (i * 4),
REG_WR(sc, BNX_EMAC_MULTICAST_HASH0 + (i * 4),
REG_WR(sc, BNX_EMAC_RX_MODE, rx_mode);
REG_WR(sc, BNX_RPM_SORT_USER0, 0x0);
REG_WR(sc, BNX_RPM_SORT_USER0, sort_mode);
REG_WR(sc, BNX_RPM_SORT_USER0, sort_mode | BNX_RPM_SORT_USER0_ENA);
#define BNX_SETBIT(sc, reg, x) REG_WR(sc, reg, (REG_RD(sc, reg) | (x)))
#define BNX_CLRBIT(sc, reg, x) REG_WR(sc, reg, (REG_RD(sc, reg) & ~(x)))