Lines Matching +full:target +full:- +full:module

54 PCI and SBus SCSI cards, and now also drove the QLogic 2100 FC-AL HBA.
56 After this, ports to non-NetBSD platforms became interesting as well.
64 Along the way, support for the 2200 as well as full fabric and target
65 mode support has been added, and 2300 support as well as an FC-IP stack
71 Normally you design via top-down methodologies and set an initial goal
76 as I perceive them to be now- not necessarily what they started as.
90 as well as private loop and private loop, direct-attach topologies.
91 FC-IP support is also a goal.
93 For both SCSI and Fibre Channel, simultaneous target/initiator mode support
119 The QLogic HBA cards all contain a tiny 16-bit RISC-like processor and
122 to a set of dual-ranked 16 bit incoming and outgoing mailbox registers
124 other portions of the card (e.g., Flash BIOS). The term 'dual-ranked'
146 of asynchronous events (e.g., incoming commands in target mode).
149 HBA has 8 dual-ranked 16 bit mailbox registers, mostly for out-of-band
152 I/O commands (or continue target mode requests). The request queue may
173 FC-AL as a 'fat' SCSI bus (a SCSI bus with more than 15 targets). All
175 to providing FC-4 services on top of a Class 3 connection are performed
183 binding of entities it's queried from the name server to specific 'target'
186 Still- the HBA firmware does really nearly all of the tedious management
192 The QLogic manages local loop devices (LoopID or Target 0..126) itself,
202 there are SCSI target device drivers (drivers which drive SCSI disks,
214 There are some additional basic assumptions that this driver makes- primarily
220 The driver is split into a core (machine independent) module and platform
231 the core module or via an externally visible control entry point
236 module's use. Generally a platform module set is split into a bus
237 dependent module (where configuration is begun from and bus specific
250 The machine dependent outer module must provide functional entry points
251 for the core module:
257 The machine dependent outer module code must also provide a set of
258 abstracting definitions which is what the core module utilizes heavily
268 XS_TGT(xs) gets the target from an XS_T
285 filled in by the code module).
293 Typically a bus specific module for a platform (e.g., one that wants
295 methods. If this module recognizes a card and can utilize or construct the
301 and registering an interrupt. It's quite possible that the core module's
303 it's more useful have a bus specific wrapper module that calls isp_intr.
307 module to perform allocation and/or mapping of Request and Response
310 only the bus dependent module may have the information that says how
319 NVRAM from the QLogic card), then this bus specicic module will call the
320 platform dependent module that takes the appropriate steps to 'register'
332 The platform specific module function that receives this will do whatever
333 it needs to prepare this command for execution in the core module. This
341 command. This core module tries to allocate request queue space for
347 also the place where any endian byte-swizzling will be done. At any
364 of the Request Queue entry can contain a non-zero handle identifier so
372 isp_intr will be called. This core module will determine what the cause
388 Each platform module has to provide an isp_async entry point that will
394 5.6 Target Mode Code Flow
398 The QLogic cards, when operating in target mode, follow a code flow that is
403 This is passed to possibly external target mode handler. This driver
404 provides some handling for this in a core module, but also leaves
405 things open enough that a completely different target mode handler
408 The external target mode handler then turns around forms up a response
415 target mode handler will respond to that, and so on until the command
418 Because almost no platform provides basic SCSI Subsystem target mode
427 The basic assumption about this is that the core module does not know
434 was in place upon the entry to the core module is still there. It is up
443 requirement that the while in the core module no locks or interrupt
453 supported Automatic Request sense will work- there is no particular provision
454 for disabling it's usage on a per-command basis.
479 It starts with FW_CONFIG_WAIT, attempts to get an AL_PA (if on an FC-AL
480 loop instead of being connected as an N-port), waits to log into all
481 FC-AL loop entities and then hopefully transitions to FW_READY state.
489 5.9.2. Loop State Transitions- From Nil to Ready
500 (where "Loop" is taken to mean FC-AL or N- or F-port connections) states
531 be called which will then scan for any local (FC-AL) entries by asking
550 loop but we wish to retain a 'constant' Target ID (see 5.9.4), this
551 is indexed directly via the Target ID for the command (XS_TGT(xs)).
553 If there is a valid entry for this Target ID, the command is started
563 5.9.4 "Target" in Fibre Channel is a fixed virtual construct
565 Very few systems can cope with the notion that "Target" for a disk
575 disk# Loop ID Target ID
583 each disk. However, it reports to NetBSD that things exist as 'Target
585 Loop ID and Target ID.
591 disk# Loop ID Target ID
599 Clearly, you don't want disk3 and disk4's "Target ID" to change while you're
605 disk# Loop ID Target ID
613 So, "Target" is a virtual entity that is maintained while you're running.
617 HBA - Host Bus Adapter
619 SCSI - Small Computer
625 http://www.netbsd.org - NetBSD's Web Page
626 http://www.openbsd.org - OpenBSD's Web Page
627 https://www.freebsd.org - FreeBSD's Web Page
629 http://www.t10.org - ANSI SCSI Commitee's Web Page
631 http://www.t11.org - NCITS Device Interface Web Page