summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac
Commit message (Collapse)AuthorAgeFilesLines
* Use enums in the aac_command_status_table rather than duplicating the sameemaste2010-04-131-36/+36
| | | | | | values in two places. Suggested by: Garrett Cooper
* Sync some minor items with the upstream driver. Should have no functionalemaste2010-04-134-4/+8
| | | | change.
* Whitespace cleanup, in advance of next sync with Adaptec's driver. Noemaste2010-04-137-102/+102
| | | | functional change.
* Make the code more readable and compiling on 64-bits arch differentattilio2010-03-151-5/+1
| | | | | | | | | than amd64. Sponsored by: Sandvine Incorporated Submitted by: emaste MFC: 2 weeks X-MFC: r205160
* Checkin a facility for specifying a passthrough FIB from userland.attilio2010-03-141-1/+141
| | | | | | | | | | | | | | arcconf tool by Adaptec already seems to use for identifying the Serial Number of the devices. Some simple things (like FIB setup and bound checks) are retrieved from the Adaptec's driver, but this implementation is quite different because it does use the normal buffer dmat area for loading segments and not a special one (like the Adaptec's one does). Sponsored by: Sandvine Incorporated Discussed with: emaste, scottl Reviewed by: emaste, scottl MFC: 2 weeks
* Minor diff reduction with Adaptec's driver: in aac_release_command() setemaste2010-02-232-3/+1
| | | | | cm_queue to AAC_ADAP_NORM_CMD_QUEUE by default. In every place it was set, it was set to AAC_ADAP_NORM_CMD_QUEUE anyhow.
* 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
OpenPOWER on IntegriCloud