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