summaryrefslogtreecommitdiffstats
path: root/sys/dev/ahci
Commit message (Collapse)AuthorAgeFilesLines
* Add some more IDs of HighPoint RocketRAID 64x.mav2011-03-061-0/+2
|
* Restore DH89xxCC/Patsburg chip IDs accentally dropped at r218596.mav2011-02-121-0/+4
|
* Disable NCQ for multiport Marvell 88SX61XX SATA controllers. Simultaneousmav2011-02-121-10/+13
| | | | | | | | | active I/O to several disks (copying large file on ZFS) causes timeout after just a few seconds of run. Single port 88SX6111 seems like not affected. Skip reading transferred bytes count for these controllers. It works for 88SX6111, but 88SX6145 always returns zero there. Haven't tested others, but better to be safe.
* Support for the new Patsburg PCH chipset:jfv2011-02-011-1/+4
| | | | | | | | | | | - SMBus Controller - SATA Controller - HD Audio Controller - Watchdog Controller Thanks to Seth Heasley (seth.heasley@intel.com) for providing us code. MFC after 3 days
* Support for the new DH89xxCC PCH chipset including:jfv2011-01-311-0/+1
| | | | | | - SATA controller - Watchdog timer - SMBus controller
* Add IDs for HighPoint RocketRAID 64x controllers.mav2011-01-101-0/+2
| | | | | | | | | | | | These controllers consist of two Marvell 88SE9128 6Gbps SATA chips and PLX PCIe bridge. As result, they seem to be agree to work with ahci(4) as usual HBAs. The only noticed issue is that RAID BIOS disables all drive caches during boot, though `camcontrol cmd ...` is able to fix that. Those who wants RAID functionality can still use closed proprietary driver from HighPoint site. MFC after: 1 week
* Add IDs of HighPoint RocketRAID 62x cards (Marvell 88SE9128 chips).mav2010-12-081-0/+4
| | | | | | PR: kern/152926 Submitted by: Mike Tancsa <mike@sentex.net> MFC after: 1 week
* Fix small typo.mav2010-11-221-1/+1
| | | | Submitted by: Artem Belevich
* Teach ahci(4), siis(4) and ATA_CAM ata(4) wrapper report to CAM residualmav2010-11-081-8/+22
| | | | I/O length on underruns, that often happens for some SCSI commands.
* Add missing mtx_destroy() on channel attach failure.mav2010-10-251-0/+1
|
* Fix panic, when due to some kind of congestion on FIS-based switchingmav2010-09-161-5/+8
| | | | | | | port multiplier some command triggers false positive timeout, but then completes normally. MFC after: 2 weeks
* MFata(4):mav2010-08-281-8/+10
| | | | | Add Intel Cougar Point PCH SATA Controller DeviceIDs. Correct some existing entries for Intel Ibex Peak (5 Series/3400 Series) PCH SATA controllers.
* Export PCI IDs of ATA/SATA controllers through CAM and ata(4) layers tomav2010-07-251-2/+7
| | | | | GEOM. This information needed for proper soft-RAID's on-disk metadata reading and writing.
* Disable NCQ and PMP support for VIA VT8251 AHCI. It was reported to bemav2010-06-081-2/+2
| | | | unreliable under load. Linux does the same.
* Plug memory leak to silent Coverity. Error is still not really handled.mav2010-06-051-0/+1
| | | | | Found with: Coverity Prevent(tm) CID: 4130
* Fix attach errors handling.mav2010-06-051-3/+5
| | | | | Found with: Coverity Prevent(tm) CID: 3424
* Fill rman range start/end values. It makes devinfo output more readable.mav2010-05-221-0/+2
|
* Report ATA/SATA channel number to NewBus at location string.mav2010-05-221-0/+12
|
* Improve suspend/resume support. Make sure controller is idle on suspendmav2010-05-211-20/+49
| | | | and reset it on resume.
* Enable PCI busmastering explicitly to be sure.mav2010-05-021-0/+1
|
* Make SATA XPT negotiate and enable some additional SATA features, such as:mav2010-05-022-70/+97
| | | | | | | - device initiated power management (some devices support only this way); - Automatic Partial to Slumber Transition (more power saving); - DMA auto-activation (expected to slightly improve performance). More features could be added later, when hardware supports.
* Add Target/LUN ID checks and deny access to targets 1-14 when PMP absent.mav2010-04-301-39/+30
| | | | Enforce PMA bit clearing when PMP detached to avoid further scan timeouts.
* Revert r206755. It causes some laptops to stop booting.rpaulo2010-04-191-1/+0
|
* Add another ICH7M chipset that works.rpaulo2010-04-171-0/+1
| | | | MFC after: 1 week
* - Spec tells that CCC interrupt is edge triggered. Acknowledge it as such.mav2010-03-211-2/+19
| | | | - Do not try to enable CCC if it is not supported.
* MFp4:mav2010-02-142-15/+75
| | | | | | With FBS enabled, we have no idea what command caused timeout. Implement same logic as in siis(4) - wait for other commands complete or timeout and then give some more time.
* Disable PHY of unconnected ports when interface power management enabled.mav2010-02-031-1/+6
| | | | It allows to save a bit more power (about 0.5W on 2 unused ports of ICH8M).
* - Give ATA/SATA SIMs info about ATAPI packet size, supported by device.mav2010-02-022-0/+5
| | | | | - Make ATA XPT to reject longer SCSI CDBs then supported by device, or any SCSI CDBs, if device doesn't support ATAPI.
* Reset port on disconnect event, to abort any running requests.mav2010-01-291-8/+6
|
* Add FIS-based switching support. If controller supports FBS, it allowsmav2010-01-282-53/+212
| | | | | several devices beyond Port Multiplier to work simultaneously, substantially increasing performance.
* MFp4: Large set of CAM inprovements.mav2010-01-282-16/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Unify bus reset/probe sequence. Whenever bus attached at boot or later, CAM will automatically reset and scan it. It allows to remove duplicate code from many drivers. - Any bus, attached before CAM completed it's boot-time initialization, will equally join to the process, delaying boot if needed. - New kern.cam.boot_delay loader tunable should help controllers that are still unable to register their buses in time (such as slow USB/ PCCard/ CardBus devices), by adding one more event to wait on boot. - To allow synchronization between different CAM levels, concept of requests priorities was extended. Priorities now split between several "run levels". Device can be freezed at specified level, allowing higher priority requests to pass. For example, no payload requests allowed, until PMP driver enable port. ATA XPT negotiate transfer parameters, periph driver configure caching and so on. - Frozen requests are no more counted by request allocation scheduler. It fixes deadlocks, when frozen low priority payload requests occupying slots, required by higher levels to manage theit execution. - Two last changes were holding proper ATA reinitialization and error recovery implementation. Now it is done: SATA controllers and Port Multipliers now implement automatic hot-plug and should correctly recover from timeouts and bus resets. - Improve SCSI error recovery for devices on buses without automatic sense reporting, such as ATAPI or USB. For example, it allows CAM to wait, while CD drive loads disk, instead of immediately return error status. - Decapitalize diagnostic messages and make them more readable and sensible. - Teach PMP driver to limit maximum speed on fan-out ports. - Make boot wait for PMP scan completes, and make rescan more reliable. - Fix pass driver, to return CCB to user level in case of error. - Increase number of retries in cd driver, as device may return several UAs.
* Add support for SATA part of Marvell 88SE912x controllers to ahci(4).mav2010-01-261-130/+143
| | | | | | | | | Limit early revisions from 6Gb/s to 3Gb/s by default, or they negotiate only 1.5Gbps, when 3Gb/s devices connected. Add dummy driver for PATA part of these controllers, preventing generic driver attach them. It causes system freeze when SATA controller used after PATA was touched.
* While AHCI specification tells that multi-vector MSI doesn't use global ISmav2010-01-101-0/+12
| | | | | | | register, nVidia chipsets have different oppinion, requiring every interrupt to be acknowledged there. While there, add interrupt descriptions in multi-vector MSI mode.
* Avoid false positive probe on ICH6 chipsets.mav2009-12-251-2/+2
|
* Clear all ports interrupt status bits in single write. Clearing one by onemav2009-12-211-8/+6
| | | | | | causes additional MSIs messages sent if several ports asked for attention same time. Time window before clearing is not important, as these interrupts are level triggered by interrupt source.
* Add Asynchronous Notification support for controllers without SNTFmav2009-12-061-3/+12
| | | | | capability by snooping SDB FIS receive area. It should be even faster then regular way, but less reliable.
* MFp4:mav2009-11-262-19/+22
| | | | Improve ATA mode/SATA revision control.
* MFp4:mav2009-11-242-27/+74
| | | | | | | | | | | | - Extend XPT-SIM transfer settings control API. Now it allows to report to SATA SIM number of tags supported by each device, implement ATA mode and SATA revision negotiation for both SATA and PATA SIMs. - Make ahci(4) and siis(4) to use submitted maximum tag number, when scheduling requests. It allows to support NCQ on devices with lower tags count then controller supports. - Make PMP driver to report attached devices connection speeds. - Implement ATA mode negotiation between user settings, device and controller capabilities.
* Do not attach JMicrons with single PCI function. They are not working asmav2009-11-231-0/+4
| | | | | AHCI for some reason, even when declaring so. Let atajmicron configure them for us and provide PATA support.
* Change the way in which AHCI+PATA combined controllers, such as JMicronmav2009-11-162-16/+109
| | | | | | | | | | | | | | and Marvell handled. Instead of trying to attach two different drivers to single device, wrapping each call, make one of them (atajmicron, atamarvell) attach do device solely, but create child device for AHCI driver, passing it all required resources. It is quite easy, as none of resources are shared, except IRQ. As result, it: - makes drivers operation more independent and straitforward, - allows to use new ahci(4) driver with such devices, adding support for new features, such as PMP and NCQ, same time keeping legacy PATA support, - will allow to just drop old ataahci driver, when it's time come.
* MFp4:mav2009-11-141-2/+6
| | | | Check SNCQ HBA capability bit when reporting NCQ support to CAM.
* MFp4:mav2009-11-111-1/+2
| | | | | | | | | | - Move tagged queueing control from ADA to ATA XPT. It allows to control device command queue length correctly. First step to support < 32 tags. - Limit queue for non-tagged devices by 2 slots for ahci(4) and siis(4). - Implement quirk matching for ATA devices. - Move xpt_schedule_dev_sendq() from header to source file. - Move delayed queue shrinking to the more expected place - element freeing. - Remove some SCSIsms in ATA.
* MFp4:mav2009-11-111-12/+143
| | | | Add set of chip IDs, known to support AHCI.
* MFp4:mav2009-11-032-7/+35
| | | | | | | - Handle timeouts and fatal errors with port hard-reset. The rest of recovery will be done by XPT on receiving async event. More gracefull per-device soft-reset recovery can be implemented later. - Add workaround for ATI SB600/SB700 PMP probe related bug, to speedup boot.
* Revert interrupt reason check order back.mav2009-10-231-6/+6
| | | | ATAPI errors may set IF bit together with TFE.
* MFp4:mav2009-10-211-1/+1
| | | | | Report real max_target = 15. SIM doesn't need to know that target 15 is PMP. It is XPT business.
* MFp4:mav2009-10-212-37/+79
| | | | | | | | | | | On error, freeze device queue, to allow periph driver to do proper recovery. Freeze SIM queue only in some cases, when it is needed to protect SIM. Implement better command timeout detection logic for non-queued commands. This fixes false positives when command with short timeout waiting for the long one. For example, when hald tastes CD during burning process. Read and clear SERR register on interrupt.
* On command timeout handle frozen command first, to not run it insidemav2009-10-071-3/+4
| | | | | | XXX_end_transaction(). Submitted by: avg
* To save small bit of CPU time, hide part of SNTF register read latencymav2009-09-061-9/+7
| | | | behind other reads.
* Round maxio for ATI SB600 to 64K.mav2009-09-031-1/+1
| | | | Submitted by: scottl@
OpenPOWER on IntegriCloud