summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp
Commit message (Collapse)AuthorAgeFilesLines
* Start each of the license/copyright comments with /*-, minor shuffle of linesimp2005-01-0611-11/+11
|
* PAE support changes that included at least some minimal actual testingmjacob2004-09-232-18/+26
| | | | with a kernel that booted.
* Do the small amount of tweaking to support PAE for at least initiator mode.mjacob2004-09-071-1/+137
| | | | | | | | I was unable to test this as the PAE kernel crashed with a "cannot copy LDT" before coming up. When this gets a bit more testing, I'll fix the PAE conf file to allow isp devices. PR: 59728
* Until I can get a clearer architecture from PHK about why he wantsmjacob2004-08-231-0/+2
| | | | | | | the geometry code to grab a mutex that prohibits any driver on the stack below it from sleeping, it's not safe to allow anything in the top half of isp to sleep (excepting the thread that Fibre Channel instances use to re-scan loops/fabrics).
* - Introduce an ofw_bus kobj-interface for retrieving the OFW node and amarius2004-08-121-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | subset ("compatible", "device_type", "model" and "name") of the standard properties in drivers for devices on Open Firmware supported busses. The standard properties "reg", "interrupts" und "address" are not covered by this interface because they are only of interest in the respective bridge code. There's a remaining standard property "status" which is unclear how to support properly but which also isn't used in FreeBSD at present. This ofw_bus kobj-interface allows to replace the various (ebus_get_node(), ofw_pci_get_node(), etc.) and partially inconsistent (central_get_type() vs. sbus_get_device_type(), etc.) existing IVAR ones with a common one. This in turn allows to simplify and remove code-duplication in drivers for devices that can hang off of more than one OFW supported bus. - Convert the sparc64 Central, EBus, FHC, PCI and SBus bus drivers and the drivers for their children to use the ofw_bus kobj-interface. The IVAR- interfaces of the Central, EBus and FHC are entirely replaced by this. The PCI bus driver used its own kobj-interface and now also uses the ofw_bus one. The IVARs special to the SBus, e.g. for retrieving the burst size, remain. Beware: this causes an ABI-breakage for modules of drivers which used the IVAR-interfaces, i.e. esp(4), hme(4), isp(4) and uart(4), which need to be recompiled. The style-inconsistencies introduced in some of the bus drivers will be fixed by tmm@ in a generic clean-up of the respective drivers later (he requested to add the changes in the "new" style). - Convert the powerpc MacIO bus driver and the drivers for its children to use the ofw_bus kobj-interface. This invloves removing the IVARs related to the "reg" property which were unused and a leftover from the NetBSD origini of the code. There's no ABI-breakage caused by this because none of these driver are currently built as modules. There are other powerpc bus drivers which can be converted to the ofw_bus kobj-interface, e.g. the PCI bus driver, which should be done together with converting powerpc to use the OFW PCI code from sparc64. - Make the SBus and FHC front-end of zs(4) and the sparc64 eeprom(4) take advantage of the ofw_bus kobj-interface and simplify them a bit. Reviewed by: grehan, tmm Approved by: re (scottl) Discussed with: tmm Tested with: Sun AX1105, AXe, Ultra 2, Ultra 60; PPC cross-build on i386
* Do the dreaded s/dev_t/struct cdev */phk2004-06-161-1/+1
| | | | Bump __FreeBSD_version accordingly.
* Add missing <sys/module.h> includes currently relying on nested includephk2004-06-031-0/+1
| | | | in <sys/kernel.h>
* Store the target handles in a separate list from normal commands. Add anjl2004-05-246-15/+125
| | | | | | CTIO fast post routine to handle CTIO completions. Submitted by: mjacob
* Correct the boundary parameter to the bus_dma_tag_create() calls (it wastmm2004-03-231-2/+2
| | | | | | | (1 << 24) - 2 instead of 1 << 24, which it was obviously intended to be). This fixes SBus isp(4)s on sparc64 machines. Report and testing: Marius Strobl <marius@alchemy.franken.de>
* Convert callers to the new bus_alloc_resource_any(9) API.njl2004-03-172-7/+7
| | | | | 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
* Device megapatch 4/6:phk2004-02-211-0/+2
| | | | | | | | Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION. Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
* Device megapatch 1/6:phk2004-02-211-2/+0
| | | | | | | Free approx 86 major numbers with a mostly automatically generated patch. A number of strategic drivers have been left behind by caution, and a few because they still (ab)use their major number.
* We aren't D_TAPE. We aren't anything. The reasons why this was ever setmjacob2004-02-161-1/+0
| | | | at all is lost in the mists of time.
* Remove condition variables and status associated with target modemjacob2004-02-081-246/+169
| | | | | | | | enabling. Instead, go to an interrupt/polled model. Fix get_lun_statep so we don't panic if there are no wildcard luns enabled. MFC after: 6 days
* Remove condition variables and status associated with target modemjacob2004-02-081-6/+2
| | | | | | enabling. Instead, go to an interrupt/polled model. MFC after: 6 days
* Checkpoint of work in progress in cleaning up target mode. It actuallymjacob2004-02-071-16/+92
| | | | | | | seems to work well in RELENG_4. However, 5.X locking foo means that I'll have to do some quick redesign. Add ioctl handlers for ISP_GETROLE and ISP_SETROLE ioctls.
* add a count for inotifies as well as atios.mjacob2004-02-071-0/+1
| | | | MFC after: 1 week
* Reverse role defines for initiator and target mode to better match themjacob2004-02-071-4/+6
| | | | | | | | | class 3 service parameters we'd get. Steal 8 bits out of the portid u_int32_t for role information (port ids are 24 bits anyway). MFC after: 1 week
* Add case to handle ISPCTL_GET_PDB.mjacob2004-02-071-0/+9
| | | | MFC after: 1 week
* If we're defined to have a default role for target mode, make itmjacob2004-02-071-5/+4
| | | | | | just ISP_ROLE_TARGET- not both. MFC after: 1 week
* Change role defines so that they better match class 3 service parameters.mjacob2004-02-071-3/+4
| | | | | | Add ISPCTL_GET_PDB isp_control operation. MFC after: 1 week
* Fix a bug where we never managed to include the sense data we wanted to send.mjacob2004-01-291-2/+2
|
* Fix longstanding buglet- for centrally handled CTIO2s we were checking the wrongmjacob2004-01-291-2/+3
| | | | | | | bit for this being the last CTIO2. It didn't matter since it really was the last CTIO2 and the resources recycled, but still.... Add in CTIO3 define for future DAC work.
* If we have ISP_ROLE_INITIATOR set, make sure that we clear ICBOPT_INI_DISABLEmjacob2004-01-231-0/+6
| | | | | from the fwoptions. Likewise, we *set* ICBOPT_INI_DISABLE if we don't have initiator role.
* add MAKE_WWN_FROM_NODE_NAME macromjacob2004-01-231-0/+10
|
* Add firmware major, minor and micro revsions to the ISP_FC_GETHINFO ioctlmjacob2004-01-232-0/+7
| | | | structure.
* fix broken _IOR usagemjacob2003-11-141-1/+1
|
* Turn off ISP_SMPLOCK- not to be turned on again.mjacob2003-10-211-1/+1
| | | | | Until we can have perfect knowledge that all callers above us think it's okay for us to sleep, releasing *our* locks of course, we don't dare try and sleep.
* The present defaults for the open and close for device drivers whichphk2003-09-271-2/+0
| | | | | | | | | | | | | | provide no methods does not make any sense, and is not used by any driver. It is a pretty hard to come up with even a theoretical concept of a device driver which would always fail open and close with ENODEV. Change the defaults to be nullopen() and nullclose() which simply does nothing. Remove explicit initializations to these from the drivers which already used them.
* Add a module dependancy. Now CAM will autoload when you load this.markm2003-09-151-0/+1
| | | | OK'ed by: mdodd
* NetBSD'er with time on their hands (dma->DMA)mjacob2003-09-131-1/+1
|
* Bland synchronization of common source with no effect on FreeBSD whatsomever.mjacob2003-09-131-66/+132
|
* Some ridiculous target mode botches- like having the wrong definitionsmjacob2003-09-132-32/+34
| | | | | for messages. Some spelling fixes. Some target mode structure cleanups to reflect reality.
* Some canonicalization function cleanups based upon some target modemjacob2003-09-131-13/+2
| | | | structure cleanups.
* No time like the present to turn back on SMP locking.mjacob2003-09-131-2/+1
|
* Report correct active vs. nvram node/port WWNs in an ioctl.mjacob2003-09-131-2/+4
|
* On reset, make sure that we have some parameters set correctly. Thismjacob2003-09-131-1/+18
| | | | | | | | | | | | fixes a longstanding issue WRT resetting the chip after startup- it would fail if we were connected as an F-port to a switch. If we were connected as an F-port, we got assigned a hard loop ID of 255, which is really a bogus loop id. Then when we turned around to reset ourselves, the firmware would reject the ICB_INIT request because the loop id was bogus. *sputter* Minor fixlet from somebody in NetBSD with too much time on their hands (dma -> DMA).
* Move the inclusion of <machine/ofw_machdep.h> after the inclusion ofmarcel2003-09-021-1/+1
| | | | | | | <dev/ofw/openfirm.h> to allow the former to contain prototypes that use types defined in the latter. Reviewed by: mjacob@
* Revert previous commit. Violates Maintainer (O'Brien knows how tomjacob2003-08-251-13/+24
| | | | | reach me directly), but more importantly, breaks compiles on non-FreeBSD platforms.
* Use __FBSDID().obrien2003-08-244-6/+14
| | | | Also some minor style cleanups.
* s=include <ofw/=include <dev/ofw/= to reflect removal of -I$S/devimp2003-08-231-1/+1
|
* 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-012-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Restore parentheses removed inappropriately in last commit.mjacob2003-06-011-2/+3
|
* Remove unused variablesphk2003-05-312-6/+5
| | | | | | Add /* FALLTHROUGH */ Found by: FlexeLint
* Add an explanatory comment about what operational modes in xfwopt are.mjacob2003-03-251-1/+5
|
* Gigacommit to improve device-driver source compatibility betweenphk2003-03-031-13/+6
| | | | | | | | | | | | | branches: Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values. This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386. Approved by: re(scottl)
* Back out M_* changes, per decision of the TRB.imp2003-02-192-5/+5
| | | | Approved by: trb
OpenPOWER on IntegriCloud