X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnx2x%2Fbnx2x.c;h=083deff1b17a6ab368746ec4fd0fc6c0a2383b4b;hb=4382a7ccf7815c139c9507618fd8e046fa4d927e;hp=654878d9dee8233c59bceb7d22d8ccc10fa02e2e;hpb=bd063651d5741de698e93757ea330b7c675d796c;p=dpdk.git diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c index 654878d9de..083deff1b1 100644 --- a/drivers/net/bnx2x/bnx2x.c +++ b/drivers/net/bnx2x/bnx2x.c @@ -26,9 +26,12 @@ #include #include #include + #include #include +#include "eal_firmware.h" + #define BNX2X_PMD_VER_PREFIX "BNX2X PMD" #define BNX2X_PMD_VERSION_MAJOR 1 #define BNX2X_PMD_VERSION_MINOR 1 @@ -2230,8 +2233,8 @@ int bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf *m0) tx_parse_bd = &txq->tx_ring[TX_BD(bd_prod, txq)].parse_bd_e2; - if (rte_is_multicast_ether_addr(&eh->d_addr)) { - if (rte_is_broadcast_ether_addr(&eh->d_addr)) + if (rte_is_multicast_ether_addr(&eh->dst_addr)) { + if (rte_is_broadcast_ether_addr(&eh->dst_addr)) mac_type = BROADCAST_ADDRESS; else mac_type = MULTICAST_ADDRESS; @@ -2240,17 +2243,17 @@ int bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf *m0) (mac_type << ETH_TX_PARSE_BD_E2_ETH_ADDR_TYPE_SHIFT); rte_memcpy(&tx_parse_bd->data.mac_addr.dst_hi, - &eh->d_addr.addr_bytes[0], 2); + &eh->dst_addr.addr_bytes[0], 2); rte_memcpy(&tx_parse_bd->data.mac_addr.dst_mid, - &eh->d_addr.addr_bytes[2], 2); + &eh->dst_addr.addr_bytes[2], 2); rte_memcpy(&tx_parse_bd->data.mac_addr.dst_lo, - &eh->d_addr.addr_bytes[4], 2); + &eh->dst_addr.addr_bytes[4], 2); rte_memcpy(&tx_parse_bd->data.mac_addr.src_hi, - &eh->s_addr.addr_bytes[0], 2); + &eh->src_addr.addr_bytes[0], 2); rte_memcpy(&tx_parse_bd->data.mac_addr.src_mid, - &eh->s_addr.addr_bytes[2], 2); + &eh->src_addr.addr_bytes[2], 2); rte_memcpy(&tx_parse_bd->data.mac_addr.src_lo, - &eh->s_addr.addr_bytes[4], 2); + &eh->src_addr.addr_bytes[4], 2); tx_parse_bd->data.mac_addr.dst_hi = rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.dst_hi); @@ -8173,7 +8176,7 @@ static int bnx2x_get_shmem_info(struct bnx2x_softc *sc) sc->link_params.mac_addr[4] = (uint8_t) (mac_lo >> 8); sc->link_params.mac_addr[5] = (uint8_t) (mac_lo); snprintf(sc->mac_addr_str, sizeof(sc->mac_addr_str), - "%02x:%02x:%02x:%02x:%02x:%02x", + RTE_ETHER_ADDR_PRT_FMT, sc->link_params.mac_addr[0], sc->link_params.mac_addr[1], sc->link_params.mac_addr[2], @@ -9655,44 +9658,33 @@ static void bnx2x_init_rte(struct bnx2x_softc *sc) void bnx2x_load_firmware(struct bnx2x_softc *sc) { const char *fwname; - int f; - struct stat st; + void *buf; + size_t bufsz; fwname = sc->devinfo.device_id == CHIP_NUM_57711 ? FW_NAME_57711 : FW_NAME_57810; - f = open(fwname, O_RDONLY); - if (f < 0) { + if (rte_firmware_read(fwname, &buf, &bufsz) != 0) { PMD_DRV_LOG(NOTICE, sc, "Can't open firmware file"); return; } - if (fstat(f, &st) < 0) { - PMD_DRV_LOG(NOTICE, sc, "Can't stat firmware file"); - close(f); - return; - } - - sc->firmware = rte_zmalloc("bnx2x_fw", st.st_size, RTE_CACHE_LINE_SIZE); + sc->firmware = rte_zmalloc("bnx2x_fw", bufsz, RTE_CACHE_LINE_SIZE); if (!sc->firmware) { PMD_DRV_LOG(NOTICE, sc, "Can't allocate memory for firmware"); - close(f); - return; + goto out; } - if (read(f, sc->firmware, st.st_size) != st.st_size) { - PMD_DRV_LOG(NOTICE, sc, "Can't read firmware data"); - close(f); - return; - } - close(f); - - sc->fw_len = st.st_size; + sc->fw_len = bufsz; if (sc->fw_len < FW_HEADER_LEN) { PMD_DRV_LOG(NOTICE, sc, "Invalid fw size: %" PRIu64, sc->fw_len); - return; + goto out; } + + memcpy(sc->firmware, buf, sc->fw_len); PMD_DRV_LOG(DEBUG, sc, "fw_len = %" PRIu64, sc->fw_len); +out: + free(buf); } static void @@ -11902,7 +11894,7 @@ void bnx2x_print_device_info(struct bnx2x_softc *sc) PMD_DRV_LOG(INFO, sc, "%12s : %u", "MTU", sc->mtu); PMD_DRV_LOG(INFO, sc, "%12s : %s", "PHY Type", get_ext_phy_type(ext_phy_type)); - PMD_DRV_LOG(INFO, sc, "%12s : %x:%x:%x:%x:%x:%x", "MAC Addr", + PMD_DRV_LOG(INFO, sc, "%12s : " RTE_ETHER_ADDR_PRT_FMT, "MAC Addr", sc->link_params.mac_addr[0], sc->link_params.mac_addr[1], sc->link_params.mac_addr[2],