aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/aac
Commit message (Collapse)AuthorAgeFilesLines
* We no longer need to use d_thread_t, migrate to struct thread *.Warner Losh2009-05-201-4/+4
| | | | Notes: svn path=/head/; revision=192450
* SVN rev 188743 modified aac_rx_get_fwstatus to use the AAC_RX_OMR0Ed Maste2009-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. Notes: svn path=/head/; revision=188940
* Sync with the official Adaptec vendor driver:Attilio Rao2009-02-215-118/+188
| | | | | | | | | | | | | | | | | | | | | | | | [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. Notes: svn path=/head/; revision=188896
* Use outbound message register 0 instead of mailbox 7 inEd Maste2009-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 Notes: svn path=/head/; revision=188743
* Remove duplicate 2610SA entry.Ed Maste2008-11-271-2/+0
| | | | | | | Submitted by: jkim Notes: svn path=/head/; revision=185376
* Whitespace cleanup.Ed Maste2008-09-121-5/+5
| | | | Notes: svn path=/head/; revision=182967
* Add explicit PCI IDs for the following Adaptec RAID Series 2 adapters:Ed Maste2008-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. Notes: svn path=/head/; revision=180072
* Fix test for waiting AIFs in aac_poll(). This seems to solve theEd Maste2008-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 Notes: svn path=/head/; revision=179969
* Allow crashdumps on machines with >4GB of RAM as long as the adapter canEd Maste2008-04-031-13/+54
| | | | | | | | | | do 64-bit S/G. Submitted by: Alex Bencz Reviewed by: scottl Notes: svn path=/head/; revision=177899
* Calling RequestSupplementAdapterInfo before RequestAdapterInfo appearsEd Maste2008-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. Notes: svn path=/head/; revision=177845
* Implement FSACTL_LNX_GET_FEATURES and FSACTL_GET_FEATURES ioctls. RAIDEd Maste2008-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 Notes: svn path=/head/; revision=177695
* Add \n to the end of a printf string and remove it from panic strings.Ed Maste2008-03-261-6/+6
| | | | Notes: svn path=/head/; revision=177635
* Add 64-bit array support for RAIDs > 2TB. This corresponds to ~ AdaptecEd Maste2008-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 Notes: svn path=/head/; revision=177619
* Correct data direction flags in aac_bio_command() in theEd Maste2008-03-251-2/+2
| | | | | | | | | !AAC_FLAGS_RAW_IO && AAC_FLAGS_SG_64BIT case. Submitted by: Adaptec Notes: svn path=/head/; revision=177611
* Diff reduction to Adaptec's driver (around build 15317): catch up with aEd Maste2008-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. Notes: svn path=/head/; revision=177567
* Diff reduction to Adaptec driver build 15317 (refactoring and code shuffling):Ed Maste2008-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 Notes: svn path=/head/; revision=177557
* Restore creation of passthrough devices with newer controller firmware byEd Maste2008-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 Notes: svn path=/head/; revision=177463
* Add ioctls FSACTL_SEND_LARGE_FIB, FSACTL_SEND_RAW_SRB,Ed Maste2008-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). Notes: svn path=/head/; revision=177462
* Change spelling and eliminate a typo in comments to reduce diffs withEd Maste2008-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. Notes: svn path=/head/; revision=177184
* Avoid holding the aac_io_lock over copyout.Ed Maste2007-12-201-5/+6
| | | | | | | Submitted by: Achim Leubner @ Adaptec. Notes: svn path=/head/; revision=174819
* Do not recursively acquire aac_io_lock in aac_ioctl_event.Ed Maste2007-12-191-3/+1
| | | | | | | MFC After: 3 days Notes: svn path=/head/; revision=174774
* Merge from Adaptec a 64 bit fix and a workaround for luns != 0 returningEd Maste2007-12-071-8/+13
| | | | | | | | CAM_SEL_TIMEOUT on SAS controllers, which prevented passthrough devices from being created. Notes: svn path=/head/; revision=174417
* Add family support to allow the driver to attach to new devices thatEd Maste2007-12-073-10/+92
| | | | | | | | | share the same interface. Submitted by: Achim Leubner at Adaptec Notes: svn path=/head/; revision=174412
* Allow simultaneous opens of the device for issuing commands to theEd Maste2007-12-072-73/+149
| | | | | | | controller. This is merged from Adaptec driver build 11669. Notes: svn path=/head/; revision=174385
* Add more PCI ID's from Adaptec's driver, including two requestedEd Maste2007-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 Notes: svn path=/head/; revision=174368
* Add PCI IDs for additional cards:Ed Maste2007-12-061-0/+12
| | | | | | | | | | | | AOC-USAS-S4i AOC-USAS-S8i AOC-USAS-S4iR AOC-USAS-S8iR AOC-USAS-S8i-LP AOC-USAS-S8iR-LP Notes: svn path=/head/; revision=174325
* Respell 'Conatainer' as 'Container'.Robert Watson2007-11-241-11/+11
| | | | | | | | MFC after: 3 days Reported by: Toomas Aas <toomas dot aas at raad dot tartu dot ee> Notes: svn path=/head/; revision=173883
* Rework aac locking for MPSAFE CAM. This fixes a Giant mutex assertionEd Maste2007-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 Notes: svn path=/head/; revision=173264
* Rename the kthread_xxx (e.g. kthread_create()) callsJulian Elischer2007-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. Notes: svn path=/head/; revision=172836
* Correct calculation of aac_sg_tablesize.Ed Maste2007-10-151-6/+4
| | | | | | | Obtained from: Adaptec, via driver b11669 Notes: svn path=/head/; revision=172672
* Add PCI IDs from Adaptec's driver version b11669:Ed Maste2007-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 Notes: svn path=/head/; revision=172653
* Add PCI IDs for two cards:Ed Maste2007-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 Notes: svn path=/head/; revision=171940
* Prepare for future integration between CAM and newbus. xpt_bus_registerScott Long2007-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. Notes: svn path=/head/; revision=170872
* Remove Giant from CAM. Drivers (SIMs) now register a mutex that CAM willScott Long2007-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. Notes: svn path=/head/; revision=168752
* o break newbus api: add a new argument of type driver_filter_t toPaolo Pisati2007-02-232-6/+8
| | | | | | | | | | | | | | | | 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@ Notes: svn path=/head/; revision=166901
* The return value of aac_alloc_command() was misinterpreted in aac_ioctl_event().Luoqi Chen2007-02-141-1/+1
| | | | | | | | | | Once triggered this would leak away all available commands and starve the rest of the driver. Reviewed by: scottl Notes: svn path=/head/; revision=166704
* Add a missing mutex unlock to an error path.Scott Long2007-01-151-0/+1
| | | | | | | | Submitted by: Yuxiang Luo PR: 107943 Notes: svn path=/head/; revision=166025
* On amd64 platform, use linux32 headers so 32-bit Linux applicationsXin LI2006-12-201-0/+5
| | | | | | | | | | | | | | would be able to work with aac(4). This approach is used by some other drivers as well. However, we need a more generic way to do this in order to avoid having to special case headers in individual drivers for each platform. Obtained from: Adaptec (version b11518) Approved by: scottl Notes: svn path=/head/; revision=165393
* Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed.Matt Jacob2006-12-111-0/+2
| | | | | | | | PR: 106543 MFC after: 3 days Notes: svn path=/head/; revision=165102
* Add PCI Id for ServeRAID 8k.Scott Long2006-11-031-0/+2
| | | | | | | Submitted by: Danny Braniss Notes: svn path=/head/; revision=163930
* 2nd and final commit that moves us to CAM_NEW_TRAN_CODEMatt Jacob2006-11-021-7/+0
| | | | | | | | | as the default. Reviewed by multitudes. Notes: svn path=/head/; revision=163896
* The first of 3 major steps to move the CAM layer forward to usingMatt Jacob2006-10-311-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | the CAM_NEW_TRAN_CODE that has been in the tree for some years now. This first step consists solely of adding to or correcting CAM_NEW_TRAN_CODE pieces in the kernel source tree such that a both a GENERIC (at least on i386) and a LINT build with CAM_NEW_TRAN_CODE as an option will compile correctly and run (at least with some the h/w I have). After a short settle time, the other pieces (making CAM_NEW_TRAN_CODE the default and updating libcam and camcontrol) will be brought in. This will be an incompatible change in that the size of structures related to XPT_PATH_INQ and XPT_{GET,SET}_TRAN_SETTINGS change in both size and content. However, basic system operation and basic system utilities work well enough with this change. Reviewed by: freebsd-scsi and specific stakeholders Notes: svn path=/head/; revision=163816
* Unlock aac_io_lock before returning, thus eliminates a mutexXin LI2006-07-141-0/+1
| | | | | | | | | | | leak. Submitted by: Beyond Luo <fedora ercist iscas ac cn> PR: kern/100046 Reviewed by: scottl Notes: svn path=/head/; revision=160344
* Correct the names or some Adaptec and ICP devices, verified by theChristian Brueffer2006-06-171-9/+9
| | | | | | | | | | | respective websites. Reviewed by: scottl Approved by: rwatson (mentor) MFC after: 5 days Notes: svn path=/head/; revision=159702
* Rearrange locking in the alloc_commands and ioctl paths to avoid problems.Scott Long2006-04-081-5/+9
| | | | Notes: svn path=/head/; revision=157587
* Initialize the event tailq.Scott Long2005-12-281-0/+1
| | | | | | | | | Submitted by: Frank Mayhar PR: kern/90882 MFC After: 1 day Notes: svn path=/head/; revision=153810
* Remove the unused AAC_DRIVER_BUILD_DATE macro.Jens Schweikhardt2005-11-131-49/+48
| | | | | | | | | Nuke whitespace at EOL while I'm here. Approved by: scottl (MAINTAINER) Notes: svn path=/head/; revision=152388
* Refactor the PCI probe code a bit.Scott Long2005-11-061-49/+45
| | | | Notes: svn path=/head/; revision=152144
* Pickup I/O lock in aac_get_bus_info, as this code will callChristian S.J. Peron2005-10-311-0/+6
| | | | | | | | | | | aac_alloc_sync_fib(). aac_alloc_sync_fib() will assert that the I/O locks are held. This fixes a panic on system boot up when the aac(4) device's bus_generic_attach() routine is called. Reviewed by: scottl Notes: svn path=/head/; revision=151893
* Fix a regression that prevented PERC3 hardware from working. Apparently theyScott Long2005-10-142-27/+45
| | | | | | | | | | | do not support the GETINFO immediate command, unlike just about every other variant of the hardware. Also document some magic values and fix some minor nearby whitespace. MFC After: 3 days Notes: svn path=/head/; revision=151330