diff options
Diffstat (limited to 'Documentation/scsi')
-rw-r--r-- | Documentation/scsi/ChangeLog.lpfc | 2 | ||||
-rw-r--r-- | Documentation/scsi/ChangeLog.ncr53c8xx | 2 | ||||
-rw-r--r-- | Documentation/scsi/ChangeLog.sym53c8xx | 2 | ||||
-rw-r--r-- | Documentation/scsi/cxgb3i.txt | 85 | ||||
-rw-r--r-- | Documentation/scsi/scsi_fc_transport.txt | 4 |
5 files changed, 90 insertions, 5 deletions
diff --git a/Documentation/scsi/ChangeLog.lpfc b/Documentation/scsi/ChangeLog.lpfc index ae3f962a7cfc..ff19a52fe004 100644 --- a/Documentation/scsi/ChangeLog.lpfc +++ b/Documentation/scsi/ChangeLog.lpfc | |||
@@ -733,7 +733,7 @@ Changes from 20040920 to 20041018 | |||
733 | I/O completion path a little more, especially taking care of | 733 | I/O completion path a little more, especially taking care of |
734 | fast-pathing the non-error case. Also removes tons of dead | 734 | fast-pathing the non-error case. Also removes tons of dead |
735 | members and defines from lpfc_scsi.h - e.g. lpfc_target is down | 735 | members and defines from lpfc_scsi.h - e.g. lpfc_target is down |
736 | to nothing more then the lpfc_nodelist pointer. | 736 | to nothing more than the lpfc_nodelist pointer. |
737 | * Added binary sysfs file to issue mbox commands | 737 | * Added binary sysfs file to issue mbox commands |
738 | * Replaced #if __BIG_ENDIAN with #if __BIG_ENDIAN_BITFIELD for | 738 | * Replaced #if __BIG_ENDIAN with #if __BIG_ENDIAN_BITFIELD for |
739 | compatibility with the user space applications. | 739 | compatibility with the user space applications. |
diff --git a/Documentation/scsi/ChangeLog.ncr53c8xx b/Documentation/scsi/ChangeLog.ncr53c8xx index a9f721aeb11c..8b278c10edfd 100644 --- a/Documentation/scsi/ChangeLog.ncr53c8xx +++ b/Documentation/scsi/ChangeLog.ncr53c8xx | |||
@@ -19,7 +19,7 @@ Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) | |||
19 | 19 | ||
20 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) | 20 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) |
21 | * version ncr53c8xx-3.4.1 | 21 | * version ncr53c8xx-3.4.1 |
22 | - Provide OpenFirmare path through the proc FS on PPC. | 22 | - Provide OpenFirmware path through the proc FS on PPC. |
23 | - Remove trailing argument #2 from a couple of #undefs. | 23 | - Remove trailing argument #2 from a couple of #undefs. |
24 | 24 | ||
25 | Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) | 25 | Sun Jul 09 16:30 2000 Gerard Roudier (groudier@club-internet.fr) |
diff --git a/Documentation/scsi/ChangeLog.sym53c8xx b/Documentation/scsi/ChangeLog.sym53c8xx index ef985ec348e6..02ffbc1e8a84 100644 --- a/Documentation/scsi/ChangeLog.sym53c8xx +++ b/Documentation/scsi/ChangeLog.sym53c8xx | |||
@@ -81,7 +81,7 @@ Sun Sep 24 21:30 2000 Gerard Roudier (groudier@club-internet.fr) | |||
81 | 81 | ||
82 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) | 82 | Wed Jul 26 23:30 2000 Gerard Roudier (groudier@club-internet.fr) |
83 | * version sym53c8xx-1.7.1 | 83 | * version sym53c8xx-1.7.1 |
84 | - Provide OpenFirmare path through the proc FS on PPC. | 84 | - Provide OpenFirmware path through the proc FS on PPC. |
85 | - Download of on-chip SRAM using memcpy_toio() doesn't work | 85 | - Download of on-chip SRAM using memcpy_toio() doesn't work |
86 | on PPC. Restore previous method (MEMORY MOVE from SCRIPTS). | 86 | on PPC. Restore previous method (MEMORY MOVE from SCRIPTS). |
87 | - Remove trailing argument #2 from a couple of #undefs. | 87 | - Remove trailing argument #2 from a couple of #undefs. |
diff --git a/Documentation/scsi/cxgb3i.txt b/Documentation/scsi/cxgb3i.txt new file mode 100644 index 000000000000..8141fa01978e --- /dev/null +++ b/Documentation/scsi/cxgb3i.txt | |||
@@ -0,0 +1,85 @@ | |||
1 | Chelsio S3 iSCSI Driver for Linux | ||
2 | |||
3 | Introduction | ||
4 | ============ | ||
5 | |||
6 | The Chelsio T3 ASIC based Adapters (S310, S320, S302, S304, Mezz cards, etc. | ||
7 | series of products) supports iSCSI acceleration and iSCSI Direct Data Placement | ||
8 | (DDP) where the hardware handles the expensive byte touching operations, such | ||
9 | as CRC computation and verification, and direct DMA to the final host memory | ||
10 | destination: | ||
11 | |||
12 | - iSCSI PDU digest generation and verification | ||
13 | |||
14 | On transmitting, Chelsio S3 h/w computes and inserts the Header and | ||
15 | Data digest into the PDUs. | ||
16 | On receiving, Chelsio S3 h/w computes and verifies the Header and | ||
17 | Data digest of the PDUs. | ||
18 | |||
19 | - Direct Data Placement (DDP) | ||
20 | |||
21 | S3 h/w can directly place the iSCSI Data-In or Data-Out PDU's | ||
22 | payload into pre-posted final destination host-memory buffers based | ||
23 | on the Initiator Task Tag (ITT) in Data-In or Target Task Tag (TTT) | ||
24 | in Data-Out PDUs. | ||
25 | |||
26 | - PDU Transmit and Recovery | ||
27 | |||
28 | On transmitting, S3 h/w accepts the complete PDU (header + data) | ||
29 | from the host driver, computes and inserts the digests, decomposes | ||
30 | the PDU into multiple TCP segments if necessary, and transmit all | ||
31 | the TCP segments onto the wire. It handles TCP retransmission if | ||
32 | needed. | ||
33 | |||
34 | On receving, S3 h/w recovers the iSCSI PDU by reassembling TCP | ||
35 | segments, separating the header and data, calculating and verifying | ||
36 | the digests, then forwards the header to the host. The payload data, | ||
37 | if possible, will be directly placed into the pre-posted host DDP | ||
38 | buffer. Otherwise, the payload data will be sent to the host too. | ||
39 | |||
40 | The cxgb3i driver interfaces with open-iscsi initiator and provides the iSCSI | ||
41 | acceleration through Chelsio hardware wherever applicable. | ||
42 | |||
43 | Using the cxgb3i Driver | ||
44 | ======================= | ||
45 | |||
46 | The following steps need to be taken to accelerates the open-iscsi initiator: | ||
47 | |||
48 | 1. Load the cxgb3i driver: "modprobe cxgb3i" | ||
49 | |||
50 | The cxgb3i module registers a new transport class "cxgb3i" with open-iscsi. | ||
51 | |||
52 | * in the case of recompiling the kernel, the cxgb3i selection is located at | ||
53 | Device Drivers | ||
54 | SCSI device support ---> | ||
55 | [*] SCSI low-level drivers ---> | ||
56 | <M> Chelsio S3xx iSCSI support | ||
57 | |||
58 | 2. Create an interface file located under /etc/iscsi/ifaces/ for the new | ||
59 | transport class "cxgb3i". | ||
60 | |||
61 | The content of the file should be in the following format: | ||
62 | iface.transport_name = cxgb3i | ||
63 | iface.net_ifacename = <ethX> | ||
64 | iface.ipaddress = <iscsi ip address> | ||
65 | |||
66 | * if iface.ipaddress is specified, <iscsi ip address> needs to be either the | ||
67 | same as the ethX's ip address or an address on the same subnet. Make | ||
68 | sure the ip address is unique in the network. | ||
69 | |||
70 | 3. edit /etc/iscsi/iscsid.conf | ||
71 | The default setting for MaxRecvDataSegmentLength (131072) is too big, | ||
72 | replace "node.conn[0].iscsi.MaxRecvDataSegmentLength" to be a value no | ||
73 | bigger than 15360 (for example 8192): | ||
74 | |||
75 | node.conn[0].iscsi.MaxRecvDataSegmentLength = 8192 | ||
76 | |||
77 | * The login would fail for a normal session if MaxRecvDataSegmentLength is | ||
78 | too big. A error message in the format of | ||
79 | "cxgb3i: ERR! MaxRecvSegmentLength <X> too big. Need to be <= <Y>." | ||
80 | would be logged to dmesg. | ||
81 | |||
82 | 4. To direct open-iscsi traffic to go through cxgb3i's accelerated path, | ||
83 | "-I <iface file name>" option needs to be specified with most of the | ||
84 | iscsiadm command. <iface file name> is the transport interface file created | ||
85 | in step 2. | ||
diff --git a/Documentation/scsi/scsi_fc_transport.txt b/Documentation/scsi/scsi_fc_transport.txt index 38d324d62b25..e5b071d46619 100644 --- a/Documentation/scsi/scsi_fc_transport.txt +++ b/Documentation/scsi/scsi_fc_transport.txt | |||
@@ -191,7 +191,7 @@ Vport States: | |||
191 | This is equivalent to a driver "attach" on an adapter, which is | 191 | This is equivalent to a driver "attach" on an adapter, which is |
192 | independent of the adapter's link state. | 192 | independent of the adapter's link state. |
193 | - Instantiation of the vport on the FC link via ELS traffic, etc. | 193 | - Instantiation of the vport on the FC link via ELS traffic, etc. |
194 | This is equivalent to a "link up" and successfull link initialization. | 194 | This is equivalent to a "link up" and successful link initialization. |
195 | Further information can be found in the interfaces section below for | 195 | Further information can be found in the interfaces section below for |
196 | Vport Creation. | 196 | Vport Creation. |
197 | 197 | ||
@@ -320,7 +320,7 @@ Vport Creation: | |||
320 | This is equivalent to a driver "attach" on an adapter, which is | 320 | This is equivalent to a driver "attach" on an adapter, which is |
321 | independent of the adapter's link state. | 321 | independent of the adapter's link state. |
322 | - Instantiation of the vport on the FC link via ELS traffic, etc. | 322 | - Instantiation of the vport on the FC link via ELS traffic, etc. |
323 | This is equivalent to a "link up" and successfull link initialization. | 323 | This is equivalent to a "link up" and successful link initialization. |
324 | 324 | ||
325 | The LLDD's vport_create() function will not synchronously wait for both | 325 | The LLDD's vport_create() function will not synchronously wait for both |
326 | parts to be fully completed before returning. It must validate that the | 326 | parts to be fully completed before returning. It must validate that the |