summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-all.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix linking problem when atadisk is not use in ata-all.csos2002-12-061-0/+2
| | | | | | Add dummy intr_func and lock_func to ata-card.c Dont call ad_print if the driver decided there is no disk.
* Add support for the PC98 platform to the ATA driver.sos2002-12-031-17/+53
| | | | | | | | | | | | | | | | 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@
* In ata_reinit, when ata_getparam fails for a new device (indicating thatthomas2002-12-011-4/+5
| | | | | | | | | | | the device is not actually present), clear the corresponding bit in the ch->devices bitmap. This resolves a panic that occurred with ATAPI/CAM after an APM suspend/resume, when the ATA hardware would erroneously report an extra ATAPI device. Approved by: re, sos Reviewed by: roberto MFC after: 7 days
* Use [u]intmax_t and %j instead of long long and %ll to better fix warningsjhb2002-11-071-2/+3
| | | | | | I fixed earlier. Requested by: mux, jake
* Use some long long casts to quiet warnings in debug printf's on alpha.jhb2002-11-061-1/+1
|
* Fill in missing parts of the ATAPI/CAM XPT: implement XPT_RESET_BUSthomas2002-10-221-12/+4
| | | | | | | | | | | | | | and XPT_RESET_DEV. In order to properly handle reset requests whether they originate in the ATA layer (atacontrol reinit) or from the CAM layer (camcontrol reset) ata_reinit does not cause the SIM to be deallocated anymore. The SIM is now unconditionnally created for each ATAPI bus. This change may cause existing bus ids to change on some setups. Reviewed by: roberto Approved by: sos
* Misc cleanups.sos2002-10-011-1/+1
| | | | Pointed out by: phk/flexelint
* Rearrange where to get the ATAPI magic sequence.sos2002-09-121-6/+8
| | | | Submitted by: Benjamin Close <cisbjc@cs.unisa.edu.au>
* Add the ability to use ATAPI devices via CAM.sos2002-08-091-10/+34
| | | | | | | | | | The CAM<>ATAPI layer was submitted by "Thomas Quinot <thomas@cuivre.fr.eu.org>" changes form the version on the net by me (formatting, ability to be used alone without the ATAPI native device driver, proper speed reporting...) See /sys/conf/NOTES for usage. Submitted by: Thomas Quinot <thomas@cuivre.fr.eu.org>
* Byteswap the serial #sos2002-07-311-0/+3
|
* Update the tags handling a bit, which makes support for thesos2002-07-221-34/+15
| | | | | older IBM DTTA series of drives possible. Update error handling a bit now we are here.
* Fix a '<<' that should have been a '>>' in the 48bit case.sos2002-06-081-1/+1
| | | | | Fortunately we only have had 32bit block counts until recently, and no 2TB disks :)
* Fix the FreeBSD native ATA RAID code a bit.sos2002-04-101-1/+1
|
* Unlock the channel again if an ata_reinit() fails.sos2002-04-051-1/+3
|
* Dont allow to detach twice.sos2002-04-051-1/+2
|
* Add forgotten ATA_UNLOCK_CH when getting status from non-existingsos2002-04-051-1/+3
| | | | enclosure.
* Make the ATA driver compile & work on the sparc64 platform.sos2002-04-051-1/+2
| | | | | | | 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).
* Add get-status to the ATA RAID subsystem.sos2002-04-021-0/+3
|
* Remove debug output in last commit.sos2002-03-301-10/+0
|
* Add support for getting status (fan, temp, 5V and 12V levels) fromsos2002-03-301-9/+152
| | | | | | Promise Superswap enclosures. Sponsored by: Advanis
* Add support for creating/deleting ATA RAID's.sos2002-03-271-4/+10
| | | | | | | | | | | | | | This completes the ATA RAID support, since all functions to manipulate the RAID are accessible from FreeBSD, the BIOS on the ATA RAID cards are only nessesary for booting. I decided to allow for creation of ATA RAID's on any ATA controller, but please keep in mind the restrictions on that. Due to the BIOS not knowing what to do you can only boot from a RAID1 or the first disk in a SPAN, if its not located on a "real" ATA RAID controller like the Promise or Highpoint controllers. Sponsored by: Advanis
* Misc little cleanups.sos2002-03-261-11/+7
|
* Add some break's after default: in the end of switch statements topeter2002-03-191-0/+2
| | | | | | | | keep gcc-3.1+ happy: ata-all.c:410: warning: deprecated use of label at end of compound statement ata-all.c:587: warning: deprecated use of label at end of compound statement ata-raid.c:99: warning: deprecated use of label at end of compound statement ata-raid.c:151: warning: deprecated use of label at end of compound statement
* Unbreak the probing of some CDROM drives.sos2002-03-141-3/+3
|
* Add new support for locking an ATA channel and use that throughoutsos2002-03-111-24/+22
| | | | | | the ATA/ATAPI driver. This solves the concurrency problem with the new GEOM code, and also cuts a good deal of the patch size in the upcoming MFC.
* Silence a warning when compile without atapi devices.sos2002-03-101-3/+4
|
* Even more Highpoint RAID support.sos2002-03-081-1/+1
| | | | Fix the 80pin cable detection system.
* cosmeticssos2002-03-081-1/+1
|
* Minor cosmetic changes to minimise diffs for MFC.sos2002-03-071-9/+1
|
* Misc little cleanups:sos2002-03-051-2/+2
| | | | | | | 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-43/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix buglets in the ATAPI resume code.sos2002-02-121-8/+16
| | | | | This also fixes an old bug where some ATAPI devices went into funny mode on an 'atacontrol reinit' command.
* Major update of the ATA RAID code, part 2:sos2002-02-121-12/+1
| | | | | | | | More cleanups of the RAID1 failure mode code. Add functionality that writes the changed RAID config setup back to the disks (in controller BIOS specific format), so that a reboot will make the BIOS pick up the changed config.
* Make LINT compile after fruitless attempts to get the authorsjulian2002-02-061-1/+1
| | | | | | | | | to fix their code. ata stuff: Change name of ar_attach to not colide with existing ar_attach in if_ar.c. usb stuff: Create a dummy function to satisfy a call to it when in DEBUG mode.
* Major update of the ATA RAID code, part 1:sos2002-02-041-512/+553
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix yet another fake slave problem for PCCARD devices.sos2001-12-251-6/+11
|
* Do be so anal on detach, properly free interrupt even if no devices.sos2001-12-141-1/+1
|
* Fix bogon, free() the right memory type.sos2001-11-131-1/+1
|
* Update with latest ATA/ATAPI ver 6 rev 2 items.sos2001-10-061-97/+82
|
* Hopefully fix the identify failed on ATAPI slaves on some notebooks.sos2001-10-031-2/+7
|
* Overhaul to minimize stack usage, in some places >2K was usedsos2001-09-201-8/+12
| | | | on the stack *blush*...
* KSE Milestone 2julian2001-09-121-1/+1
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* Make "atapi less" kernels link again.sos2001-09-011-0/+2
| | | | | Question is if we should allow the ioctl only interface to be created if atapi devices are present, but no driver linked in....
* Add support for sending ATAPI commands via ioctl.sos2001-08-301-0/+41
|
* Finally commit some of the minor things I've collected over the last month(s):sos2001-08-211-13/+10
| | | | | | | | | | | | | | | | | | | | 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.
* - Remove asleep(), await(), and M_ASLEEP.jhb2001-08-101-2/+1
| | | | | | | | | - Callers of asleep() and await() have been converted to calling tsleep(). The only caller outside of M_ASLEEP was the ata driver, which called both asleep() and await() with spl-raised, so there was no need for the asleep() and await() pair. M_ASLEEP was unused. Reviewed by: jasone, peter
* Update to use the changed ioctl interface.sos2001-05-171-45/+42
|
* Add new flag ATPR_F_QUIET to atapi_request.sos2001-04-051-2/+2
| | | | Cleanup error handling.
* Send the remains (such as I have located) of "block major numbers" tophk2001-03-261-1/+0
| | | | the bit-bucket.
* Do not change/get mode on a nonexisting device.sos2001-03-211-6/+10
|
OpenPOWER on IntegriCloud