summaryrefslogtreecommitdiff
path: root/sys/dev/ata
AgeCommit message (Collapse)Author
2006-08-27Oops, this is not ready yet.christos
2006-08-27Add missing initializerchristos
2006-08-01If there's any wd quirks in use, display them.lukem
2006-06-24Add yet another broken 160GB seagate drive. Mine. ST3160021A.gendalia
2006-06-05Adjust quirk entry for seagate drives. Should fix kern/33637 by Shigeyabouyer
Suzuki.
2006-05-18Add yet another broken 160Gb seagate drive. I though we had found all ofbouyer
them ... reported by Damian Lubosch on current-users.
2006-05-14integrate kauth.elad
2006-04-05Backing out previous commit for more review.cherry
2006-04-04Sleeps hard disk just before system shutdown.cherry
Some hardware (eg: Apple iBooks) don't do this automatically and the harddisk behaves as if the power plug were pulled. Closes PR: kern/32766
2006-03-29Use device_cfdata().thorpej
2006-03-28Use device_unit().thorpej
2006-03-25Use device_parent().thorpej
2006-03-01merge yamt-uio_vmspace branch.yamt
- use vmspace rather than proc or lwp where appropriate. the latter is more natural to specify an address space. (and less likely to be abused for random purposes.) - fix a swdmover race.
2006-02-20Use device_is_active() rather than testing dv_flags for DVF_ACTIVEthorpej
directly.
2006-02-16Change "inline" back to "__inline" in .h files -- C99 is still tooperry
new, and some apps compile things in C89 mode. C89 keywords stay. As per core@.
2006-01-22For an IDENTIFY we have to wait for DRQ after issuing the command.bouyer
2006-01-15cast 16bit atap_capacity to u_int64_t before << 16. (assigned toabs
a u_int64_t variable). Fixes 1 to 2 TB disks in qemu. Tested with 1200GB and to a lesser extent 2047GB sparse files. For reference an empty FFS1 filesystem on a 1200GB sparse file uses 19GB of disk.
2006-01-07remove B_EINTR as it isn't used anymore.yamt
2006-01-04- add simple functions to allocate/free a buffer for i/o.yamt
- make bufpool static.
2005-12-26- add ioctls to set/get disk bufq strategy.yamt
- implement them for some drivers.
2005-12-24Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.perry
2005-12-11merge ktrace-lwp.christos
2005-11-01Rework the funny "user_strat: No ioctl" error messages - the functionsmartin
have not been called user_strat for quite some time and the message is confusing if you do not know the code.
2005-10-15- change the way to specify a bufq strategy. (by string rather than by number)yamt
- rather than embedding bufq_state in driver softc, have a pointer to the former. - move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c. - rename method to strategy for consistency. - move some definitions which don't need to be exposed to the rest of kernel from sys/bufq.h to sys/bufq_impl.h. (is it better to move it to kern/ or somewhere?) - fix some obvious breakage in dev/qbus/ts.c. (not tested)
2005-09-05Fix typo in comment from previous revision.riz
2005-09-05Use a pmatch(9) expression which should catch all present and futurebouyer
seagate drives larger than 200GB for the WD_QUIRK_FORCE_LBA48 quirks. Based on infos from http://www.seagate.com/support/kb/disc/howto/interpret_model.html
2005-09-05Add quirk for ST3200826A. From rudolf (netbsd at eq.cz) on tech-kern.bouyer
2005-08-29wd->atabus->ata_bio() should handle the multi-sector PIO transfers just fine,bouyer
and in a better way than what is done in wddump() (which also does it for DMA transfers, limiting the dump speed significantly). So remove code splitting transfers in wd->sc_multi chunks from wddump(), and call wd->atabus->ata_bio() with the whole transfers. Problem reported by Frank Kardel, and patch tested by him.
2005-08-26ST3300831A also needs WD_QUIRK_FORCE_LBA48.briggs
2005-08-25kill a number of autoconf submatch functions which follow thedrochner
standard scheme: if (<configured> != <wildcard> && <configured> != <real>) then fail else ask device match function This is handled by config_stdsubmatch() now.
2005-08-25Add a comment explaining why we have WD_QUIRK_FORCE_LBA48, instead of alwaysbouyer
using LBA48 for sector 0xffffff.
2005-08-25replace the "locdesc_t" structure carrying the number of locatorsdrochner
explicitely by a plain integer array the length in now known to all relevant parties, so this avoids duplication of information, and we can allocate that thing in drivers without hacks
2005-07-25remove unused (hopefully:-) softc fields for disk geometrydrochner
2005-07-18Update array of software RAID names in ata_raid.c.briggs
Change a boundary check to ensure that we won't accidentally read and use uninitialized memory if ATA_RAID_TYPE_MAX is updated without updating the array. Update comment near ATA_RAID_TYPE_MAX to note that the array in ata_raid.c should be updated if a new ATA_RAID_TYPE_* is added.
2005-07-07tighten the autoconf constraints by passing the atapi/ata/ata_hl attributedrochner
to config_found() (after some cleanup we might be able to kill SCSIPI_BUSTYPE_*)
2005-07-06- When starting an ATA or ATAPI transfer, handle the case where (*dma_init)()thorpej
returns EINVAL, indicating that DMA cannot be done for this transfer. Fall back to PIO in this case. - Add a geodeide_dma_init() routine that checks to make sure that transfers start on a 16 byte boundary, returning EINVAL if not. Works around a chip bug that causes a hard system hang. Problem reported and patch tested by Erik Fair.
2005-07-02Force LBA48 access to ST3160827AS drives. Without this change the entiredsainty
system hangs whenever a read or write request to sector 0xfffffff occurs. The hang appears to happen when: status = bus_space_read_1(wdr->cmd_iot, wdr->cmd_iohs[wd_status], 0); is executed in __wdcwait(), and it is not possible to enter the debugger or make the system respond at all after this point. Whilst not necessarily the most prudent solution to handling the large number of drives that exhibit this problem, it is currently the popular workaround. [An alternative approach is to just always drop to LBA48 if the request happens to pass by sector 0xfffffff and the drive reported as larger than 0xfffffff sectors. My understanding is that the 32 bit addressing below 0x10000000 is purely there as a performance booster, not to resolve a compatibility issue.]
2005-06-20Basic support for RAID0 and RAID1 for the Adaptec HostRAID format as foundbriggs
on the Intel 6300ESB on-board RAID. Adapted from FreeBSD.
2005-06-19The ST3160023A* also need the LBA48 quirk. From Timo Schoeler.bouyer
2005-06-16Use pmatch() metacharacters to match both SATA and PATA versions of seagatebouyer
drives in the quirk table.
2005-06-16Added LBA48 quirk for Seagate ST3200822AS. Tested by Teemu Rinta-aho.martti
2005-06-07Fix typos.peter
2005-05-29- remove casts [to avoid volatile]christos
- sprinkle const - avoid shadowed variables
2005-05-20Close a window where (disks) interrupts could be enabled while thebouyer
ATACH_TH_RUN flag is still set. Should fix panic reported by Jukka Salmi on netbsd-users@.
2005-05-16Add a ata_queue_idle() function, which freeze a queue and tsleep() until thebouyer
controller is idle. Change the powerhook function to call ata_queue_idle() on standby/suspend, and ata_reset_channel() on resume (to wake up the disks and start from a clean state). Fix PR kern/30194 by Lubomir Sedlacik.
2005-05-16Add another broken seagate device to the quirk list.bouyer
Problem reported by rudolf <netbsd at eq.cz> on netbsd-help@
2005-04-12add definition for "security freeze"drochner
2005-04-11Fix mode printing. (don't panic on unmatched devices)matt
2005-03-31introduce a function to drain bufq and use it where appropriate.yamt
2005-03-04Disestablish powerhook while detaching atabus.tacha