Builds, and there is now a menuconfig option for BXE.
authorRon Minnich <rminnich@gmail.com>
Fri, 9 Jan 2015 22:17:58 +0000 (14:17 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 3 Feb 2015 15:12:26 +0000 (10:12 -0500)
It builds without it and won't link with it.

Time for Ron and Barret to get it done.

Signed-off-by: Ron Minnich <rminnich@gmail.com>
kern/drivers/Kconfig
kern/drivers/net/Kbuild
kern/drivers/net/Kconfig [new file with mode: 0644]
kern/drivers/net/bxe/Kbuild
kern/drivers/net/bxe/bxe.h
kern/drivers/net/bxe/bxe_stats.c
kern/drivers/net/bxe/bxe_stats.h
kern/drivers/net/bxe/ecore_sp.c
kern/drivers/net/bxe/ecore_sp.h
kern/src/net/Kconfig

index fb38aa7..b72bbb7 100644 (file)
@@ -1,6 +1,6 @@
 menu "Drivers"
 
-#source "kern/drivers/net/Kconfig"
+source "kern/drivers/net/Kconfig"
 source "kern/drivers/dev/Kconfig"
 
 endmenu
index 8379853..6a6024b 100644 (file)
@@ -1,5 +1,5 @@
 # need at least one obj file to build for Kbuild
-obj-y                                                  += bxe/
+obj-$(CONFIG_BXE)                                      += bxe/
 obj-y                                                  += dummy.o
 obj-y                                                  += ether8139.o
 obj-y                                                  += ether8169.o
diff --git a/kern/drivers/net/Kconfig b/kern/drivers/net/Kconfig
new file mode 100644 (file)
index 0000000..4a8e8f4
--- /dev/null
@@ -0,0 +1,5 @@
+config BXE
+        bool "BXE network driver"
+        default n
+        help
+                BXE
index 6f8d04e..60755b9 100644 (file)
@@ -1,8 +1,8 @@
-#obj-y                                           += 57710_init_values.o
-#obj-y                                           += 57711_init_values.o
-#obj-y                                           += 57712_init_values.o
+obj-y                                           += 57710_init_values.o
+obj-y                                           += 57711_init_values.o
+obj-y                                           += 57712_init_values.o
 obj-y                                           += bxe.o
 obj-y                                           += bxe_debug.o
 obj-y                                           += bxe_elink.o
-#obj-y                                           += bxe_stats.o
-#obj-y                                           += ecore_sp.o
+obj-y                                           += bxe_stats.o
+obj-y                                           += ecore_sp.o
index 873cbbc..27b200d 100644 (file)
@@ -57,7 +57,7 @@ typedef uintptr_t bus_dmamap_t;
 typedef uintptr_t bus_dma_segment_t;
 typedef uintptr_t bus_space_tag_t;
 typedef uintptr_t vm_offset_t;
-typedef spinlock_t ECORE_MUTEX_SPIN;
+typedef qlock_t ECORE_MUTEX_SPIN;
 typedef qlock_t ECORE_MUTEX;
 typedef qlock_t mtx;
 typedef int device_t;
@@ -1721,14 +1721,14 @@ struct eth_spe *spq;
         * buffer).
         */
        int                     fw_stats_req_size;
-       //    struct bxe_fw_stats_req *fw_stats_req;
+       struct bxe_fw_stats_req *fw_stats_req;
        bus_addr_t              fw_stats_req_mapping;
        /*
         * FW statistics data shortcut (points at the beginning of fw_stats
         * buffer + fw_stats_req_size).
         */
        int                      fw_stats_data_size;
-       //    struct bxe_fw_stats_data *fw_stats_data;
+       struct bxe_fw_stats_data *fw_stats_data;
        bus_addr_t               fw_stats_data_mapping;
        
        /* tracking a pending STAT_QUERY ramrod */
@@ -1738,7 +1738,7 @@ struct eth_spe *spq;
        uint16_t stats_counter;
        uint8_t  stats_init;
        int      stats_state;
