summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac
Commit message (Collapse)AuthorAgeFilesLines
* Include command type in COMMAND TIMEOUT messages to aid in debugging.emaste2010-02-171-2/+3
|
* Diff reduction with Adaptec's vendor driver.emaste2010-02-144-15/+28
| | | | | Driver version 2.1.9 chosen as that Adaptec version roughly corresponds with the current feature set merged to the in-tree driver.
* Garbage collect Falcon/PPC support that has not been used in releasedemaste2010-02-124-128/+0
| | | | products, based on discussion with Adaptec.
* Remove extraneous semicolons, no functional changes.mbr2010-01-071-1/+1
| | | | | Submitted by: Marc Balmer <marc@msys.ch> MFC after: 1 week
* - Try pre-allocating all FIBs upfront. Previously we tried pre-allocatingjkim2009-12-083-10/+6
| | | | | | | | | | | 128 FIBs first and allocated more later if necessary. Remove now unused definitions from the header file[1]. - Force sequential bus scanning. It seems parallel scanning is in fact slower and causes more harm than good[1]. Adjust a comment to reflect that. PR: kern/141269 Submitted by: Alexander Sack (asack at niksun dot com)[1] Reviewed by: scottl
* Rename aac_srb32 to aac_srb, to match Adaptec's vendor driver.emaste2009-10-292-4/+4
|
* Rename aac_fast_intr to aac_filter to reflect its current use. Eliminateemaste2009-10-292-12/+8
| | | | | | | the fallback of using the filter as an interrupt handler, as it is no longer needed. Discussed with: scottl, jhb
* Do first controller time sync after 1 minute, as in Adaptec's vendoremaste2009-10-281-1/+1
| | | | driver.
* Whitespace fixup: 8 spaces -> tabemaste2009-10-272-6/+6
|
* Whitespace tweak.emaste2009-09-091-1/+1
| | | | Submitted by: phk, via accidental commit in r196969.
* Increase AAC_CMD_TIMEOUT from 30s to 120s to help avoid spuriousemaste2009-09-091-1/+1
| | | | | | "COMMAND 0x........ TIMEOUT AFTER .. SECONDS" messages. Any commands that get truly stuck will still trigger the warning and the hardware health check, just a little bit later.
* Revert previous commit and add myself to the list of people who shouldphk2009-09-081-1/+1
| | | | know better than to commit with a cat in the area.
* Add necessary include.phk2009-09-081-1/+1
|
* Temporarily revert the new-bus locking for 8.0 release. It will bejhb2009-08-201-4/+4
| | | | | | reintroduced after HEAD is reopened for commits by re@. Approved by: re (kib), attilio
* Make the newbus subsystem Giant free by adding the new newbus sxlock.attilio2009-08-021-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races. Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped. For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens. Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing. Bump __FreeBSD_version in order to reflect the newbus lock introduction. Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith)
* Get correct maxio from the controller and drop the tunable.jkim2009-07-111-15/+5
| | | | | | | | | The default (64K) is too pessimistic for "new comm" hardware. Also, this is bad because multiple controllers get limited by the global tunable. Reviewed by: scottl Approved by: re (kensmith)
* We no longer need to use d_thread_t, migrate to struct thread *.imp2009-05-201-4/+4
|
* SVN rev 188743 modified aac_rx_get_fwstatus to use the AAC_RX_OMR0emaste2009-02-231-2/+4
| | | | | | | | | | | | | register instead of AAC_RX_FWSTATUS, as that is the way it's done in Adaptec's vendor driver and in the Linux drivers. (The same applies to aac_rkt_get_fwstatus as well.) However, a concern has been raised about the compatibility of this change and old hardware / firmware versions. In the absense of specific information, revert to the original behaviour if the firmware does not support the "New comm." interface. Users of old cards or firmware haven't reported the problems that are potentially solved by switching to OMR0.
* Sync with the official Adaptec vendor driver:attilio2009-02-215-119/+189
| | | | | | | | | | | | | | | | | | | | | [1] Add the support for the NARK controller which seems a variant of the i960Rx. [2] Split up memory regions and other resources in 2 different parts as long as NARK uses them separately (it is not clear to me why though as long as there are no more informations available on this controller). Please note that in all the other cases, the regions overlaps leaving the default behaviour for all the other controllers. [3] Implement a clock daemon responsible for maintain updated the wall clock time of the controller (run any 30 minutes)*. Submitted by: Adaptec (driver build 15317 [1, 2] and 15727 [3]) Reviewed by: emaste Tested by: emaste Sponsored by: Sandvine Incorporated * Please note that originally, in the Adaptec driver, the clock daemon is not implemented with callouts as in our in-tree driver.
* Use outbound message register 0 instead of mailbox 7 inemaste2009-02-182-2/+6
| | | | | | | aac_{rx,rkt}_get_fwstatus, as done in Adaptec's vendor driver as well as the Linux drivers. Submitted by: jkim, from Adaptec's driver
* Remove duplicate 2610SA entry.emaste2008-11-271-2/+0
| | | | Submitted by: jkim
* Whitespace cleanup.emaste2008-09-121-5/+5
|
* Add explicit PCI IDs for the following Adaptec RAID Series 2 adapters:emaste2008-06-271-0/+8
| | | | | | | | | | | Adaptec RAID 2045 Adaptec RAID 2405 Adaptec RAID 2445 Adaptec RAID 2805 Without this change these devices are supported by the driver's family support, but they then appear as "Adaptec RAID Controller" in boot messages and the dev.aac.0.%desc sysctl.
* Fix test for waiting AIFs in aac_poll(). This seems to solve theemaste2008-06-241-2/+7
| | | | | | | | problem where Adaptec's arcconf monitoring tool hangs after producing its expected output. Submitted by: Adaptec, via driver ver 15317 MFC after: 1 week
* Allow crashdumps on machines with >4GB of RAM as long as the adapter canemaste2008-04-031-13/+54
| | | | | | | do 64-bit S/G. Submitted by: Alex Bencz Reviewed by: scottl
* Calling RequestSupplementAdapterInfo before RequestAdapterInfo appearsemaste2008-04-011-17/+17
| | | | | | | | | | | | | | | | | | | | | to trip a bug causing the latter to return a zeroed struct aac_adapter_info. This causes two issues. One is cosmetic only -- a verbose boot prints information about the controller, and shows all zero: aac0: Unknown processor 0MHz, 0MB memory (0MB cache, 0MB execution), unknown battery platform The second problem is that the firmware version information is stored away for aac_rev_check, for userland tools (like aaccli) to query via the FSACTL_MINIPORT_REV_CHECK and FSACTL_LNX_MINIPORT_REV_CHECK ioctls. When aaccli encounters this issue it prints Command Error: <The current AFAAPI.DLL is too old to work with the current controller software.> Move the RequestSupplementAdapterInfo call after RequestAdapterInfo, which seems to fix both problems.
* Implement FSACTL_LNX_GET_FEATURES and FSACTL_GET_FEATURES ioctls. RAIDemaste2008-03-281-0/+44
| | | | | | tools (e.g. arcconf) need this to be able to create arrays larger than 2TB. Submitted by: Adaptec, via driver build 15317
* Add \n to the end of a printf string and remove it from panic strings.emaste2008-03-261-6/+6
|
* Add 64-bit array support for RAIDs > 2TB. This corresponds to ~ Adaptecemaste2008-03-254-5/+17
| | | | | | | | | | driver build 15317. Tested on: Adaptec 2230S, Firmware 4.2-0 (8205) ICP ICP5085BL, Firmware 5.2-0 (12814) Submitted by: Adaptec
* Correct data direction flags in aac_bio_command() in theemaste2008-03-251-2/+2
| | | | | | !AAC_FLAGS_RAW_IO && AAC_FLAGS_SG_64BIT case. Submitted by: Adaptec
* Diff reduction to Adaptec's driver (around build 15317): catch up with aemaste2008-03-246-153/+128
| | | | | | | change in debugging routines. The fwprintf macro in the AAC_DEBUG case (mapping to printf) isn't from the Adaptec driver.
* Diff reduction to Adaptec driver build 15317 (refactoring and code shuffling):emaste2008-03-241-187/+206
| | | | | | | | - Resource allocation in aac_alloc (moved from from aac_init) - Interrupt setup in aac_setup_intr (from aac_attach) - Container probing in aac_get_container_info (from aac_startup and aac_handle_aif) - Firmware status check moved to aac_check_firmware from aac_init
* Restore creation of passthrough devices with newer controller firmware byemaste2008-03-201-2/+2
| | | | | | | | | | | putting the correct size in the fib header. Presumably the older firmware silently ignored a bad size field. (This change tested with a 3805 controller. Passthrough devices were created when running firmware build 12814, but not 15323 or later. With this change they're created for both old and new firmware versions.) Submitted by: Adaptec
* Add ioctls FSACTL_SEND_LARGE_FIB, FSACTL_SEND_RAW_SRB,emaste2008-03-201-8/+31
| | | | | | | | FSACTL_LNX_SEND_LARGE_FIB, and FSACTL_LNX_SEND_RAW_SRB, and correct size checks on FIBs passed in from userspace. Both changes were obtained from Adaptec's driver build 15317. Adaptec's commandline RAID tool arcconf uses these ioctls when creating a RAID-10 array (and probably other operations too).
* Change spelling and eliminate a typo in comments to reduce diffs withemaste2008-03-141-11/+11
| | | | | Adaptec's vendor driver. I have some fixes to bring in and this makes ongoing review of the FreeBSD-Adaptec driver diffs easier.
* Avoid holding the aac_io_lock over copyout.emaste2007-12-201-5/+6
| | | | Submitted by: Achim Leubner @ Adaptec.
* Do not recursively acquire aac_io_lock in aac_ioctl_event.emaste2007-12-191-3/+1
| | | | MFC After: 3 days
* Merge from Adaptec a 64 bit fix and a workaround for luns != 0 returningemaste2007-12-071-8/+13
| | | | | CAM_SEL_TIMEOUT on SAS controllers, which prevented passthrough devices from being created.
* Add family support to allow the driver to attach to new devices thatemaste2007-12-073-10/+92
| | | | | | share the same interface. Submitted by: Achim Leubner at Adaptec
* Allow simultaneous opens of the device for issuing commands to theemaste2007-12-072-75/+151
| | | | controller. This is merged from Adaptec driver build 11669.
* Add more PCI ID's from Adaptec's driver, including two requestedemaste2007-12-061-0/+16
| | | | | | | | | | | | | by Daniel Kamm. Adaptec RAID 51245 Adaptec RAID 51645 Adaptec RAID 52445 Adaptec RAID 5405 Sun STK RAID REM Sun STK RAID EM SG-XPCIESAS-R-IN SG-XPCIESAS-R-EX
* Add PCI IDs for additional cards:emaste2007-12-061-0/+12
| | | | | | | | | AOC-USAS-S4i AOC-USAS-S8i AOC-USAS-S4iR AOC-USAS-S8iR AOC-USAS-S8i-LP AOC-USAS-S8iR-LP
* Respell 'Conatainer' as 'Container'.rwatson2007-11-241-11/+11
| | | | | MFC after: 3 days Reported by: Toomas Aas <toomas dot aas at raad dot tartu dot ee>
* Rework aac locking for MPSAFE CAM. This fixes a Giant mutex assertionemaste2007-11-012-19/+22
| | | | | | | | | | | | reported on freebsd-current [1]. Also dequeue all events in aac_release_command (instead of just one) so that there's no risk of them getting stranded. Reported by: Steven Brown [1] Submitted by: scottl@ [1] http://lists.freebsd.org/pipermail/freebsd-current/2007-October/077928.html
* Rename the kthread_xxx (e.g. kthread_create()) callsjulian2007-10-201-2/+2
| | | | | | | | | | | 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.
* Correct calculation of aac_sg_tablesize.emaste2007-10-151-6/+4
| | | | Obtained from: Adaptec, via driver b11669
* Add PCI IDs from Adaptec's driver version b11669:emaste2007-10-141-0/+42
| | | | | | | | | | | | | | | | | | | | | | | Adaptec RAID 3085 Adaptec RAID 31205 Adaptec RAID 31605 Adaptec RAID 5085 Adaptec RAID 51205 Adaptec RAID 51605 Adaptec RAID 5445 Adaptec RAID 5805 IBM ServeRAID 8s ICP RAID ICP5045BL ICP RAID ICP5085BL ICP RAID ICP5085SL ICP RAID ICP5125BR ICP RAID ICP5125SL ICP RAID ICP5165BR ICP RAID ICP5165SL ICP RAID ICP5445SL ICP RAID ICP5805BL ICP RAID ICP5805SL ICP9067MA SATA RAID
* Add PCI IDs for two cards:emaste2007-08-231-0/+4
| | | | | | | | | - Adaptec RAID 3405 - Adaptec RAID 3805 Approved by: re (bmah) Submitted by: John Marra jmarra at nmu dot edu MFC After: 1 week
* Prepare for future integration between CAM and newbus. xpt_bus_registerscottl2007-06-171-1/+1
| | | | | | | 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.
* Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM willscottl2007-04-151-1/+1
| | | | | | | | | | | 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.
OpenPOWER on IntegriCloud