Deleted Added
full compact
DriverManual.txt (84631) DriverManual.txt (226436)
1/* $FreeBSD: head/sys/dev/isp/DriverManual.txt 84631 2001-10-07 18:26:47Z mjacob $ */
1/* $FreeBSD: head/sys/dev/isp/DriverManual.txt 226436 2011-10-16 14:30:28Z eadler $ */
2
3 Driver Theory of Operation Manual
4
51. Introduction
6
7This is a short text document that will describe the background, goals
8for, and current theory of operation for the joint Fibre Channel/SCSI
9HBA driver for QLogic hardware.

--- 150 unchanged lines hidden (view full) ---

160solely in outgoing mailbox registers. These asynchronous notifications in
161mailboxes may be things like notification of SCSI Bus resets, or that the
162Fabric Name server has sent a change notification, or even that a specific
163I/O command completed without error (this is called 'Fast Posting'
164and saves the QLogic HBA from having to write a response queue entry).
165
166The QLogic HBA is an interrupting card, and when servicing an interrupt
167you really only have to check for either a mailbox interrupt or an
2
3 Driver Theory of Operation Manual
4
51. Introduction
6
7This is a short text document that will describe the background, goals
8for, and current theory of operation for the joint Fibre Channel/SCSI
9HBA driver for QLogic hardware.

--- 150 unchanged lines hidden (view full) ---

160solely in outgoing mailbox registers. These asynchronous notifications in
161mailboxes may be things like notification of SCSI Bus resets, or that the
162Fabric Name server has sent a change notification, or even that a specific
163I/O command completed without error (this is called 'Fast Posting'
164and saves the QLogic HBA from having to write a response queue entry).
165
166The QLogic HBA is an interrupting card, and when servicing an interrupt
167you really only have to check for either a mailbox interrupt or an
168interrupt notification that the the response queue has an entry to
168interrupt notification that the response queue has an entry to
169be dequeued.
170
1714.3 Fibre Channel SCSI out of SCSI
172
173QLogic took the approach in introducing the 2X00 cards to just treat
174FC-AL as a 'fat' SCSI bus (a SCSI bus with more than 15 targets). All
175of the things that you really need to do with Fibre Channel with respect
176to providing FC-4 services on top of a Class 3 connection are performed

--- 145 unchanged lines hidden (view full) ---

322this HBA with this platform's SCSI subsystem. Examining either the
323OpenBSD or the NetBSD isp_pci.c or isp_sbus.c files may assist the reader
324here in clarifying some of this.
325
3265.4 Initiator Mode Command Code Flow
327
328A succesful execution of isp_init will lead to the driver 'registering'
329itself with this platform's SCSI subsystem. One assumed action for this
169be dequeued.
170
1714.3 Fibre Channel SCSI out of SCSI
172
173QLogic took the approach in introducing the 2X00 cards to just treat
174FC-AL as a 'fat' SCSI bus (a SCSI bus with more than 15 targets). All
175of the things that you really need to do with Fibre Channel with respect
176to providing FC-4 services on top of a Class 3 connection are performed

--- 145 unchanged lines hidden (view full) ---

322this HBA with this platform's SCSI subsystem. Examining either the
323OpenBSD or the NetBSD isp_pci.c or isp_sbus.c files may assist the reader
324here in clarifying some of this.
325
3265.4 Initiator Mode Command Code Flow
327
328A succesful execution of isp_init will lead to the driver 'registering'
329itself with this platform's SCSI subsystem. One assumed action for this
330is the registry of a function the the SCSI subsystem for this platform
330is the registry of a function the SCSI subsystem for this platform
331will call when it has a SCSI command to run.
332
333The platform specific module function that receives this will do whatever
334it needs to to prepare this command for execution in the core module. This
335sounds vague, but it's also very flexible. In principle, this could be
336a complete marshalling/demarshalling of this platform's SCSI command
337structure (should it be impossible to represent in an XS_T). In addition,
338this function can also block commands from running (if, e.g., Fibre

--- 296 unchanged lines hidden ---
331will call when it has a SCSI command to run.
332
333The platform specific module function that receives this will do whatever
334it needs to to prepare this command for execution in the core module. This
335sounds vague, but it's also very flexible. In principle, this could be
336a complete marshalling/demarshalling of this platform's SCSI command
337structure (should it be impossible to represent in an XS_T). In addition,
338this function can also block commands from running (if, e.g., Fibre

--- 296 unchanged lines hidden ---