summaryrefslogtreecommitdiffstats
path: root/sys/dev/mpt
Commit message (Collapse)AuthorAgeFilesLines
* Start each of the license/copyright comments with /*-, minor shuffle of linesimp2005-01-0615-15/+15
|
* Add support for FC929X, which apparently is just a PCI-X version of FC929.sobomax2004-12-181-0/+7
| | | | MFC after: 3 days
* Correct style nit in rev 1.17.obrien2004-08-251-2/+2
|
* Pick up changes in rev 1.8 of src/sys/dev/ic/mpt_netbsd.c from NetBSD.dwhite2004-08-241-1/+3
| | | | | | | | | | | Set the DMA SGL length correctly if the DMA request must be chained because it is too large to fit in one SGL. This should fix this driver for some Dell Precision systems. RELENG_5 candidate. PR: kern/66479 Submitted by: HITOSHI Osada <qfh02545@nifty.com>
* Fix where my automated script blew the SCM ID format conversion.obrien2004-08-213-9/+9
|
* Remove erroneous semicolons.stefanf2004-07-131-2/+2
|
* Convert callers to the new bus_alloc_resource_any(9) API.njl2004-03-171-2/+2
| | | | | Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
* These are changes to allow to use the Intel C/C++ compiler (lang/icc)trhodes2004-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to build the kernel. It doesn't affect the operation if gcc. Most of the changes are just adding __INTEL_COMPILER to #ifdef's, as icc v8 may define __GNUC__ some parts may look strange but are necessary. Additional changes: - in_cksum.[ch]: * use a generic C version instead of the assembly version in the !gcc case (ASM code breaks with the optimizations icc does) -> no bad checksums with an icc compiled kernel Help from: andre, grehan, das Stolen from: alpha version via ppc version The entire checksum code should IMHO be replaced with the DragonFly version (because it isn't guaranteed future revisions of gcc will include similar optimizations) as in: ---snip--- Revision Changes Path 1.12 +1 -0 src/sys/conf/files.i386 1.4 +142 -558 src/sys/i386/i386/in_cksum.c 1.5 +33 -69 src/sys/i386/include/in_cksum.h 1.5 +2 -0 src/sys/netinet/igmp.c 1.6 +0 -1 src/sys/netinet/in.h 1.6 +2 -0 src/sys/netinet/ip_icmp.c 1.4 +3 -4 src/contrib/ipfilter/ip_compat.h 1.3 +1 -2 src/sbin/natd/icmp.c 1.4 +0 -1 src/sbin/natd/natd.c 1.48 +1 -0 src/sys/conf/files 1.2 +0 -1 src/sys/conf/files.amd64 1.13 +0 -1 src/sys/conf/files.i386 1.5 +0 -1 src/sys/conf/files.pc98 1.7 +1 -1 src/sys/contrib/ipfilter/netinet/fil.c 1.10 +2 -3 src/sys/contrib/ipfilter/netinet/ip_compat.h 1.10 +1 -1 src/sys/contrib/ipfilter/netinet/ip_fil.c 1.7 +1 -1 src/sys/dev/netif/txp/if_txp.c 1.7 +1 -1 src/sys/net/ip_mroute/ip_mroute.c 1.7 +1 -2 src/sys/net/ipfw/ip_fw2.c 1.6 +1 -2 src/sys/netinet/igmp.c 1.4 +158 -116 src/sys/netinet/in_cksum.c 1.6 +1 -1 src/sys/netinet/ip_gre.c 1.7 +1 -2 src/sys/netinet/ip_icmp.c 1.10 +1 -1 src/sys/netinet/ip_input.c 1.10 +1 -2 src/sys/netinet/ip_output.c 1.13 +1 -2 src/sys/netinet/tcp_input.c 1.9 +1 -2 src/sys/netinet/tcp_output.c 1.10 +1 -1 src/sys/netinet/tcp_subr.c 1.10 +1 -1 src/sys/netinet/tcp_syncache.c 1.9 +1 -2 src/sys/netinet/udp_usrreq.c 1.5 +1 -2 src/sys/netinet6/ipsec.c 1.5 +1 -2 src/sys/netproto/ipsec/ipsec.c 1.5 +1 -1 src/sys/netproto/ipsec/ipsec_input.c 1.4 +1 -2 src/sys/netproto/ipsec/ipsec_output.c and finally remove sys/i386/i386 in_cksum.c sys/i386/include in_cksum.h ---snip--- - endian.h: * DTRT in C++ mode - quad.h: * we don't use gcc v1 anymore, remove support for it Suggested by: bde (long ago) - assym.h: * avoid zero-length arrays (remove dependency on a gcc specific feature) This change changes the contents of the object file, but as it's only used to generate some values for a header, and the generator knows how to handle this, there's no impact in the gcc case. Explained by: bde Submitted by: Marius Strobl <marius@alchemy.franken.de> - aicasm.c: * minor change to teach it about the way icc spells "-nostdinc" Not approved by: gibbs (no reply to my mail) - bump __FreeBSD_version (lang/icc needs to know about the changes) Incarnations of this patch survive gcc compiles since a loooong time, I use it on my desktop. An icc compiled kernel works since Nov. 2003 (exceptions: snd_* if used as modules), it survives a build of the entire ports collection with icc. Parts of this commit contains suggestions or submissions from Marius Strobl <marius@alchemy.franken.de>. Reviewed by: -arch Submitted by: netchild
* Catch a few places where NULL (pointer) was used where 0 (integer) waspeter2003-12-231-1/+1
| | | | expected.
* Use PCIR_BAR(x) instead of PCIR_MAPS.jhb2003-09-021-15/+15
| | | | | Glanced over by: imp, gibbs Tested by: i386 LINT
* Use __FBSDID().obrien2003-08-244-9/+17
| | | | Also some minor style cleanups.
* Prefer new location of pci include files (which have only been in theimp2003-08-221-2/+2
| | | | | tree for two or more years now), except in a few places where there's code to be compatible with older versions of FreeBSD.
* Mega busdma API commit.scottl2003-07-011-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour. sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen. If anyone gets panics or warnings from dflt_lock() being called, please let me know right away. Reviewed by: tmm, gibbs
* Merge common XPT_CALC_GEOMETRY functions into a single convenience function.njl2003-06-141-13/+1
| | | | | | | | | | | | | Devices below may experience a change in geometry. * Due to a bug, aic(4) never used extended geometry. Changes all drives >1G to now use extended translation. * sbp(4) drives exactly 1 GB in size now no longer use extended geometry. * umass(4) drives exactly 1 GB in size now no longer use extended geometry. For all other controllers in this commit, this should be a no-op. Looked over by: scottl
* Add change that allows PAE to work.mjacob2003-06-121-1/+2
| | | | Submitted by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
* Update MPILIB from code received from LSI. Make changes in the rest ofmjacob2003-06-039-159/+519
| | | | the driver based upon some somewhat gratuitous name changes.
* Fix compile: the type is spelled bus_dmasync_op_t rather thanjhb2003-05-271-3/+3
| | | | | | bus_dmamap_sync_t. With hat: re
* Bring back bus_dmasync_op_t. It is now a typedef to an int, though thescottl2003-05-271-3/+3
| | | | | | | | BUS_DMASYNC_ definitions remain as before. The does not change the ABI, and reverts the API to be a bit more compatible and flexible. This has survived a full 'make universe'. Approved by: re (bmah)
* I deserve a big pointy hat for having missed all those referencesmux2003-04-101-3/+3
| | | | to bus_dmasync_op_t in my last commit.
* PAGE_SIZE is unsigned on all our platforms, and is a long on some.obrien2003-02-231-2/+2
| | | | | | So cast to u_long before printing out and use a matching specifier. Tested on: sparc64
* Back out M_* changes, per decision of the TRB.imp2003-02-191-2/+2
| | | | Approved by: trb
* Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.alfred2003-01-211-2/+2
| | | | Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
* Be consistent about functions being static.phk2002-10-161-1/+1
| | | | Spotted by: FlexeLint.
* Code cleanup: use mpt_prt instead of device_printf.mjacob2002-09-245-222/+171
|
* Parameterize MPT_MAX_REQUESTS based upon device type (FC has Global Creditsmjacob2002-09-234-82/+99
| | | | | | | | of 1024- Ultra4 256). Rename 'requests' tag to 'request_pool' for clarity. Make sure we do correct xpt_freeze_simq/CAM_RELEASE_SIMQ if we run out of chip resources. MFC after: 6 days
* Wads more cleanup...mjacob2002-09-231-176/+233
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In mpttimeout, call mpt_intr just on the offchance that we missed an interrupt. We can check to see whether or not the command that is timing out got completed. When we *do* decide to timeout a command, set the command state to REQ_TIMEOUT and then invoke another timeout (hz/10)- mpttimeout2. This allows us to catch a couple cases we've seen where the command we timed out on in fact is ready to be completed by the firmware. In any case, it's only after mpttimeout2 is called that we actually take down the private state and free the request itself. CAM has been notified in mpttimeout anyway. This whole area should be redone, but that will take 105% of my available game time for this month. Fix a couple of missing (and not useful, at presnet) CAMLOCK_2_MPTLOCK and MPTLOCK_2_CAMLOCK locations. Split mpt_notify into mpt_ctlop, which handles all reply completions that have 0x800000000 or'd into the ContextID. This function can, in fact, call mpt_event_notify_reply, which handles the traditional async event notifications. While we're at it, put in the extremely important (but currently untested) code that send back an Ack to an Event Notification (if the Event Notification is marked with AckRequired). Note that an Ack also generates another ctlop completion, tra la. Fix up mpt_done substantially to try and get how we plug into CAM correctly done. Remove bogus CAM_RELEASE_SIMQ settings. Do some cleanups in mpt_action that are related to speed negotiation for Ultra4 cards. This is an area that is still quite fragile and worrisome as config data being read back often doesn't make sense or jibe with the documentation. At any rate, after these changes were done, I was finally able to get Lars Eggert's dual 320M disk system to stay up under load all weekend- hopefully we're in good enough for now shape. MFC after: 1 week
* Recognize the single channel 2Gb card (FC919)- thanks to LSI Logic formjacob2002-09-231-2/+14
| | | | | | | | | pointing this out. In mpt_intr, don't try and pop a reply queue element out *unless* the interrupt status says you might have one. MFC after: 1 week
* We do not need to expose mpt_notify outside of mpt_freebsd.c.mjacob2002-09-231-1/+0
| | | | MFC after: 1 week
* When freeing a request, zero out the sequence number.mjacob2002-09-231-2/+3
| | | | | | | | | | | | Define the CFG_DAGA_OFF offset as 128 bytes instead of 40- gives us a more reasonable headroom. When reading a config page, zero out the entire request area- not just the length of the request. This is because we cleverly (cheezily) return configuration data back into the allocated request area, so it's nice to make sure we start with a clean area to write on. MFC after: 1 week
* Don't do transition locking (i.e., CAM->MPT->CAM)- Peter claimed that ia64mjacob2002-09-031-0/+10
| | | | | | chokes the chicken with this. Submitted by: wemm@freebsd.org
* Fix things so that:mjacob2002-09-014-34/+278
| | | | | | | | | a) we don't believe what the board tells us all the time (if the BIOS hasn't run, port page 2 and port page 0 tend to be garbage) b) add the missing code to set parameters for the SPI cards. MFC after: 0 days
* Sigh. Ken Merry convinced me that my attempts to DTRT were wrong.mjacob2002-08-3010-321/+220
| | | | | | | | Replace dual copyright with a plain BSD style copyright assigned to LSI Logic. This is still within the intents of express consent from LSI. MFC after: 2 days
* Add 909A PCI id.mjacob2002-08-301-1/+9
| | | | MFC after: 2 days
* Add an additional copyright (with the express consent of LSI Logic) thatmjacob2002-08-3010-0/+310
| | | | | | | | | specifically allows for (via 'BSD Style' licensing) source && binary redistribution. Pointy hat to: Matt, for not getting this done ahead of time. MFC after: 2 days
* Do some minor cleanups found during backport to RELENG_4.mjacob2002-08-233-25/+24
|
* Pick a cleaner method (and put in a separate function) for findingmjacob2002-08-231-21/+43
| | | | the peer device on a dual board.
* A chunk of cleanup, both stylistic and substantive.mjacob2002-08-206-330/+1021
| | | | | | | | We now also read configuration information for the SCSI cards- this allows us to try and say what the speed settings now are. Start, but not yet complete, the process of reorgs && #defines so that we can backport to RELENG_4 pretty soon.
* Add support for the LSI-Logic Fusion/MP architecture.mjacob2002-08-1116-0/+7920
This is an architecture that present a thing message passing interface to the OS. You can query as to how many ports and what kind are attached and enable them and so on. A less grand view is that this is just another way to package SCSI (SPI or FC) and FC-IP into a one-driver interface set. This driver support the following hardware: LSI FC909: Single channel, 1Gbps, Fibre Channel (FC-SCSI only) LSI FC929: Dual Channel, 1-2Gbps, Fibre Channel (FC-SCSI only) LSI 53c1020: Single Channel, Ultra4 (320M) (Untested) LSI 53c1030: Dual Channel, Ultra4 (320M) Currently it's in fair shape, but expect a lot of changes over the next few weeks as it stabilizes. Credits: The driver is mostly from some folks from Jeff Roberson's company- I've been slowly migrating it to broader support that I it came to me as. The hardware used in developing support came from: FC909: LSI-Logic, Advansys (now Connetix) FC929: LSI-Logic 53c1030: Antares Microsystems (they make a very fine board!) MFC after: 3 weeks
OpenPOWER on IntegriCloud