summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-dma.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Third round of updates to the ATA driver.sos2003-04-071-8/+0
| | | | | | More DMA cleanups, including fix for breakage on older Promise controllers. Add more ways of getting to the ATA registers.
* Second round of updates to the ATA driver.sos2003-03-291-116/+72
| | | | | | | | | | | | Clean up the DMA interface too much unneeded stuff crept in with the busdma code back when. Modify the ATA_IN* / ATA_OUT* macros so that resource and offset are gotten from a table. That allows for new chipsets that doesn't nessesarily have things ordered the good old way. This also removes the need for the wierd PC98 resource functions. Tested on: i386, PC98, Alpha, Sparc64
* First round off updates/fixes to the ATA driver.sos2003-02-201-1560/+56
| | | | | | | | | | | | This moves all chipset specific code to a new file 'ata-chipset.c'. Extensive use of tables and pointers to avoid having the same switch on chipset type in several places, and to allow substituting various functions for different HW arch needs. Added PIO mode setup and all DMA modes. Support for all known SiS chipsets. Thanks to Christoph Kukulies for sponsoring a nice ASUS P4S8X SiS648 based board for this work! Tested on: i386, PC98, alpha and sparc64
* Small change to the previous commit, zero out the 48BIT flag in ata_commandsos2003-01-191-10/+9
| | | | instead of in dmadone.
* Add support for the ServerWorks CSB6.sos2003-01-191-1/+6
| | | | The support for the 3'rd channel is only experimental.
* Fix the 48bit access support for the older Promise 66/100 controllers, thesos2003-01-191-16/+21
| | | | | | first attempt was wrong and could cause r/w timeouts. Add yet another Promise PCI id.
* Fix typosos2003-01-091-1/+1
| | | | PR: 45375
* Add support for the nVidia nForce2 ATA part.sos2003-01-081-9/+21
| | | | | Fix support for the nForce1 as well, registers are offset 0x10 against the AMD/VIA parts.
* Add code that works around the problem that the older Promisesos2003-01-081-11/+31
| | | | controllers (ultra/fasttrak-66/100) fails on 48bit accesses.
* Add support for the PC98 platform to the ATA driver.sos2002-12-031-0/+142
| | | | | | | | | | | | | | | | This mostly consists of functionality to serialize accesses to the two ATA channels (which can also be used to "fix" certain PCI based controllers). Add support for Acard controllers. Enable the ATA driver in PC98 GENERIC, and add device hints. Update man page with latest support. The PC98 core team has kindly provided me with a PC98 machine that made this all possible, thanks to all that contributed to that effort, without that this would probably newer have been possible.. Approved by: re@
* Add yet another Promise PCI id.sos2002-10-011-0/+1
|
* Remove unused #includes: <sys/disk.h> <sys/devicestat.h> and <sys/sysctl.h>phk2002-09-201-2/+0
| | | | | Sponsored by: DARPA & NAI Labs. Approved by: sos
* Add support for the VIA 8235.sos2002-09-181-2/+3
| | | | Submitted by: Jason Dambrosio <jason@wiz.cx>
* remove #includes of <sys/bio.h> where not needed.phk2002-09-141-1/+0
|
* Add preliminary mostly untested support for the Silicon Image Sil680 chip.sos2002-09-121-0/+82
|
* Add PCI ID for the ICH4 ATA100 controller.jhb2002-07-191-0/+1
| | | | Sponsored by: The Weather Channel
* Add yet another (older) Promise chipsos2002-06-191-2/+4
|
* Move the new byte order function prototypes from <sys/param.h> tomike2002-04-261-0/+1
| | | | <sys/endian.h>. This puts us in line with NetBSD and OpenBSD.
* Fix the breakage of tagged queueing that the busdma integrationsos2002-04-181-22/+24
| | | | | introduced. Since its now only possible to have one DMA control block at a time, we move the setup to dmastart instead.
* Add support for the nVIDIA nForce ATA controller.sos2002-04-161-58/+46
| | | | | Collapse the VIA/AMD/nVIDIA support code into one, they are created more or less equal anyway..
* Add yet another chip ID for a Promise TX2 chip.sos2002-04-111-0/+1
|
* Add yet another ATA133 Promise chip.sos2002-04-071-0/+1
|
* Make the ATA driver compile & work on the sparc64 platform.sos2002-04-051-214/+388
| | | | | | | Initial work & code by tmm. Lots of changes and rearrangements by yours truely to make busdma be a little less a PITA (but I still dont like it).
* Correct the Northbridge test on the new ATA133 VIA'ssos2002-04-021-13/+13
| | | | Misc cosmetics now I'm there.
* ATA100 is allowed on the HPT chips rev >= 3sos2002-03-311-1/+1
|
* Add AMD 768 support.sos2002-03-241-0/+1
|
* Add support for the ServerWorks CSB5 chipssos2002-03-181-0/+43
|
* Even more Highpoint RAID support.sos2002-03-081-40/+53
| | | | Fix the 80pin cable detection system.
* Misc little cleanups:sos2002-03-051-1/+0
| | | | | | | Link if only ATAPI device in kernel config Remove unused #includes Rearrange a bit in ata-raid to make diff against -stable smaller Enable wc as default again, dunne how this happend...
* Major update of the ATA RAID code, part 3:sos2002-03-031-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add code to properly detach/attach disks that are part of a RAID. Mark a disk that is attached on an ATA channel belonging to a RAID as a spare disk that can be used for rebuilding failed RAID1's. Add support for rebuilding failed RAID1's. Several fixes to the detach/attach code. For replacing a disk in a failed RAID1 do the following: Find the controller channel# of the failed disk. Exec 'atacontrol detach <channel#>' to free the disk from the system. Replace the failed disk with a new one of at least the same size. If your have your disks in drawers/enclosures this can be done with the system still running. Exec 'atacontrol attach <channel#>' to add the disk to the system and mark it as a valid spare for rebuild. Exec 'atacontrol rebuild <array#>' The system will rebuild the array on the fly, the array can still be used during this, although with slower performance. Please let me know of any problems with this! Sponsored by: Advanis Inc. MFC after: 2 weeks
* Add support for the Highpoint HPT372 based cards (rocketraid 133).sos2002-02-181-12/+19
| | | | HW Sponsored by: Mike Tancsa
* Add support for the Cenatek Rocket Drive.sos2002-02-121-2/+11
|
* Add support for the HighPoint HPT374 4 channel ATA chip.sos2002-02-111-1/+20
| | | | Sponsored by: Isilon Systems.
* Major update of the ATA RAID code, part 1:sos2002-02-041-326/+322
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Overhaul of the attach/detach code and structures, there were some nasty bugs in the old implementation. This made it possible to collapse the ATA/ATAPI device control structures into one generic structure. A note here, the kernel is NOT ready for detach of active devices, it fails all over in random places, but for inactive devices it works. However for ATA RAID this works, since the RAID abstration layer insulates the buggy^H^H^H^H^H^Hfragile device subsystem from the physical disks. Proberly detect the RAID's from the BIOS, and mark critical RAID1 arrays as such, but continue if there is enough of the mirror left to do so. Properly fail arrays on a live system. For RAID0 that means return EIO, and for RAID1 it means continue on the still working part of the mirror if possible, else return EIO. If the state changes, log this to the console. Allow for Promise & Highpoint controllers/arrays to coexist on the same machine. It is not possible to distribute arrays over different makes of controllers though. If Promise SuperSwap enclosures are used, signal disk state on the status LED on the front. Misc fixes that I had lying around for various minor bugs. Sponsored by: Advanis Inc.
* Add support for the Promise TX4.sos2002-01-281-62/+88
| | | | | Rearrange the support for the VIA chips, and add experimental support for ATA133 on the newest chips.
* Add support for even more SiS chipsets.sos2001-12-251-81/+51
| | | | Misc cosmetics.
* Fix comment for the SiS 645 chipset to be 645 instead of 635.jhb2001-12-191-1/+1
|
* Adjust the timings for the SiS chips a bit, also add the SiS 645.sos2001-12-141-8/+9
| | | | Cosmetics on the Acer chips (print right modes)
* Initial support for the newer SiS chipsets, based on docs we finallysos2001-12-021-11/+94
| | | | | | | got from SiS. This should also close PR 32421 which has patches which seem to set the timing registers wrongly according to SiS...
* Add yet another VIA ATA100 southbridge.sos2001-11-131-0/+1
|
* Add a bunch of new PCI ID's for Intel ATA chips.sos2001-10-231-0/+4
|
* Add experimental support for the HighPoint HPT372 ATA133 controller.sos2001-10-231-3/+34
| | | | | Based on docs kindly provided by HighPoint which we thank for the close cooperation with the FreeBSD project!.
* Add experimental support for the Promise ATA133 controller.sos2001-10-231-4/+6
| | | | | | | | This might need additional code for hotswapping use, but first I need to get my hands on actual hw... Based on docs kindly provided by Promise Inc which we thank for the close cooperation with the FreeBSD project!.
* Update with latest ATA/ATAPI ver 6 rev 2 items.sos2001-10-061-58/+58
|
* Doh! committed from the wrong tree, this is the right "stuff"...sos2001-10-031-1/+1
|
* Proberly support the Promise TX2/4.sos2001-10-031-6/+40
| | | | Programming info kindly provided by Daniela Engert <dani@ngrt.de>
* Overhaul to minimize stack usage, in some places >2K was usedsos2001-09-201-1/+1
| | | | on the stack *blush*...
* Update the Promise TX2 code to DTRT and not what I guessed earlier.sos2001-08-281-2/+4
| | | | | | Allow tagged queing on the Promise TX2 as it seems to work. Cudos to promise for making the most simple to program ATA chip.
* Add support for yet another VIA '686 combination.sos2001-08-281-1/+2
|
* Finally commit some of the minor things I've collected over the last month(s):sos2001-08-211-23/+21
| | | | | | | | | | | | | | | | | | | | Add tagged queueing support for new IBM drives. Add support for Yet Another Promise ATA 100 chip. Flush disk cache on close. Dont flush the disk cache on BIO_ORDERED anymore. Cleanup the tests for DMA on ATAPI devices. Allow to share ALL irq's even the std irg 14 & 15. Fix calculation bug in end of media code on CD's. Add REZERO on opening a CDR/CDRW. Cleanup ataioctl a bit.
OpenPOWER on IntegriCloud