-#if 0
+
        struct bxe_eth_stats         eth_stats;
        struct host_func_stats       func_stats;
        struct bxe_eth_stats_old     eth_stats_old;
@@ -1746,7 +1746,7 @@ struct eth_spe *spq;
        struct bxe_fw_port_stats_old fw_stats_old;
        
        struct dmae_command stats_dmae; /* used by dmae command loader */
-#endif
+
        int                 executer_idx;
        
        int mtu;
index 44fccf5..ae9d5d9 100644 (file)
@@ -24,7 +24,6 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
 //__FBSDID("$FreeBSD: head/sys/dev/bxe/bxe_stats.c 271782 2014-09-18 15:56:14Z glebius $");
 
 #include "bxe.h"
@@ -95,7 +94,7 @@ static void
 bxe_dp_stats(struct bxe_adapter *sc)
 {
     int i;
-
+#if 0
     BLOGD(sc, DBG_STATS,
           "dumping stats:\n"
           "  fw_stats_req\n"
@@ -128,6 +127,7 @@ bxe_dp_stats(struct bxe_adapter *sc)
               sc->fw_stats_req->query[i].address.hi,
               sc->fw_stats_req->query[i].address.lo);
     }
+#endif
 }
 
 /*
@@ -141,7 +141,7 @@ static void
 bxe_storm_stats_post(struct bxe_adapter *sc)
 {
     int rc;
-
+#if 0
     if (!sc->stats_pending) {
         BXE_STATS_LOCK(sc);
 
@@ -173,11 +173,13 @@ bxe_storm_stats_post(struct bxe_adapter *sc)
 
         BXE_STATS_UNLOCK(sc);
     }
+#endif
 }
 
 static void
 bxe_hw_stats_post(struct bxe_adapter *sc)
 {
+#if 0
     struct dmae_command *dmae = &sc->stats_dmae;
     uint32_t *stats_comp = BXE_SP(sc, stats_comp);
     int loader_idx;
@@ -223,6 +225,7 @@ bxe_hw_stats_post(struct bxe_adapter *sc)
         *stats_comp = 0;
         bxe_post_dmae(sc, dmae, INIT_DMAE_C(sc));
     }
+#endif
 }
 
 static int
@@ -538,7 +541,8 @@ bxe_port_stats_init(struct bxe_adapter *sc)
 static void
 bxe_func_stats_init(struct bxe_adapter *sc)
 {
-    struct dmae_command *dmae = &sc->stats_dmae;
+#if 0
+  struct dmae_command *dmae = &sc->stats_dmae;
     uint32_t *stats_comp = BXE_SP(sc, stats_comp);
 
     /* sanity */
@@ -562,6 +566,7 @@ bxe_func_stats_init(struct bxe_adapter *sc)
     dmae->comp_val = DMAE_COMP_VAL;
 
     *stats_comp = 0;
+#endif
 }
 
 static void
