summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic7xxx
Commit message (Collapse)AuthorAgeFilesLines
* Make ddb command registration dynamic so modules can extendsam2008-09-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | the command set (only so long as the module is present): o add db_command_register and db_command_unregister to add and remove commands, respectively o replace linker sets with SYSINIT's (and SYSUINIT's) that register commands o expose 3 list heads: db_cmd_table, db_show_table, and db_show_all_table for registering top-level commands, show operands, and show all operands, respectively While here also: o sort command lists o add DB_ALIAS, DB_SHOW_ALIAS, and DB_SHOW_ALL_ALIAS to add aliases for existing commands o add "show all trace" as an alias for "show alltrace" o add "show all locks" as an alias for "show alllocks" Submitted by: Guillaume Ballet <gballet@gmail.com> (original version) Reviewed by: jhb MFC after: 1 month
* Only print sense data diagnostics if debugging is enabled with thegibbs2008-02-171-6/+12
| | | | AHD_SHOW_SENSE flag.
* Remove superfluous setting of the transport_version field of ourgibbs2008-02-171-1/+0
| | | | | path inquiry response - a likely holdover from the port of this code from the aic7xxx driver.
* Advertise to CAM the ability of 790X controllers to negotiate informationgibbs2008-02-171-2/+3
| | | | unit transfers (packetized/U320 protocol) and QAS.
* fix up some code for older systems changed by accident in the last commitjulian2007-10-211-1/+6
| | | | | this whole support for systems earlier than 5.0 should probably be removed but I'll at least FIX it before removing it, so that CVS has it right.
* Rename the kthread_xxx (e.g. kthread_create()) callsjulian2007-10-202-3/+3
| | | | | | | | | | | to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it turns out that most of these calls actually end up being moved back to the thread version when it's added. but we need to make this cosmetic change first. I'd LOVE to do this rename in 7.0 so that we can eventually MFC the new kthread_xxx() calls.
* Fix locking mistakes in the error recovery paths of the AHC and AHD drivers.scottl2007-07-312-4/+0
| | | | Approved by: re
* Prepare for future integration between CAM and newbus. xpt_bus_registerscottl2007-06-172-3/+4
| | | | | | | now takes a device_t to be the parent of the bus that is being created. Most SIMs have been updated with a reasonable argument, but a few exceptions just pass NULL for now. This argument isn't used yet and the newbus integration likely won't be ready until after 7.0-RELEASE.
* Up until now, the free SCB pool received only a small initial allocation,scottl2007-04-195-18/+24
| | | | | | | | | | | | and new SCBs were allocated on demand later if needed. This has two problems. First, allocating SCBs involves allocating contiguous memory, and if memory is exhausted then the VM will try to page out to satisfy the request, leading to recursion and deadlock. The second problem is that it can cause lock order reversals due to parts of the VM still being under Giant. Fix the problem be allocating the full pool at driver attach, when it is safe to do so.
* Basic MPSAFE locking for the AHC and AHD drivers.scottl2007-04-1713-336/+72
|
* Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM willscottl2007-04-152-3/+4
| | | | | | | | | | | use to synchornize and protect all data objects that are used for that SIM. Drivers that are not yet MPSAFE register Giant and operate as usual. RIght now, no drivers are MPSAFE, though a few will be changed in the coming week as this work settles down. The driver API has changed, so all CAM drivers will need to be recompiled. The userland API has not changed, so tools like camcontrol do not need to be recompiled.
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-232-2/+2
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* Correct typos containing my login name (plus one more in expr.y).ceri2007-02-181-1/+1
| | | | Found courtesy of a recursive grep in the wrong directory.
* - Change the PCI-X registers constants to be relative to the PCI-X PCIjhb2007-01-192-7/+17
| | | | | | | | | capability rather than hardcoded offsets for a particular card. While I'm here, expand the constants some. - Change the ahd(4) driver to use pci_find_extcap() to locate the PCI-X capability to keep up with the first change. Reviewed by: scottl, gibbs (earlier version)
* Fix a group of typos:yar2006-12-293-3/+3
| | | | | | | | preceed -> precede, preceeded -> preceded, preceeding -> preceding. Submitted by: Andre Guibert de Bruet <andy@siliconlandmark.com>
* 2nd and final commit that moves us to CAM_NEW_TRAN_CODEmjacob2006-11-024-367/+0
| | | | | | as the default. Reviewed by multitudes.
* Coverity: initialize some variables before potential use.mjacob2006-09-051-0/+2
|
* add a newbus method for obtaining the bus's bus_dma_tag_t... This isjmg2006-09-034-8/+8
| | | | | | | | | | | | | required by arches like sparc64 (not yet implemented) and sun4v where there are seperate IOMMU's for each PCI bus... For all other arches, it will end up returning NULL, which makes it a no-op... Convert a few drivers (the ones we've been working w/ on sun4v) to the new convection... Eventually all drivers will need to replace the parent tag of NULL, w/ bus_get_dma_tag(dev), though dev is usually different for each driver, and will require hand inspection... Reviewed by: scottl (earlier version)
* Since DELAY() was moved, most <machine/clock.h> #includes have beenphk2006-05-162-2/+0
| | | | unnecessary.
* Clean up the way we handle auxiliary commands for a given ddb commandjhb2006-03-071-1/+1
| | | | | | | | | | | | | | | | table. Previously, the ddb code knew of each linker set of auxiliary commands and which explicit command list they were tied to. These changes add a simple command_table struct that contains both the static list of commands and the pointers for any auxiliary linker set of additional commands. This also makes it possible for other arbitrary command tables to be defined in other parts of the kernel w/o having to edit ddb itself. The DB_SET macro has also been trimmed down to just creating an entry in a linker set. A new DB_FUNC macro does what the old DB_SET did which is to not only add an entry to the linker set but also to include a function prototype for the function being added. With these changes, it's now also possible to create aliases for ddb functions using DB_SET() directly if desired.
* Fix -Wundef warnings from compiling GENERIC and LINT kernels ofru2005-12-061-1/+1
| | | | all architectures.
* Fix -Wundef warnings found when compiling i386 LINT, GENERIC andru2005-12-051-1/+1
| | | | custom kernels.
* Fix -Wundef.ru2005-12-045-13/+13
|
* Fix mysterious build failures (with parallel make) early inru2005-11-211-1/+1
| | | | | | | | buildkernel: provide a real but dummy name to ${DEPENDFILE} so that the relevant exists() check in bsd.prog.mk fails and ensures that ${GENHDRS} are built before any other objects. MFC after: 3 days
* Use the AHC_DISABLE_PCI_PERR flag to silence parity error reporting ongibbs2005-09-221-8/+15
| | | | | | chips where setting the FAILDIS bit is not effective. While here, try again to make it clear that reported parity errors indicate a failure of some PCI device *other than* the aic7xxx controller.
* Enhance diagnostic printfs for the chains of free lists used togibbs2005-09-221-1/+3
| | | | avoid SCB ID collissions to non-packetized targets.
* Correct bug that caused the completed "recovery" scb to have itsgibbs2005-09-222-2/+4
| | | | | | timer reset rather than the timer of an SCB still pending on the controller after recovery completed. This should correct timeout loops seen in the field.
* Set allow_memio to 1 if fetching the allow_memio hint fails. Thisgibbs2005-09-221-0/+1
| | | | | is the default behavior according the the bootverbose printf in the failure case.
* Back out change accidentally committed as Makefile:1.21 -- a localrwatson2005-08-031-1/+0
| | | | | | tweak to let the 6.x/7.x kernel series build on a 5.x userland. Pointed out by: njl
* Modify device drivers supporting multicast addresses to lock if_addr_mtxrwatson2005-08-031-0/+1
| | | | | | | | over iteration of their multicast address lists when synchronizing the hardware address filter with the network stack-maintained list. Problem reported by: Ed Maste (emaste at phaedrus dot sandvine dot ca> MFC after: 1 week
* Remove bus_{mem,p}io.h and related code for a micro-optimization on i386nyan2005-05-292-4/+0
| | | | | | and amd64. The optimization is a trivial on recent machines. Reviewed by: -arch (imp, marcel, dfr)
* remove useless ptr check; cur_column can never be nullsam2005-03-311-1/+1
| | | | Noticed by: Coverity Prevent analysis tool
* Use BUS_PROBE_DEFAULT for pci probe return valueimp2005-03-052-2/+2
|
* aic79xx.c:gibbs2005-02-162-5/+16
| | | | | | | | | | | aic7xxx.c: Allow print_reg() to be called with a NULL column. aic79xx.c: Correct new usage of SCB_GET_TAG(). aic7xxx.c: Fix stray ahd that snuck in here.
* On Rev. B silicon, we disabled the enhanced busfree detection logic togibbs2005-02-161-3/+3
| | | | | | | | | | | close holes in detecting busfrees that occur after a packetized target transitions to a non-packetized phase. The most common case where this occurs is when a target is externally reset so the controller believes a packetzied negotiation agreement is still in effect. Unfortunately, disabling this feature seems to cause problems for the 7901B. Re-enable ehanced busfree detection for this part until I can get my hands on a samble to figure out if the old workaround is necessary and, if so, how to make it work correctly.
* MF5S: Explicitly initialize timedout_scb lists, use SCB_TAG for all accessgibbs2005-02-163-4/+9
| | | | | to the hardware_scb->tag field, limit max lun reported to CAM to 63, return after a panic to silence a warning.
* Make this compile from the last commitscottl2005-01-061-1/+1
|
* Start each of the license/copyright comments with /*-, minor shuffle of linesimp2005-01-0634-34/+34
|
* Start the dreaded NOFOO -> NO_FOO conversion.ru2004-12-211-1/+1
| | | | OK'ed by: core
* Add some useful target mode diagnostics for incoming commandsgibbs2004-11-181-7/+11
| | | | under the AHC_SHOW_TQIN debug flag.
* Revert to basing all timeout/timer values in ms rather than us. The switchgibbs2004-11-184-16/+26
| | | | | | | | | to us was to help out the Linux port, but really just invited overflow. In fact, the request sense timer was overflowing prior to this change making it much shorter than intended. aic_osm_lib.h: Be more careful about overflow in all timer/timeout primitives.
* For variables that are only checked with defined(), don't provideru2004-10-241-1/+1
| | | | any fake value.
* aic7xxx.h:gibbs2004-10-192-14/+91
| | | | | | | | | | | | | | | Add constants for SPI protocol delays that are needed for target mode. aic7xxx.c: Correct a target mode issue that caused an occassional spurious REQ to be seen on the bus when performing manual message processing (e.g. transfer rate negotiation). Enforce phase change bus settle rules with explicit delays when performing manual message processing in target mode. The sequencer already did this for "fast-path", target mode message processing.
* Skip probe attempts for ISA PnP devices.gibbs2004-10-151-1/+5
| | | | Pointed out by: imp
* Correct a typo in a comment: alloated->allocatedgibbs2004-08-301-1/+1
| | | | Reported by: Jens Schweikhardt <schweikh@schweikhardt.net>
* In the PCI error interrupt handler, specify the width of the PCI configurationgibbs2004-08-221-6/+7
| | | | | | cycle using the correct argument. The location and width were reversed. MFC in: 2 days
* Set AHD_BUSFREEREV_BUG in the bug field for Rev B chips, not thegibbs2004-08-221-3/+3
| | | | | | | feature field. Reported by: Ken Westerback <krw@openbsd.org> MFC in: 2 days
* Initialize iobase from the resource allocated by bus_alloc_resource_any()gibbs2004-08-181-2/+2
| | | | | | rather than with isa_get_port(). This value is only used in diagnostics, but the value we want to print is the value in our resource, not in any hint.
* Invert the polarity of two tests in the recovery code that could causegibbs2004-08-181-2/+2
| | | | | | | | the driver to issue a bus reset more quickly than intended. We want to *wait* if we find another SCB that could be the cause of this timeout, not proceed to a bus reset. Noticed by: kan
* Remove spurious EISA definitions left over from the initial port of thegibbs2004-08-181-13/+0
| | | | aic7xxx driver to U320 hardware.
OpenPOWER on IntegriCloud