summaryrefslogtreecommitdiffstats
path: root/sys/dev/em/if_em.h
diff options
context:
space:
mode:
authorpdeuskar <pdeuskar@FreeBSD.org>2003-08-27 21:52:37 +0000
committerpdeuskar <pdeuskar@FreeBSD.org>2003-08-27 21:52:37 +0000
commita6edff558778b89807d7ea0cbdeca912d30c0947 (patch)
treece908ffb0bfff042753843ad1101e8dac4bc56f9 /sys/dev/em/if_em.h
parent4b97db330469200d4110c50337c8cbede767ba90 (diff)
downloadFreeBSD-src-a6edff558778b89807d7ea0cbdeca912d30c0947.zip
FreeBSD-src-a6edff558778b89807d7ea0cbdeca912d30c0947.tar.gz
Add support for new devices.
Bug Fixes: - Allow users to use LAA - Remember promiscuous mode settings while bridging - Allow gratuitous arp's to be sent PR: 52966/54488 MFC after: 1 week
Diffstat (limited to 'sys/dev/em/if_em.h')
-rw-r--r--sys/dev/em/if_em.h51
1 files changed, 39 insertions, 12 deletions
diff --git a/sys/dev/em/if_em.h b/sys/dev/em/if_em.h
index 7ed3ef3..10183ab 100644
--- a/sys/dev/em/if_em.h
+++ b/sys/dev/em/if_em.h
@@ -81,7 +81,7 @@ POSSIBILITY OF SUCH DAMAGE.
/* Tunables */
/*
- * TxDescriptors
+ * EM_MAX_TXD: Maximum number of Transmit Descriptors
* Valid Range: 80-256 for 82542 and 82543-based adapters
* 80-4096 for others
* Default Value: 256
@@ -92,7 +92,7 @@ POSSIBILITY OF SUCH DAMAGE.
#define EM_MAX_TXD 256
/*
- * RxDescriptors
+ * EM_MAX_RXD - Maximum number of receive Descriptors
* Valid Range: 80-256 for 82542 and 82543-based adapters
* 80-4096 for others
* Default Value: 256
@@ -105,7 +105,7 @@ POSSIBILITY OF SUCH DAMAGE.
#define EM_MAX_RXD 256
/*
- * TxIntDelay
+ * EM_TIDV - Transmit Interrupt Delay Value
* Valid Range: 0-65535 (0=off)
* Default Value: 64
* This value delays the generation of transmit interrupts in units of
@@ -117,20 +117,20 @@ POSSIBILITY OF SUCH DAMAGE.
#define EM_TIDV 64
/*
- * TxAbsIntDelay (Not valid for 82542/82543/82544)
+ * EM_TADV - Transmit Absolute Interrupt Delay Value (Not valid for 82542/82543/82544)
* Valid Range: 0-65535 (0=off)
* Default Value: 64
* This value, in units of 1.024 microseconds, limits the delay in which a
- * transmit interrupt is generated. Useful only if TxIntDelay is non-zero,
+ * transmit interrupt is generated. Useful only if EM_TIDV is non-zero,
* this value ensures that an interrupt is generated after the initial
* packet is sent on the wire within the set amount of time. Proper tuning,
- * along with TxIntDelay, may improve traffic throughput in specific
+ * along with EM_TIDV, may improve traffic throughput in specific
* network conditions.
*/
#define EM_TADV 64
/*
- * RxIntDelay
+ * EM_RDTR - Receive Interrupt Delay Timer (Packet Timer)
* Valid Range: 0-65535 (0=off)
* Default Value: 0
* This value delays the generation of receive interrupts in units of 1.024
@@ -141,24 +141,24 @@ POSSIBILITY OF SUCH DAMAGE.
* may be set too high, causing the driver to run out of available receive
* descriptors.
*
- * CAUTION: When setting RxIntDelay to a value other than 0, adapters
+ * CAUTION: When setting EM_RDTR to a value other than 0, adapters
* may hang (stop transmitting) under certain network conditions.
* If this occurs a WATCHDOG message is logged in the system event log.
* In addition, the controller is automatically reset, restoring the
* network connection. To eliminate the potential for the hang
- * ensure that RxIntDelay is set to 0.
+ * ensure that EM_RDTR is set to 0.
*/
#define EM_RDTR 0
/*
- * RxAbsIntDelay (Not valid for 82542/82543/82544)
+ * Receive Interrupt Absolute Delay Timer (Not valid for 82542/82543/82544)
* Valid Range: 0-65535 (0=off)
* Default Value: 64
* This value, in units of 1.024 microseconds, limits the delay in which a
- * receive interrupt is generated. Useful only if RxIntDelay is non-zero,
+ * receive interrupt is generated. Useful only if EM_RDTR is non-zero,
* this value ensures that an interrupt is generated after the initial
* packet is received within the set amount of time. Proper tuning,
- * along with RxIntDelay, may improve traffic throughput in specific network
+ * along with EM_RDTR, may improve traffic throughput in specific network
* conditions.
*/
#define EM_RADV 64
@@ -202,6 +202,17 @@ POSSIBILITY OF SUCH DAMAGE.
*/
#define WAIT_FOR_AUTO_NEG_DEFAULT 0
+/*
+ * EM_MASTER_SLAVE is only defined to enable a workaround for a known compatibility issue
+ * with 82541/82547 devices and some switches. See the "Known Limitations" section of
+ * the README file for a complete description and a list of affected switches.
+ *
+ * 0 = Hardware default
+ * 1 = Master mode
+ * 2 = Slave mode
+ * 3 = Auto master/slave
+ */
+/* #define EM_MASTER_SLAVE 2 */
/* Tunables -- End */
@@ -301,6 +312,19 @@ struct em_int_delay_info {
int value; /* Current value in usecs */
};
+/* For 82544 PCIX Workaround */
+typedef struct _ADDRESS_LENGTH_PAIR
+{
+ u_int64_t address;
+ u_int32_t length;
+} ADDRESS_LENGTH_PAIR, *PADDRESS_LENGTH_PAIR;
+
+typedef struct _DESCRIPTOR_PAIR
+{
+ ADDRESS_LENGTH_PAIR descriptor[4];
+ u_int32_t elements;
+} DESC_ARRAY, *PDESC_ARRAY;
+
/* Our adapter structure */
struct adapter {
struct arpcom interface_data;
@@ -389,6 +413,9 @@ struct adapter {
u_int64_t tx_fifo_reset;
u_int64_t tx_fifo_wrk;
+ /* For 82544 PCIX Workaround */
+ boolean_t pcix_82544;
+
#ifdef DBG_STATS
unsigned long no_pkts_avail;
unsigned long clean_tx_interrupts;
OpenPOWER on IntegriCloud