@@ -614,7 +619,7 @@ static void
 bxe_bmac_stats_update(struct bxe_adapter *sc)
 {
     struct host_port_stats *pstats = BXE_SP(sc, port_stats);
-    struct bxe_eth_stats *estats = &sc->eth_stats;
+    //    struct bxe_eth_stats *estats = &sc->eth_stats;
     struct {
         uint32_t lo;
         uint32_t hi;
@@ -656,7 +661,7 @@ bxe_bmac_stats_update(struct bxe_adapter *sc)
         UPDATE_STAT64(tx_stat_gtufl, tx_stat_mac_ufl);
     } else {
         struct bmac2_stats *new = BXE_SP(sc, mac_stats.bmac2_stats);
-        struct bxe_fw_port_stats_old *fwstats = &sc->fw_stats_old;
+       //        struct bxe_fw_port_stats_old *fwstats = &sc->fw_stats_old;
 
         /* the macros below will use "bmac2_stats" type */
         UPDATE_STAT64(rx_stat_grerb, rx_stat_ifhcinbadoctets);
@@ -692,15 +697,16 @@ bxe_bmac_stats_update(struct bxe_adapter *sc)
         /* collect PFC stats */
         pstats->pfc_frames_tx_hi = new->tx_stat_gtpp_hi;
         pstats->pfc_frames_tx_lo = new->tx_stat_gtpp_lo;
-        ADD_64(pstats->pfc_frames_tx_hi, fwstats->pfc_frames_tx_hi,
-               pstats->pfc_frames_tx_lo, fwstats->pfc_frames_tx_lo);
+       //        ADD_64(pstats->pfc_frames_tx_hi, fwstats->pfc_frames_tx_hi,
+       //     pstats->pfc_frames_tx_lo, fwstats->pfc_frames_tx_lo);
 
         pstats->pfc_frames_rx_hi = new->rx_stat_grpp_hi;
         pstats->pfc_frames_rx_lo = new->rx_stat_grpp_lo;
-        ADD_64(pstats->pfc_frames_rx_hi, fwstats->pfc_frames_rx_hi,
-               pstats->pfc_frames_rx_lo, fwstats->pfc_frames_rx_lo);
+       //        ADD_64(pstats->pfc_frames_rx_hi, fwstats->pfc_frames_rx_hi,
+       //     pstats->pfc_frames_rx_lo, fwstats->pfc_frames_rx_lo);
     }
 
+#if 0
     estats->pause_frames_received_hi = pstats->mac_stx[1].rx_stat_mac_xpf_hi;
     estats->pause_frames_received_lo = pstats->mac_stx[1].rx_stat_mac_xpf_lo;
 
@@ -711,6 +717,7 @@ bxe_bmac_stats_update(struct bxe_adapter *sc)
     estats->pfc_frames_received_lo = pstats->pfc_frames_rx_lo;
     estats->pfc_frames_sent_hi = pstats->pfc_frames_tx_hi;
     estats->pfc_frames_sent_lo = pstats->pfc_frames_tx_lo;
+#endif
 }
 
 static void
@@ -1146,6 +1153,7 @@ bxe_storm_stats_update(struct bxe_adapter *sc)
            estats->error_bytes_received_lo,
            estats->rx_stat_ifhcinbadoctets_lo);
 
+#if 0
     if (sc->port.pmf) {
         struct bxe_fw_port_stats_old *fwstats = &sc->fw_stats_old;
         UPDATE_FW_STAT(mac_filter_discard);
@@ -1153,7 +1161,7 @@ bxe_storm_stats_update(struct bxe_adapter *sc)
         UPDATE_FW_STAT(brb_truncate_discard);
         UPDATE_FW_STAT(mac_discard);
     }
-
+#endif
     fstats->host_func_stats_start = ++fstats->host_func_stats_end;
 
     sc->stats_pending = 0;
@@ -1165,14 +1173,15 @@ static void
 bxe_net_stats_update(struct bxe_adapter *sc)
 {
 
-    for (int i = 0; i < sc->num_queues; i++)
-        if_inc_counter(sc->ifp, IFCOUNTER_IQDROPS,
-           le32toh(sc->fp[i].old_tclient.checksum_discard));
+  //    for (int i = 0; i < sc->num_queues; i++)
+  //        if_inc_counter(sc->ifp, IFCOUNTER_IQDROPS,
+  //       le32toh(sc->fp[i].old_tclient.checksum_discard));
 }
 
 uint64_t
 bxe_get_counter(if_t ifp, ift_counter cnt)
 {
+#if 0
        struct bxe_adapter *sc;
        struct bxe_eth_stats *estats;
 
@@ -1212,6 +1221,7 @@ bxe_get_counter(if_t ifp, ift_counter cnt)
        default:
                return (if_get_counter_default(ifp, cnt));
        }
+#endif
 }
 
 static void
