svn commit: r295603 - head/sys/dev/ioat

Conrad E. Meyer cem at FreeBSD.org
Sat Feb 13 19:01:57 UTC 2016


Author: cem
Date: Sat Feb 13 19:01:56 2016
New Revision: 295603
URL: https://svnweb.freebsd.org/changeset/base/295603

Log:
  ioat(4): Decode/define more capabilities, operations
  
  These are defined in the Intel Haswell EDS volume 2 (registers) (507849
  v2.1).
  
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/sys/dev/ioat/ioat_hw.h
  head/sys/dev/ioat/ioat_internal.h

Modified: head/sys/dev/ioat/ioat_hw.h
==============================================================================
--- head/sys/dev/ioat/ioat_hw.h	Sat Feb 13 17:23:55 2016	(r295602)
+++ head/sys/dev/ioat/ioat_hw.h	Sat Feb 13 19:01:56 2016	(r295603)
@@ -56,8 +56,13 @@ __FBSDID("$FreeBSD$");
 
 #define	IOAT_DMACAPABILITY_OFFSET	0x10
 #define	IOAT_DMACAP_PB			(1 << 0)
+#define	IOAT_DMACAP_CRC			(1 << 1)
+#define	IOAT_DMACAP_MARKER_SKIP		(1 << 2)
+#define	IOAT_DMACAP_OLD_XOR		(1 << 3)
 #define	IOAT_DMACAP_DCA			(1 << 4)
+#define	IOAT_DMACAP_MOVECRC		(1 << 5)
 #define	IOAT_DMACAP_BFILL		(1 << 6)
+#define	IOAT_DMACAP_EXT_APIC		(1 << 7)
 #define	IOAT_DMACAP_XOR			(1 << 8)
 #define	IOAT_DMACAP_PQ			(1 << 9)
 #define	IOAT_DMACAP_DMA_DIF		(1 << 10)
@@ -69,7 +74,8 @@ __FBSDID("$FreeBSD$");
 #define	IOAT_DMACAP_STR \
     "\20\24Completion_Timeout_Support\23DMA_with_Multicasting_Support" \
     "\22RAID_Super_descriptors\16Descriptor_Write_Back_Error_Support" \
-    "\13DMA_with_DIF\12PQ\11XOR\07Block_Fill\05DCA\01Page_Break"
+    "\13DMA_with_DIF\12PQ\11XOR\10Extended_APIC_ID\07Block_Fill\06Move_CRC" \
+    "\05DCA\04Old_XOR\03Marker_Skipping\02CRC\01Page_Break"
 
 /* DMA Channel Registers */
 #define	IOAT_CHANCTRL_OFFSET			0x80

Modified: head/sys/dev/ioat/ioat_internal.h
==============================================================================
--- head/sys/dev/ioat/ioat_internal.h	Sat Feb 13 17:23:55 2016	(r295602)
+++ head/sys/dev/ioat/ioat_internal.h	Sat Feb 13 19:01:56 2016	(r295603)
@@ -346,6 +346,22 @@ struct ioat_descriptor {
 	bus_addr_t		hw_desc_bus_addr;
 };
 
+/* Unsupported by this driver at this time. */
+#define	IOAT_OP_MOVECRC		0x41
+#define	IOAT_OP_MOVECRC_TEST	0x42
+#define	IOAT_OP_MOVECRC_STORE	0x43
+#define	IOAT_OP_CRC		0x81
+#define	IOAT_OP_CRC_TEST	0x82
+#define	IOAT_OP_CRC_STORE	0x83
+#define	IOAT_OP_MARKER		0x84
+
+/*
+ * Deprecated OPs -- v3 DMA generates an abort if given these.  And this driver
+ * doesn't support anything older than v3.
+ */
+#define	IOAT_OP_OLD_XOR		0x85
+#define	IOAT_OP_OLD_XOR_VAL	0x86
+
 enum ioat_ref_kind {
 	IOAT_DMAENGINE_REF = 0,
 	IOAT_ACTIVE_DESCR_REF,


More information about the svn-src-all mailing list