summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* o break newbus api: add a new argument of type driver_filter_t topiso2007-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@
* The return value of aac_alloc_command() was misinterpreted in aac_ioctl_event().luoqi2007-02-141-1/+1
| | | | | | | Once triggered this would leak away all available commands and starve the rest of the driver. Reviewed by: scottl
* Add a missing mutex unlock to an error path.scottl2007-01-151-0/+1
| | | | | Submitted by: Yuxiang Luo PR: 107943
* On amd64 platform, use linux32 headers so 32-bit Linux applicationsdelphij2006-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
* Add MODULE_DEPENDS for cam, pci, mca, eisa and isa where needed.mjacob2006-12-111-0/+2
| | | | | PR: 106543 MFC after: 3 days
* Add PCI Id for ServeRAID 8k.scottl2006-11-031-0/+2
| | | | Submitted by: Danny Braniss
* 2nd and final commit that moves us to CAM_NEW_TRAN_CODEmjacob2006-11-021-7/+0
| | | | | | as the default. Reviewed by multitudes.
* The first of 3 major steps to move the CAM layer forward to usingmjacob2006-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
* Unlock aac_io_lock before returning, thus eliminates a mutexdelphij2006-07-141-0/+1
| | | | | | | | leak. Submitted by: Beyond Luo <fedora ercist iscas ac cn> PR: kern/100046 Reviewed by: scottl
* Correct the names or some Adaptec and ICP devices, verified by thebrueffer2006-06-171-9/+9
| | | | | | | | respective websites. Reviewed by: scottl Approved by: rwatson (mentor) MFC after: 5 days
* Rearrange locking in the alloc_commands and ioctl paths to avoid problems.scottl2006-04-081-5/+9
|
* Initialize the event tailq.scottl2005-12-281-0/+1
| | | | | | Submitted by: Frank Mayhar PR: kern/90882 MFC After: 1 day
* Remove the unused AAC_DRIVER_BUILD_DATE macro.schweikh2005-11-131-49/+48
| | | | | | Nuke whitespace at EOL while I'm here. Approved by: scottl (MAINTAINER)
* Refactor the PCI probe code a bit.scottl2005-11-061-49/+45
|
* Pickup I/O lock in aac_get_bus_info, as this code will callcsjp2005-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
* Fix a regression that prevented PERC3 hardware from working. Apparently theyscottl2005-10-142-29/+47
| | | | | | | | 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
* Fix a missing set of lock operations.scottl2005-10-101-0/+3
| | | | | Submitted by: green PR: 87191
OpenPOWER on IntegriCloud