aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ata/ata-chipset.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix problem on Promise "mio" controllers and 48bit mode caused by last commitSøren Schmidt2005-08-221-0/+9
| | | | Notes: svn path=/head/; revision=149368
* Add support for working around controllers that cannot do DMA in 48bit mode.Søren Schmidt2005-08-171-14/+34
| | | | | | | | The workaround use PIO mode above ~137GB to allow using the disk. Add the Acer chips with rev < 0xc4 as first candidate. Notes: svn path=/head/; revision=149191
* Add support for the Promise PDC4071[89] chips used on fx the Fasttrak TX4300.Søren Schmidt2005-08-121-1/+4
| | | | | | | Docs kindly provided by Promise. Notes: svn path=/head/; revision=148992
* Add support for the ITE IT8211F controller.Søren Schmidt2005-08-051-6/+14
| | | | Notes: svn path=/head/; revision=148731
* Enable SATA hotplug support.Søren Schmidt2005-06-101-0/+4
| | | | | | | Submitted by: Olivier Houchard Notes: svn path=/head/; revision=147230
* Fix the long standing problem with poor transferrates on Intel ICHH typeSøren Schmidt2005-06-091-2/+3
| | | | | | | | | chips. The DMA timing value was set on device 0 for all devices :/ Prodded by: Harald Schmalzbauer Notes: svn path=/head/; revision=147201
* Fix the register offset for the ATAPI count register thats used toSøren Schmidt2005-06-091-2/+2
| | | | | | | | | wrestle the older Promise chips to do 48bit addressing. Spotted by: Martin Birgmeier Notes: svn path=/head/; revision=147187
* Add support for the Intel 31244.Søren Schmidt2005-06-081-81/+254
| | | | | | | | | | Most code by the submitters, hammered upon to get the right ATA fell by me. Submitted by: Olivier Houchard Submitted by: Jia-Shiun Li Notes: svn path=/head/; revision=147139
* Make nVidia SATA hotplug support DTRT.Søren Schmidt2005-06-051-26/+27
| | | | | | | HW sponsored by: Yahoo! Notes: svn path=/head/; revision=147019
* Unbreak the ICH6 AHCI support in !48Bit mode.Søren Schmidt2005-06-051-2/+7
| | | | Notes: svn path=/head/; revision=147012
* Change the way ioctls are issue to ATA.Søren Schmidt2005-05-161-49/+49
| | | | | | | | | The most prominent part is that its now possible to issue ata_requests directly to say acd0, instead of going through the cumbersome /dev/ata device. Notes: svn path=/head/; revision=146266
* Cleanup commentsSøren Schmidt2005-05-131-14/+3
| | | | Notes: svn path=/head/; revision=146178
* Add new Intel PCI ID's for the ICH7 chips (untested).Søren Schmidt2005-05-111-1/+6
| | | | Notes: svn path=/head/; revision=146112
* Add support for AHCI compliant ATA devices.Søren Schmidt2005-05-111-6/+373
| | | | | | | | | For now just support the Intel ICH6 as that the HW at hand. Sponsored by: pair.com Notes: svn path=/head/; revision=146106
* Reshape the dma code to be a bit more flexible so it can cope withSøren Schmidt2005-05-031-122/+91
| | | | | | | | | | new HW that has new and different demands. Fix a few nits in former commit in this cleanup crusade. Sponsored by: pair.com Notes: svn path=/head/; revision=145818
* Update on the last commit, the dma* funciton needs to be called withSøren Schmidt2005-05-011-6/+6
| | | | | | | | a channel device, not an ata device, or we'll be out of luck in reset/timeout where we dont have a device. Notes: svn path=/head/; revision=145769
* Take newbusification one step further, ie use the device_t more consequentlySøren Schmidt2005-04-301-267/+302
| | | | | | | | | | all way through the code down the layers, instead of the mix'n'match that resulted from the conversion done earlier. Sponsored by: pair.com Notes: svn path=/head/; revision=145713
* Rearrange the way the reset code is called.Søren Schmidt2005-04-281-0/+7
| | | | | | | Prepare for different looking controllers. Notes: svn path=/head/; revision=145641
* Only try to allocate and use the SATA resource if they are enabledSøren Schmidt2005-04-251-44/+40
| | | | | | | | by the BIOS. It seems some BIOS's doesn't get this right, and that would result in ATA panic'ing. Notes: svn path=/head/; revision=145498
* Properly hook in devices found by SATA connect events.Søren Schmidt2005-04-201-2/+1
| | | | | | | This broke on the changes done to get atapicam happy earlier. Notes: svn path=/head/; revision=145327
* Add one more Promise SATAII/150 chip id.Søren Schmidt2005-04-171-0/+1
| | | | Notes: svn path=/head/; revision=145191
* Spell ATA_NFORCE4_S2 correctly.Søren Schmidt2005-04-161-1/+1
| | | | Notes: svn path=/head/; revision=145168
* Fix the same silly alloc mistake for nVidia and SiS as with VIA inSøren Schmidt2005-04-111-4/+6
| | | | | | | the previous commit. Notes: svn path=/head/; revision=144915
* Fix the bug that caused SATA disks on VIA etc to fail attach.Søren Schmidt2005-04-111-2/+3
| | | | Notes: svn path=/head/; revision=144914
* Refine the SATA PHY code so the time consumed during probe is reduced.Søren Schmidt2005-04-101-9/+13
| | | | | | | Add the older nVidia nForce2 SATA chip to supported HW. Notes: svn path=/head/; revision=144861
* Add support for the PHY on nVidia, SiS and VIA chipsSøren Schmidt2005-04-081-49/+268
| | | | | | | | | | This code is done blindfolded as I dont have such HW here, so reports of success/failure are most welcome. More SATA PHY cleanups. Notes: svn path=/head/; revision=144808
* Generalise the SATA PHY handling code so it wont be duplicated forSøren Schmidt2005-04-081-134/+128
| | | | | | | | each SATA chip. Promise and Silicon Image are the current candidates for this. Notes: svn path=/head/; revision=144790
* Add support for controllers that doesn't have the usual taskfileSøren Schmidt2005-04-061-18/+19
| | | | | | | layout. No functional changes. Notes: svn path=/head/; revision=144707
* Add firstshot support for Acer Labs Inc SATA partsSøren Schmidt2005-04-051-24/+93
| | | | | | | Update ALi PATA support to handle ATA133 as well Notes: svn path=/head/; revision=144667
* Change the ata_* methods to use a channel device instead of aSøren Schmidt2005-03-311-2/+1
| | | | | | | | controller device. This helps when there is no controller parent to a channel (PPC port). Notes: svn path=/head/; revision=144397
* Correct the PCI ID for the SiS 965, and add support for the SATA partSøren Schmidt2005-03-311-2/+3
| | | | | | | | | that was left our by accident. Prodded by: Patrik Backlund Notes: svn path=/head/; revision=144382
* This is the much rumoured ATA mkIII update that I've been working on.Søren Schmidt2005-03-301-512/+796
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | o ATA is now fully newbus'd and split into modules. This means that on a modern system you just load "atapci and ata" to get the base support, and then one or more of the device subdrivers "atadisk atapicd atapifd atapist ataraid". All can be loaded/unloaded anytime, but for obvious reasons you dont want to unload atadisk when you have mounted filesystems. o The device identify part of the probe has been rewritten to fix the problems with odd devices the old had, and to try to remove so of the long delays some HW could provoke. Also probing is done without the need for interrupts, making earlier probing possible. o SATA devices can be hot inserted/removed and devices will be created/ removed in /dev accordingly. NOTE: only supported on controllers that has this feature: Promise and Silicon Image for now. On other controllers the usual atacontrol detach/attach dance is still needed. o Support for "atomic" composite ATA requests used for RAID. o ATA RAID support has been rewritten and and now supports these metadata formats: "Adaptec HostRAID" "Highpoint V2 RocketRAID" "Highpoint V3 RocketRAID" "Intel MatrixRAID" "Integrated Technology Express" "LSILogic V2 MegaRAID" "LSILogic V3 MegaRAID" "Promise FastTrak" "Silicon Image Medley" "FreeBSD PseudoRAID" o Update the ioctl API to match new RAID levels etc. o Update atacontrol to know about the new RAID levels etc NOTE: you need to recompile atacontrol with the new sys/ata.h, make world will take care of that. NOTE2: that rebuild is done differently from the old system as the rebuild is now done piggybacked on read requests to the array, so atacontrol simply starts a background "dd" to rebuild the array. o The reinit code has been worked over to be much more robust. o The timeout code has been overhauled for races. o Support of new chipsets. o Lots of fixes for bugs found while doing the modulerization and reviewing the old code. Missing or changed features from current ATA: o atapi-cd no longer has support for ATAPI changers. Todays its much cheaper and alot faster to copy those CD images to disk and serve them from there. Besides they dont seem to be made anymore, maybe for that exact reason. o ATA RAID can only read metadata from all the above metadata formats, not write all of them (Promise and Highpoint V2 so far). This means that arrays can be picked up from the BIOS, but they cannot be created from FreeBSD. There is more to it than just the missing write metadata support, those formats are not unique to a given controller like Promise and Highpoint formats, instead they exist for several types, and even worse, some controllers can have different formats and its impossible to tell which one. The outcome is that we cannot reliably create the metadata of those formats and be sure the controller BIOS will understand it. However write support is needed to update/fail/rebuild the arrays properly so it sits fairly high on the TODO list. o So far atapicam is not supported with these changes. When/if this will change is up to the maintainer of atapi-cam so go there for questions. HW donated by: Webveveriet AS HW donated by: Frode Nordahl HW donated by: Yahoo! HW donated by: Sentex Patience by: Vife and my boys (and even the cats) Notes: svn path=/head/; revision=144330
* Further update to the Promise code.Søren Schmidt2005-01-011-39/+70
| | | | | | | Support should now cover all old and current products. Notes: svn path=/head/; revision=139546
* Update the Promise support for combo (SATA+PATA) controllers.Søren Schmidt2004-12-241-1/+6
| | | | Notes: svn path=/head/; revision=139260
* Compensate for off by one bugs in disk firmware for 48BIT addressing cutover.Søren Schmidt2004-12-091-1/+1
| | | | Notes: svn path=/head/; revision=138617
* Update the ICH6 support so all 4 SATA channels can be used.Søren Schmidt2004-12-081-5/+13
| | | | | | | | | | We still use "normal" mode, AHCI mode is in the works still. HW donated by: Sentex HW donated by: Yahoo! Notes: svn path=/head/; revision=138582
* Add support for the ITE IT8212F controller.Søren Schmidt2004-12-081-0/+96
| | | | | | | HW donated by: Yahoo! Notes: svn path=/head/; revision=138555
* Add first shot on support for the new Promise SATAII chips.Søren Schmidt2004-12-081-46/+106
| | | | | | | HW donated by: pil.dk Notes: svn path=/head/; revision=138553
* Add support for the ICH6 in legacy mode.Søren Schmidt2004-10-091-0/+3
| | | | | | | | | The AHCI part is not supported yet, but is in the works. 5.3 RC1 candidate Notes: svn path=/head/; revision=136324
* Fix the PC98 lockups on boot.Søren Schmidt2004-10-061-14/+48
| | | | | | | | The interchannel locking for PC98 needed to be updated to match the rest of the locking in ATA. Notes: svn path=/head/; revision=136198
* Always set half'n'half mode on ICH* chips.Søren Schmidt2004-10-011-0/+1
| | | | Notes: svn path=/head/; revision=136022
* Fix the serverworks modesetting code, of mask offset was wrong.Søren Schmidt2004-10-011-14/+16
| | | | Notes: svn path=/head/; revision=136021
* Reduce the amount of memory reported to busdma.Søren Schmidt2004-09-101-4/+6
| | | | | | | | This made the requirements for bouncebuffers too big with PAE. Cleanup the way size defines for transfers are implemented. Notes: svn path=/head/; revision=135034
* Introduce ata_udelay() that uses tsleep instead of DELAY if possible.Søren Schmidt2004-09-031-4/+4
| | | | | | | | | In places where we have long delays that doesn't depend on too accurate timing, use ata_udelay() instead of DELAY() so we dont uselessly spin the CPU if not nessesary; Notes: svn path=/head/; revision=134698
* Sync promise_mio_command with WIP on the Promise line of SATA controllers.Søren Schmidt2004-09-031-4/+9
| | | | Notes: svn path=/head/; revision=134690
* Cleanup the defines used for various chipsets.Søren Schmidt2004-09-031-14/+15
| | | | | | | Add new nVidia controllers. Notes: svn path=/head/; revision=134687
* Cleanup the storing and printing of the device transfermode for SATA.Søren Schmidt2004-09-011-6/+9
| | | | Notes: svn path=/head/; revision=134601
* Set and reset the right bit for UDMA enable/disable on the ICH* chips.Søren Schmidt2004-08-271-2/+2
| | | | Notes: svn path=/head/; revision=134377
* Sii_reset needs to wait up to 1 second to get slow disks with it soSøren Schmidt2004-08-241-1/+1
| | | | | | | use tsleep instead of DELAY. Notes: svn path=/head/; revision=134265
* Fix Promise sx4/sx4000 support that broke on the latest race fixes.Søren Schmidt2004-08-161-57/+64
| | | | Notes: svn path=/head/; revision=133832