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 --- |