Commit Graph
88 Commits
Author SHA1 Message Date
Matt Jacob 74ef9f5937 MFC: we don't need asm_sbus until we have an SBUS to run on. 1999-12-03 07:42:26 +00:00
Matt Jacob 7e9d0acbbd MFC: cleanup request/response queue size u_int8_t to u_int16_t change.
Change the usage of 'used' to 'touched'. Change some messages to be
CFGPRINTF instead of PRINTF. Clean up f/w download. If we're a 2100
less than rev 5, turn off loop fairness. Fix some random botches.
Use the isp_getrqentry inline to get the next request queue entry.
1999-12-03 07:40:31 +00:00
Matt Jacob bfbc761774 MFC: remove some target mode stuff. Roll minor version. Change func
declarations to follow that request/response queue indices now
are u_int16_t. Clean up some of the softc a bit.
1999-12-03 07:36:55 +00:00
Matt Jacob 723cde126f MFC: clean up isp_prtstst function and make sure it has a buffer big enough.
Add in isp_getrqentry inline function.
1999-12-03 07:34:27 +00:00
Matt Jacob 68d4337d86 MFC: roll platform minor. Remove WWN seed and replace with a default WWN.
Change DEFAULT_WWN macro to point to it. Remove unneeded string.
1999-12-03 07:33:14 +00:00
Matt Jacob fa159da4fc MFC: use new *BSD style licence for f/w. Organize f/w so that various
portions can be compiled in, or not. While we're at it, roll the 2200
f/w revision.
1999-12-03 07:30:43 +00:00
Matt Jacob f671ea43d4 MFC: turn back always doing tags for FC 1999-10-28 02:51:34 +00:00
Matt Jacob ee09fc67ae MFC: nuke a debug printout I thought I had already nuked 1999-10-26 22:27:41 +00:00
Matt Jacob b1c1eb785a MFC: remember to initialize mailbox 2 for FC isp bus resets 1999-10-22 17:04:38 +00:00
Matt Jacob af5bcc0336 (last delta had wrong comment)
MFC:Roll core version number. Do some stylistic changes. Ensure that
the result queue length is never less than 64. Move (ick) temp port
database used for post-LIP merging off the kernel stack and put it
into the softc. Remove some target mode stuff which will come back
later in a different file. Change how the list of outstanding commands
are stored (now allocated at mailbox setup time to be just enough for
the max for a specific HBA which can vary). Keep a rotating seed of
the last index for this in the softc. Increase the count of active
commands from 10 to 16 bits.
1999-10-17 19:47:51 +00:00
Matt Jacob 9efb797d8b (last delta had wrong comment)
MFC:add in an INT_PENDING macro
1999-10-17 19:47:17 +00:00
Matt Jacob b53455548e (last delta had wrong comment)
MFC:Remove target mode definitions (they'll come back later in
a different file).
1999-10-17 19:46:23 +00:00
Matt Jacob 7484648ed0 (last delta had wrong comment)
MFC:Roll platform major && minor (major now tracks FreeBSD major release).
Add in null SWIZZLE definitions. Add in CFGPRINTF define. Change default
debug level to refer to an external isp_debug variable. Remove inline
functions as they're now in isp_inline.h and include that file.
1999-10-17 19:45:50 +00:00
Matt Jacob fd527f059b (last delta had wrong comment)
MFC:Add in isp_debug variable. It defaults to zero unless CAMDEBUG is defined
where it defaults to one. Change simq width allocation to the max number
of commands supported by the HBA after f/w fires up- not the constant
MAXISPREQUEST value. Do some stylistic changes.
1999-10-17 19:45:06 +00:00
Matt Jacob eebe97f871 (last delta had wrong comment)
MFC:Remove some target mode stuff. It will get re-introduced in a different
file later. Do some pencil-sharpening types of minor changes. Change
how active commands are remembered (using new inline functions to get
handles, etc..). Now do a GET FIRMWARE STATUS after firing up the f/w as
outgoing mailbox 2 will tell you the f/w's notion of the max commands
that can be supported. Attempt to retrieve loop topology. Add in the
appropriate SWIZZLE/UNSWIZZLE macros calls (this is a no-op on Little
Endian machines but is needed for sparc (on other platforms)). Move
the temp port database we use to find out where things have moved to
after a LIP to the softc and off the kernel stack. Follow Qlogic's
hint and don't bother setting a tag for commands that don't have
this enabled (presumably the f/w will do it's own selection then).
Use an INT_PENDING macro to check for an interrupt. The call to
ISP_DMAFREE now just takes the handle- not the 'handle-1' which was
a layering violation. Use CFGPRINTF in a couple of places to make
things less chatty if not booting verbose, or CAMDEBUG compiles, etc..
1999-10-17 19:44:27 +00:00
Matt Jacob b1d34a3680 MFC:roll 10[24]0 and 1080/12X0 f/w 1999-10-17 19:33:38 +00:00
Matt Jacob 806141529a MFC:Add a file where inline functions for the Qlogic isp cards can go.
This reduces duplication in all the platform specific header files.
1999-10-17 19:27:22 +00:00
cvs2svn 36f28d1a96 This commit was manufactured by cvs2svn to create branch 'RELENG_3'. 1999-10-17 18:15:07 +00:00
Peter Wemm c4f617ca01 $Id$ -> $FreeBSD$ 1999-08-29 16:33:42 +00:00
Matt Jacob 950c68f562 MFC:Clarify and cleanup some CAM queueing breakages. 1999-08-16 20:12:38 +00:00
Matt Jacob f29839c904 MFC: add in SIMQFRZ_TIMED && CMD_RQLATER defines 1999-08-16 20:04:57 +00:00
Matt Jacob 5a08240742 MFC: add in new ICB structure variant (for 2200) 1999-08-16 20:03:17 +00:00
Matt Jacob 9be7464f93 MFC: Clarify lun limits for FC && SCSI. 1999-08-16 20:02:40 +00:00
Matt Jacob 603d05ee27 MFC:More code cleanup. Go back to using FULL_LOGIN Fibre Chan if
MFC:f/w is less than 1.17.0 level. Change where we do the loop database
MFC:init. Add in the CMD_RQLATER return. Add some register debounce.
1999-08-16 20:00:26 +00:00
Matt Jacob ff95fcade0 MFC: add in (controlled by option) 2200 Expanded Lun F/W 1999-07-06 05:40:44 +00:00
Matt Jacob a12844d032 MFC: add 2200 f/w; fix botched define 1999-07-05 20:43:14 +00:00
Matt Jacob 4bbe08c838 MFC: Add 2200 support. Add Fabric Support. Add SCCLUN support. Clean up a lot.
Remove non-CAM code. Merge contents of isp_freebsd_cam.h to isp_freebsd.h.
Remove isp_freebsd_cam.h. Run in circles, scream and shout.
1999-07-03 01:47:14 +00:00
Matt Jacob 094b5bdde7 MFC: Roll FC firmware 1999-07-02 23:55:58 +00:00
Matt Jacob f20389c563 MFC: Bruce pointed out I was being silly with volatile. 1999-06-24 16:40:17 +00:00
Matt Jacob dd34994c74 Approved by jkh:
MFC: When asked to get the current transfer settings go do a dev_refresh
isp_update call to get a better chance at seeing whether a recent
settings change has latched up.
1999-05-12 23:26:41 +00:00
Matt Jacob c731e7a861 MFC: revisions 1.10-1.16 and 1.18. A large set of changes to handle dual
bus adapters and changes in how f/w is handled.
1999-05-11 06:03:27 +00:00
Matt Jacob 162abbbf22 MFC: cleanups and dual bus definitions. 1999-05-11 05:57:24 +00:00
Matt Jacob ce93b8c2f4 MFC: support for dual bus adapters. 1999-05-11 05:55:39 +00:00
Matt Jacob 022a7360a2 MFC: Do 3 level f/w versions. 1080/1240 support (for dual bus hbas).
See revistions 1.9-1.14.
1999-05-11 05:54:06 +00:00
Matt Jacob 78e6c17781 MFC: Add in 1080/1240 support (new register layouts) and NVRAM for same.
See revistions 1.5-1.9.
1999-05-11 05:51:39 +00:00
Matt Jacob 871c599673 MFC: use FAST POSTING codes. Add in 1080/1240 support which caused a
quite large set of changes. Correct bogus BIG_ENDIAN defines.
See revisions 1.5-1.10.
1999-05-11 05:49:59 +00:00
Matt Jacob e8f333985c MFC: Add in dual bus support. Add in 1080 LVD support. Add in NVRAM
decdoing. Go to a 3 level f/w usage. Handle PDB change events properly.
See revisions 1.12-1.19.
1999-05-11 05:47:40 +00:00
Matt Jacob e726c73d59 MFC versions 1.5-1.10 1999-05-11 03:01:20 +00:00
Kenneth D. Merry 74775eaafa MFC: Add a number of interrelated CAM feature enhancements and
bug fixes.

NOTE:  These changes will require recompilation of any userland
applications, like cdrecord, xmcd, etc., that use the CAM passthrough
interface.  A make world is recommended.

camcontrol.[c8]:
 - We now support two new commands, "tags" and "negotiate".

	- The tags commands allows users to view the number of tagged
	  openings for a device as well as a number of other related
	  parameters, and it allows users to set tagged openings for
	  a device.

	- The negotiate command allows users to enable and disable
	  disconnection and tagged queueing, set sync rates, offsets
	  and bus width.  Note that not all of those features are
	  available for all controllers.  Only the adv, ahc, and ncr
	  drivers fully support all of the features at this point.
	  Some cards do not allow the setting of sync rates, offsets and
	  the like, and some of the drivers don't have any facilities to
	  do so.  Some drivers, like the adw driver, only support enabling
	  or disabling sync negotiation, but do not support setting sync
	  rates.

 - new description in the camcontrol man page of how to format a disk
 - cleanup of the camcontrol inquiry command
 - add support in the 'devlist' command for skipping unconfigured devices if
   -v was not specified on the command line.
 - make use of the new base_transfer_speed in the path inquiry CCB.
 - fix CCB bzero cases

cam_xpt.c, cam_sim.[ch], cam_ccb.h:

 - new flags on many CCB function codes to designate whether they're
   non-immediate, use a user-supplied CCB, and can only be passed from
   userland programs via the xpt device.  Use these flags in the transport
   layer and pass driver to categorize CCBs.

 - new flag in the transport layer device matching code for device nodes
   that indicates whether a device is unconfigured

 - bump the CAM version from 0x10 to 0x11

 - Change the CAM ioctls to use the version as their group code, so we can
   force users to recompile code even when the CCB size doesn't change.

 - add + fill in a new value in the path inquiry CCB, base_transfer_speed.
   Remove a corresponding field from the cam_sim structure, and add code to
   every SIM to set this field to the proper value.

 - Fix the set transfer settings code in the transport layer.

scsi_cd.c:

 - make some variables volatile instead of just casting them in various
   places
 - fix a race condition in the changer code
 - attach unless we get a "logical unit not supported" error.  This should
   fix all of the cases where people have devices that return weird errors
   when they don't have media in the drive.

scsi_da.c:

 - attach unless we get a "logical unit not supported" error

scsi_pass.c:

 - for immediate CCBs, just malloc a CCB to send the user request in.  This
   gets rid of the 'held' count problem in camcontrol tags.

scsi_pass.h:

 - change the CAM ioctls to use the CAM version as their group code.

adv driver:

 - Allow changing the sync rate and offset separately.

adw driver

 - Allow changing the sync rate and offset separately.

aha driver:

 - Don't return CAM_REQ_CMP for SET_TRAN_SETTINGS CCBs.

ahc driver:

 - Allow setting offset and sync rate separately

bt driver:

 - Don't return CAM_REQ_CMP for SET_TRAN_SETTINGS CCBs.

NCR driver:

 - Fix the ultra/ultra 2 negotiation bug
 - allow setting both the sync rate and offset separately

Other HBA drivers:
 - Put code in to set the base_transfer_speed field for
   XPT_GET_TRAN_SETTINGS CCBs.

Reviewed by:	gibbs, imp (aha), mjacob (isp)
1999-05-07 00:43:47 +00:00
cvs2svn 4b4d01da6f This commit was manufactured by cvs2svn to create branch 'RELENG_3'. 1999-01-21 00:55:31 +00:00
Matt Jacob bff85e290f Suggested by [email protected] memcpy not necessarily good to use. D'oh- not in
the BSD DKI. Stop being lazy and finish the defines so MEMCPY becomes bzero
for FreeBSD.
1999-01-10 11:15:23 +00:00
Matt Jacob f7102a20c6 Add some prototype deadchip detection. Set FIFO bursting (1XX0 only-
it's already on for the 2XX0) and detect the broken 1040A FIFO. Change
bzero to MEMZERO (portability with **nux). Use memcpy for same reason.

Finally detect QUEUE FULL conditions and return this as an error that
will get cam_periph_error to do it's 'tagged openings now XXX' dance.
1999-01-10 02:55:10 +00:00
Matt Jacob 128101f362 up isp_fifo_threshold NVRAM storage to 3 bits (for future 128 bit) 1999-01-10 02:51:48 +00:00
Matt Jacob f28c2b3f0b add MEMZERO portability defines 1999-01-10 02:51:06 +00:00
Matt Jacob 285e230daf Amazingly stupid forgetfullness had me forgetting to turn on FIFO bursts
for the 1XX0 cards. That cost > 50% performance.
1999-01-10 02:45:51 +00:00
Matt Jacob 17e318c604 clarify headers;ansify 1998-12-28 19:24:23 +00:00
Matt Jacob c305536317 clarify headers;move uninit to outer layer;remove watchdog 1998-12-28 19:22:27 +00:00
Matthew Dillon 2cbe36f725 probe function changed from returning char * to const char *. 1998-12-14 06:37:37 +00:00
Matt Jacob cc56928232 oops on last 1998-12-05 01:46:40 +00:00
Matt Jacob e205b454ac Remove the Target mode functions until they're in better shape. Implement some
suggested compilation cleanups from Eklund. Wire down a hard loop id if we are
not on a platform that has the ability to get to a PCI BIOS (it still will
float to the ID it gets after a LIP but at least we can try). Clarify that the
expanded lun is based upon SCCLUN defines (in f/w).
1998-12-05 01:33:57 +00:00