summaryrefslogtreecommitdiffstats
path: root/sys/dev/mxge/mxge_mcp.h
diff options
context:
space:
mode:
authorgallatin <gallatin@FreeBSD.org>2007-05-08 14:19:43 +0000
committergallatin <gallatin@FreeBSD.org>2007-05-08 14:19:43 +0000
commit7a83edd79bf4a84d393967cebf18ce1c602e296d (patch)
treed7f6fd3444471f9ed8e456134ed201bb3c468ee3 /sys/dev/mxge/mxge_mcp.h
parentff40eaca0ed948412b621aff3ad763b569f777a6 (diff)
downloadFreeBSD-src-7a83edd79bf4a84d393967cebf18ce1c602e296d.zip
FreeBSD-src-7a83edd79bf4a84d393967cebf18ce1c602e296d.tar.gz
Firmware update & improvements to firmware selection:
- Update to latest (1.4.17) firmware. - Use the new MXGEFW_CMD_UNALIGNED_TEST (added in firmare 1.4.16) to have the firmware tell us if the PCIe chipset supports aligned PCIe completions. - Hard to maintain, and frequently out of date whitelist of PCIe chipsets known to produce aligned completions removed, as it has been replaced in its role of selecting the correct firmware to run by the use of MXGEFW_CMD_UNALIGNED_TEST. - Break the dma test out of mxge_reset() and into its own function (mxge_dma_test()) so it can be used by both the normal DMA test, and to run the unaligned test. - Improved support for enabling ECRCs Sponsored by: Myricom Inc.
Diffstat (limited to 'sys/dev/mxge/mxge_mcp.h')
-rw-r--r--sys/dev/mxge/mxge_mcp.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/sys/dev/mxge/mxge_mcp.h b/sys/dev/mxge/mxge_mcp.h
index 79d7249..d5da5a5 100644
--- a/sys/dev/mxge/mxge_mcp.h
+++ b/sys/dev/mxge/mxge_mcp.h
@@ -258,6 +258,13 @@ enum myri10ge_mcp_cmd_type {
/* data0, data1 = bus addr,
data2 = sizeof(struct mcp_irq_data) from driver point of view, allows
adding new stuff to mcp_irq_data without changing the ABI */
+
+ MXGEFW_CMD_UNALIGNED_TEST,
+ /* same than DMA_TEST (same args) but abort with UNALIGNED on unaligned
+ chipset */
+
+ MXGEFW_CMD_UNALIGNED_STATUS
+ /* return data = boolean, true if the chipset is known to be unaligned */
};
typedef enum myri10ge_mcp_cmd_type myri10ge_mcp_cmd_type_t;
@@ -272,7 +279,8 @@ enum myri10ge_mcp_cmd_status {
MXGEFW_CMD_ERROR_HASH_ERROR,
MXGEFW_CMD_ERROR_BAD_PORT,
MXGEFW_CMD_ERROR_RESOURCES,
- MXGEFW_CMD_ERROR_MULTICAST
+ MXGEFW_CMD_ERROR_MULTICAST,
+ MXGEFW_CMD_ERROR_UNALIGNED
};
typedef enum myri10ge_mcp_cmd_status myri10ge_mcp_cmd_status_t;
@@ -281,11 +289,19 @@ typedef enum myri10ge_mcp_cmd_status myri10ge_mcp_cmd_status_t;
struct mcp_irq_data {
/* add new counters at the beginning */
- uint32_t future_use[5];
+ uint32_t future_use[1];
+ uint32_t dropped_pause;
+ uint32_t dropped_unicast_filtered;
+ uint32_t dropped_bad_crc32;
+ uint32_t dropped_bad_phy;
uint32_t dropped_multicast_filtered;
/* 40 Bytes */
uint32_t send_done_count;
+#define MXGEFW_LINK_DOWN 0
+#define MXGEFW_LINK_UP 1
+#define MXGEFW_LINK_MYRINET 2
+#define MXGEFW_LINK_UNKNOWN 3
uint32_t link_up;
uint32_t dropped_link_overflow;
uint32_t dropped_link_error_or_filtered;
OpenPOWER on IntegriCloud