diff options
author | Shannon Nelson <shannon.nelson@intel.com> | 2007-11-14 19:59:51 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-14 21:45:41 -0500 |
commit | 7bb67c14fd3778504fb77da30ce11582336dfced (patch) | |
tree | 24b65f267a98716824c7955be02af8879cfda688 /drivers/dma/ioatdma_hw.h | |
parent | cc9f2f8f68efcc73d8793a4df2c4c50196e90080 (diff) |
I/OAT: Add support for version 2 of ioatdma device
Add support for version 2 of the ioatdma device. This device handles
the descriptor chain and DCA services slightly differently:
- Instead of moving the dma descriptors between a busy and an idle chain,
this new version uses a single circular chain so that we don't have
rewrite the next_descriptor pointers as we add new requests, and the
device doesn't need to re-read the last descriptor.
- The new device has the DCA tags defined internally instead of needing
them defined statically.
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Cc: "Williams, Dan J" <dan.j.williams@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/dma/ioatdma_hw.h')
-rw-r--r-- | drivers/dma/ioatdma_hw.h | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/drivers/dma/ioatdma_hw.h b/drivers/dma/ioatdma_hw.h index 9e7434e1551f..dd470fa91d86 100644 --- a/drivers/dma/ioatdma_hw.h +++ b/drivers/dma/ioatdma_hw.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright(c) 2004 - 2006 Intel Corporation. All rights reserved. | 2 | * Copyright(c) 2004 - 2007 Intel Corporation. All rights reserved. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
5 | * under the terms of the GNU General Public License as published by the Free | 5 | * under the terms of the GNU General Public License as published by the Free |
@@ -22,12 +22,19 @@ | |||
22 | #define _IOAT_HW_H_ | 22 | #define _IOAT_HW_H_ |
23 | 23 | ||
24 | /* PCI Configuration Space Values */ | 24 | /* PCI Configuration Space Values */ |
25 | #define IOAT_PCI_VID 0x8086 | 25 | #define IOAT_PCI_VID 0x8086 |
26 | #define IOAT_PCI_DID 0x1A38 | 26 | |
27 | #define IOAT_PCI_RID 0x00 | 27 | /* CB device ID's */ |
28 | #define IOAT_PCI_SVID 0x8086 | 28 | #define IOAT_PCI_DID_5000 0x1A38 |
29 | #define IOAT_PCI_SID 0x8086 | 29 | #define IOAT_PCI_DID_CNB 0x360B |
30 | #define IOAT_VER_1_2 0x12 /* Version 1.2 */ | 30 | #define IOAT_PCI_DID_SCNB 0x65FF |
31 | #define IOAT_PCI_DID_SNB 0x402F | ||
32 | |||
33 | #define IOAT_PCI_RID 0x00 | ||
34 | #define IOAT_PCI_SVID 0x8086 | ||
35 | #define IOAT_PCI_SID 0x8086 | ||
36 | #define IOAT_VER_1_2 0x12 /* Version 1.2 */ | ||
37 | #define IOAT_VER_2_0 0x20 /* Version 2.0 */ | ||
31 | 38 | ||
32 | struct ioat_dma_descriptor { | 39 | struct ioat_dma_descriptor { |
33 | uint32_t size; | 40 | uint32_t size; |
@@ -47,6 +54,16 @@ struct ioat_dma_descriptor { | |||
47 | #define IOAT_DMA_DESCRIPTOR_CTL_CP_STS 0x00000008 | 54 | #define IOAT_DMA_DESCRIPTOR_CTL_CP_STS 0x00000008 |
48 | #define IOAT_DMA_DESCRIPTOR_CTL_FRAME 0x00000010 | 55 | #define IOAT_DMA_DESCRIPTOR_CTL_FRAME 0x00000010 |
49 | #define IOAT_DMA_DESCRIPTOR_NUL 0x00000020 | 56 | #define IOAT_DMA_DESCRIPTOR_NUL 0x00000020 |
50 | #define IOAT_DMA_DESCRIPTOR_OPCODE 0xFF000000 | 57 | #define IOAT_DMA_DESCRIPTOR_CTL_SP_BRK 0x00000040 |
58 | #define IOAT_DMA_DESCRIPTOR_CTL_DP_BRK 0x00000080 | ||
59 | #define IOAT_DMA_DESCRIPTOR_CTL_BNDL 0x00000100 | ||
60 | #define IOAT_DMA_DESCRIPTOR_CTL_DCA 0x00000200 | ||
61 | #define IOAT_DMA_DESCRIPTOR_CTL_BUFHINT 0x00000400 | ||
62 | |||
63 | #define IOAT_DMA_DESCRIPTOR_CTL_OPCODE_CONTEXT 0xFF000000 | ||
64 | #define IOAT_DMA_DESCRIPTOR_CTL_OPCODE_DMA 0x00000000 | ||
65 | |||
66 | #define IOAT_DMA_DESCRIPTOR_CTL_CONTEXT_DCA 0x00000001 | ||
67 | #define IOAT_DMA_DESCRIPTOR_CTL_OPCODE_MASK 0xFF000000 | ||
51 | 68 | ||
52 | #endif | 69 | #endif |