@@ -1306,10 +1316,12 @@ bxe_stats_update(struct bxe_adapter *sc)
 
         if (bxe_storm_stats_update(sc)) {
             if (sc->stats_pending++ == 3) {
+#if 0
                if (if_getdrvflags(sc->ifp) & IFF_DRV_RUNNING) {
                        atomic_store_rel_long(&sc->chip_tq_flags, CHIP_TQ_REINIT);
                        taskqueue_enqueue(sc->chip_tq, &sc->chip_tq_task);
                }
+#endif
             }
             return;
         }
index de74e49..ba0be57 100644 (file)
@@ -489,7 +489,7 @@ struct bxe_fw_port_stats_old {
 #define ADD_64_LE16(s_hi, a_hi_le, s_lo, a_lo_le) \
         ADD_64(s_hi, le16toh(a_hi_le),            \
                s_lo, le16toh(a_lo_le))
-
+#define UINT_MAX (0xffffffffffffffffull)
 /* difference = minuend - subtrahend */
 #define DIFF_64(d_hi, m_hi, s_hi, d_lo, m_lo, s_lo)  \
     do {                                             \
index c94b644..27b2187 100644 (file)
@@ -24,7 +24,6 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <sys/cdefs.h>
 //__FBSDID("$FreeBSD: head/sys/dev/bxe/ecore_sp.c 265411 2014-05-06 02:32:27Z davidcs $");
 
 #include "bxe.h"
index e1020a2..3e92e52 100644 (file)
@@ -84,14 +84,16 @@ typedef _Bool bool;
 #define IRO sc->iro_array
 
 //typedef struct mtx ECORE_MUTEX;
-#define ECORE_MUTEX_INIT(_mutex) \
-    mtx_init(_mutex, "ecore_lock", "ECORE Lock", MTX_DEF)
+#define ECORE_MUTEX_INIT(_mutex) 
+//                                                             \
+//    mtx_init(_mutex, "ecore_lock", "ECORE Lock", MTX_DEF)
 #define ECORE_MUTEX_LOCK(_mutex)   mtx_lock(_mutex)
 #define ECORE_MUTEX_UNLOCK(_mutex) mtx_unlock(_mutex)
 
 //typedef struct mtx ECORE_MUTEX_SPIN;
-#define ECORE_SPIN_LOCK_INIT(_spin, _sc) \
-    mtx_init(_spin, "ecore_lock", "ECORE Lock", MTX_DEF)
+#define ECORE_SPIN_LOCK_INIT(_spin, _sc)
+//                                                             \
+//    mtx_init(_spin, "ecore_lock", "ECORE Lock", MTX_DEF)
 #define ECORE_SPIN_LOCK_BH(_spin)   mtx_lock(_spin) /* bh = bottom-half */
 #define ECORE_SPIN_UNLOCK_BH(_spin) mtx_unlock(_spin) /* bh = bottom-half */
 
@@ -143,12 +145,12 @@ typedef _Bool bool;
 #define ECORE_UNLIKELY(x) __predict_false(x)
 
 #define ECORE_ZALLOC(_size, _flags, _sc) \
-    malloc(_size, M_TEMP, (M_NOWAIT | M_ZERO))
+       kzmalloc(_size, KMALLOC_WAIT) /*M_TEMP, (M_NOWAIT | M_ZERO))*/
 
 #define ECORE_CALLOC(_len, _size, _flags, _sc) \
-    malloc(_len * _size, M_TEMP, (M_NOWAIT | M_ZERO))
+    kzmalloc(_len * _size, KMALLOC_WAIT) /*M_TEMP, (M_NOWAIT | M_ZERO))*/
 
-#define ECORE_FREE(_s, _buf, _size) free(_buf, M_TEMP)
+#define ECORE_FREE(_s, _buf, _size) kfree(_buf); /*, M_TEMP)*/
 
 #define SC_ILT(sc)  ((sc)->ilt)
 #define ILOG2(x)    bxe_ilog2(x)
index 0fe649e..e7664d3 100644 (file)
@@ -4,8 +4,3 @@ menuconfig NETWORKING
        help
                This is a placeholder for networking related option.  Right now,
                CONFIG_NETWORKING does not change the build in any way.
-
-if NETWORKING
-
-endif # NETWORKING
-