summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata
Commit message (Collapse)AuthorAgeFilesLines
* Report ATA/SATA channel number to NewBus at location string.mav2010-05-222-0/+14
|
* Improve suspend/resume support. Make sure controller is idle on suspendmav2010-05-211-4/+15
| | | | and reset it on resume.
* Change ad_firmware_geom_adjust() to operate on a struct disk * only andmarius2010-05-201-3/+3
| | | | | | | | | hook it up to ada(4) also. While at it, rename *ad_firmware_geom_adjust() to *ata_disk_firmware_geom_adjust() etc now that these are no longer limited to ad(4). Reviewed by: mav MFC after: 3 days
* Relocate interrupt sense setting for K2 SATA from the ATA driver to thenwhitehorn2010-05-161-7/+0
| | | | | | | OFW PCI layer and read the sense directly from the device tree instead of guessing. MFC after: 1 week
* Add Target/LUN ID checks.mav2010-04-301-39/+26
|
* Mark ATA channel as idle on timeout in non-ATA_CAM mode.mav2010-04-261-1/+1
| | | | | | This should fix possible duplicate request completion. Submitted by: mjacob
* For early ALI chips do not announce I/O sizes that require unsupportedmav2010-04-141-1/+4
| | | | 48bit DMA commands.
* Include opt_ata.h, as some structures here depending on ATA_CAM option.mav2010-03-311-0/+2
| | | | This fixes ATA_CAM with atamvsata and probably some other drivers.
* Use last 16 bytes of serial number in metadata instead of first ones,mav2010-03-261-2/+16
| | | | | | same as Intel MatrixRAID does. PR: kern/124064
* Mask disk_idx to avoid panic because of extra bits set.mav2010-03-121-6/+8
| | | | | PR: kern/102211 Submitted by: yoichi
* - Add ALI M5228 PATA ID.mav2010-03-012-1/+3
| | | | - Add missed DMA initialization for ALI SATA chips.
* Fix recursive lock attempt on hot-plug event in non-ATA_CAM mode.mav2010-02-231-3/+3
|
* Oops! Wrong word order. :(mav2010-02-221-16/+16
|
* Add Intel PCH SATA controller IDs.mav2010-02-221-0/+16
|
* Improve output for controllers that doesn't report SATA speed.mav2010-02-223-7/+19
|
* Report SATA300 chips also as SATA.mav2010-02-051-1/+2
|
* Implement poll method for atapicam.mav2010-02-031-2/+6
| | | | It is not perfect, but better then nothing.
* Report to CAM unit number of underlying ataX bus device, instead of thismav2010-02-031-1/+1
| | | | atapicamX. It is more apropriate and useful together with "ata" name.
* - Give ATA/SATA SIMs info about ATAPI packet size, supported by device.mav2010-02-022-3/+13
| | | | | - Make ATA XPT to reject longer SCSI CDBs then supported by device, or any SCSI CDBs, if device doesn't support ATAPI.
* NetCell is a PCI hardware RAID without cable and mode setting.mav2010-02-011-1/+11
|
* MFp4: Large set of CAM inprovements.mav2010-01-282-34/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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 one more type cast, missed in r203043.mav2010-01-271-1/+1
|
* Do not place fake interrupt register on chip.mav2010-01-261-26/+7
| | | | Now we have better place for it.
* Restore SATA speed reporting, broken by ATA_CAM changes.mav2010-01-261-1/+18
|
* Clear ch->devices, if hard-reset failed.mav2010-01-261-1/+2
| | | | | | This makes hot-plug work nicely. HW donated by: James R. Van Artsdalen
* Add support for SATA part of Marvell 88SE912x controllers to ahci(4).mav2010-01-263-2/+19
| | | | | | | | | 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.
* Make ata_getrev() an optional method by implementing ata_null_getrev().rpaulo2010-01-201-1/+8
| | | | | | | This fixes a bogus '???' boot message on Cambria boards with a CompactFlash card. Reviewed by: mav
* Report which of IXP700 legacy ATA channels is SATA.mav2010-01-101-2/+23
|
* - Report SATA in legacy emulation mode still as SATA.mav2010-01-101-5/+3
| | | | - Make ATA XPT able to handle such case.
* Remove extraneous semicolons, no functional changes.mbr2010-01-073-7/+7
| | | | | Submitted by: Marc Balmer <marc@msys.ch> MFC after: 1 week
* Add support for Intel SCH PATA controller.mav2009-12-222-2/+40
| | | | PR: kern/140251
* Spell AMD properly.mav2009-12-211-1/+1
|
* Add VIA CX700/VX800 chipsets SATA/PATA support.mav2009-12-202-7/+61
| | | | | PR: kern/121521 Tested by: Alex Deiter
* Fairly set master/slave shared PIO/WDMA timings on ITE 821x controllers.mav2009-12-201-4/+6
| | | | Previous implementation could only limit mode, but not rise it back.
* Serverworks OSB4 has no 0x4a (piomode) register, do not touch it.mav2009-12-171-2/+4
| | | | Also OSB4 has some problems with UDMA transfers, limit it to WDMA2.
* Large I/Os on Promise controllers reported to cause UDMA ICRC errors andmav2009-12-161-0/+1
| | | | | | | subsequent timeouts. Restore previous limit for now, at least until I will have hardware to experiment. PR: kern/141438
* Set ATA_CHECKS_CABLE when appropriate.marius2009-12-141-1/+17
| | | | | Reviewed by: mav MFC after: 1 week
* Only set ATA_CHECKS_CABLE for chip versions that actually supportmarius2009-12-131-1/+2
| | | | | | | cable detection, i.e. neither for ALI_OLD nor for ALI_NEW revisions >= 0xc7. MFC after: 1 week
* Properly support M5229 revision 0xc7 and 0xc8:marius2009-12-131-5/+8
| | | | | | | | | | - These revisions no longer have cable detection capability. - The UDMA support bit of register 0x4b has been dropped without an replacement. - According to Linux it's crucial for working ATAPI DMA support to also set the reserved bit 1 of regsiter 0x53 with these revisions. MFC after: 1 week
* Specify the capability and media bits of the capabilities page inmarius2009-12-132-28/+34
| | | | | | | | | | | | native, i.e. big-endian, format and convert as appropriate like we also do with the multibyte fields of the other pages. This fixes the output of acd_describe() to match reality on big-endian machines without breaking it on little-endian ones. While at it, also convert the remaining multibyte fields of the pages read although they are currently unused for consistency and in order to prevent possible similar bugs in the future. MFC after: 1 week
* Unbreak the ata_atapi() usage. Since r200171 the mode setting functionsmarius2009-12-133-7/+6
| | | | | | | | get a ata_device type device passed instead of a ata_channel one, thus ata_atapi() has to be adjusted accordingly. Reviewed by: mav MFC after: 3 days
* CFA support doesn't exclude FLUSH support.mav2009-12-111-2/+2
| | | | Submitted by: Grzegorz Bernacki
* Add module dependency for cam if configured as ATA_CAM.takawata2009-12-101-0/+3
|
* Limit maximum I/O size, depending on command set supported by device.mav2009-12-101-0/+4
| | | | | It is required to suppot non-LBA48 devices with MAXPHYS above 128K. Same is done in ada(4).
* MFp4:mav2009-12-0635-1111/+1469
| | | | | | | | | | | | | | | | | | Introduce ATA_CAM kernel option, turning ata(4) controller drivers into cam(4) interface modules. When enabled, this options deprecates all ata(4) peripheral drivers (ad, acd, ...) and interfaces and allows cam(4) drivers (ada, cd, ...) and interfaces to be natively used instead. As side effect of this, ata(4) mode setting code was completely rewritten to make controller API more strict and permit above change. While doing this, SATA revision was separated from PATA mode. It allows DMA-incapable SATA devices to operate and makes hw.ata.atapi_dma tunable work again. Also allow ata(4) controller drivers (except some specific or broken ones) to handle larger data transfers. Previous constraint of 64K was artificial and is not really required by PCI ATA BM specification or hardware. Submitted by: nwitehorn (powerpc part)
* Do not ignore device interrupt if bus mastering is still active. It ismav2009-12-051-2/+1
| | | | | | | | | | | normal in case of media read error and some ATAPI cases, when transfer size is unknown beforehand. PCI ATA BM specification tells that in case of such underrun driver should just manually stop DMA engine. DMA engine should same time guarantie that all bus mastering transfers completed at the moment of driver reads interrupt flag asserted. This change should fix interrupt storms and command timeouts in many cases. PR: kern/103602, sparc64/121539, kern/133122, kern/139654
* On Soft Reset, read device signature from FIS receive area, instead ofmav2009-12-051-3/+5
| | | | | | PxSIG register. It works better for NVidia chipsets. ahci(4) does the same. PR: kern/140472, i386/138668
* Drop USB mass storage devices support from ata(4). It is out of the build asmav2009-11-262-1130/+0
| | | | | | | | long as I remember, and completely superseded by better maintained umass(4). It's main idea was to optionally avoid CAM dependency for such devices, but with move ATA to CAM, it is not actual any more. No objections: hselasky@, thompsa@, arch@
* Use only lower byte of sectors_intr IDENTIFY word as sector count.mav2009-11-241-1/+1
| | | | | This fixes SET_MULTI error during boot on devices supporting less then 16 sectors per interrupt.
* Release over-agressive WDMA0 mode timings as close to spec as chip can.mav2009-11-221-1/+1
|
OpenPOWER on IntegriCloud