summaryrefslogtreecommitdiff
path: root/sys/dev/ata
AgeCommit message (Collapse)Author
2007-03-13we need a resid tooDavid Gwynne
2007-03-13add timeouts on ata_xfersDavid Gwynne
2007-03-12ata counts sectors from 1, scsi counts from 0. adjust the value in theDavid Gwynne
read capacity completion to compensate.
2007-03-12parse the ata_identify to get a more correct value for the capacity of theDavid Gwynne
disk.
2007-03-12finish teh ata_identify struct.David Gwynne
2007-03-07Set ITSDONE otherwise the SCSI layer will sleep forever waiting for ourChristopher Pascoe
queued commands to be done.
2007-03-06big changes to the completion path in ahci.cDavid Gwynne
- add a ccb_done member to the ahci_ccb, which points to a function that is used to complete the current xfer - ccbs no longer rely on an ata_xfer being provided for submission to work - ahci is stupid and has no way to telling you the difference between an empty command slot, and a completed command. we keep track of active commands with ap_active in ahci_port, so we dont try and complete commands we havent actually submitted - ahci_start simple submits a command to the hardware now - provide the start of an interrupt handler for each port (which is not yet called by the controllers interrupt handler) - provide an ahci_poll which is built on top of ahci_start and ahci_port_intr - remove the fake ata_xfers from the softreset path - on completion of an ahci command, sync the relevant dma memory - provide a completion path for ata_xfers which syncs the xfers buffer and calls the xfers completion handler in atascsi.c: - start defining the contents of the response to an ATA IDENTIFY command specific to SATA - implement the faking of scsi inquiries, so now you'll actually see a disk attach to ahci. - start implementing a fake scsi read capacity. it presents a fake geometry though, so dont get too excited when ahci magically makes your disk have a terabyte in size. lots of discussion, help, tweaks, and an ok from pascoe@
2007-02-28when allocating an xfer, preinit several values according to the port itsDavid Gwynne
destined for. add ata_exec, which will push the xfer on the right path.
2007-02-28stash a pointer to the atascsi instance in ata_port structs. the completionDavid Gwynne
routine will take a pointer to ata_xfer, not a void *. add some states and flags for the xfers, and some values for the hba to return when processing them.
2007-02-28we allocate an array of pointers, so we should bzero an array of pointers,David Gwynne
not an array of ints.
2007-02-19precomp -> features as per ATA specJonathan Gray
ok dlg@
2007-02-19i think ata_xfers should look more like this. stash the number of the portDavid Gwynne
in the ata_port struct so a hba can find its own info for that port.
2007-02-19actually init and destroy the shared ata stuff when an atascsi instanceDavid Gwynne
is created or destroyed.
2007-02-19code to set up a global pool for allocating ata_xfers out of, and forDavid Gwynne
accessing that pool.
2007-02-19oops, i should have tried to compile the REQUEST_SENSE handling beforeDavid Gwynne
committing it.
2007-02-19REQUEST_SENSE will say there is no sense data.David Gwynne
2007-02-19implement the start of the framework for scsi emulation of ata disksDavid Gwynne
2007-02-19as is short for atascsi, not abDavid Gwynne
2007-02-19pull in atascsi, a scsi to ata translation layer, so i can work on it inDavid Gwynne
tree. ive lost two large changes today thanks to my own stupidity which could have been avoided if they were in the tree. discussed with deraadt@ ok jsg@ grange@ an older version was ok marco@
2007-02-15Don't print the error strings returned by readdisklabel(). If youKenneth R Westerback
need the debug info uncomment the printf's you need. Crude but effective way to suppress 'no disklabel' errors that pop up at the most innconvenient times to frighten users. More elegant method, DPRINTF-like constructs or something, later. "Yay!" marco@ ok deraadt@
2007-02-14Consistently spell FALLTHROUGH to appease lint.Jonathan Gray
ok kettenis@ cloder@ tom@ henning@
2007-02-06De-register. No object code change.Kenneth R Westerback
From Bret Lambert.
2006-12-21'immediatly' -> 'immediately' in comments.Kenneth R Westerback
2006-10-17For non-CPU_BIOS architectures calculate the number of cylinders onKenneth R Westerback
a disk rather than accepting the cylinder count provided by the disk or controller. This cylinder count will be '16383' for any disk >8.4G according to the ATA spec. CPU_BIOS on i386/amd64 has magic to deal with this, but other archs do not need to be restricted by the needs of PC BIOS. Fixes the default MBR OpenBSD partition size and disklabel on non-CPU_BIOS archtitectures. No change to behaviour on i386/amd64 machines. Noted by Stuart Henderson on his Thecus. Testing by various, including 'old i386 machines' nick@ ok tom@ pedro@ weingart@ deraadt@
2006-10-04Zap bad144 bad sector info in disklabels. Sparsely used if at all forKenneth R Westerback
a few obsolete and easily replaced disk models. And didn't work anyway according to Bob, who has tried. ok beck@
2006-08-21Delete #ifdef/#ifndef __OpenBSD__ chunks, leaving just the code weKenneth R Westerback
use. Easier to read and eliminates a potentially confusing unused call to wdgetdisklabel(). No change to object files. ok brad@ dlg@ grange@ deraadt@ marco@
2006-08-12Setting d_secsize to DEV_BSIZE (or 1 << DEV_BSHIFT, or 512) and thenKenneth R Westerback
setting RAW_PART's p_size to d_secperunit * (d_secsize / DEV_BSIZE) is a waste of a few ops. And p_size should be in sectors anyway. Just set RAW_PART's p_size to d_secperunit to make usage consistant across the tree. Should be a no-op.
2006-03-05Remove more NRND NetBSDisms.Kenneth R Westerback
ok marco@
2006-01-21Invoke disk_detach() and related cleanup work in detach(), rather thanMiod Vallat
zeroref() - just to be on the safe side, should we mess up our ref count.
2005-11-09Don't fall back to fake geometry if ata_get_params() fails.Uwe Stuehler
"looks sane" grange@; tested by niall@ krw@ jmc@ jolan@
2005-09-01On zaurus, don't fall back to fake geometry if ata_get_params() fails,Uwe Stuehler
which can happen if the integrated microdrive's DRQ is not clear. This fixes the drive geometry in the default disklabel. Help from weingart@ and grange@; "mention `grange and i will fix this better after 3.8 or we will be flailed'" deraadt@
2005-08-27Use the ATA security FREEZE LOCK command on disks beforeJonathan Gray
they are presented to the rest of the system to stop a password being set that could deny access to the disk. ok grange@ deraadt@
2005-08-10Mention if the disk supports IDLE IMMEDIATE with UNLOAD FEATUREJonathan Gray
when listing information about it. ok grange@
2005-05-15Use FLUSHCACHE EXT instead of FLUSHCACHE for LBA48 operations.Alexander Yurchenko
First noticed by christos@netbsd (iirc) a long time ago. Tested by canacar@ and krw@.
2004-10-17Native SATA register definitions; from NetBSD (work by thorpej@)Alexander Yurchenko
2004-09-24Add missing Manuel Bouyer copyright.Alexander Yurchenko
2004-09-24Multiple inclusion protection.Alexander Yurchenko
2004-07-06Replace magic number with a more descriptive #define. This magic number wasAaron Campbell
particularly vile because it looks like a typo (i.e., looks like one "f" is missing), but it's really not. I happened to notice this myself, but the fix is inspired by NetBSD in the interest of keeping the code similar. deraadt@ ok
2004-06-02Add quirks field to the wdc softc and implement the first one:Alexander Yurchenko
WDC_QUIRK_NOSHORTDMA which disables DMA for the one-sector transfers. Use this quirk for the Geode SC1100 IDE to fix hanging during fdisk reported in PR 3729. Thanks to Alexandre Belloni <abelloni@nerim.net> for testing. ok costa@
2004-03-03remove bufq support until i figure out just what's going wrong. ok deraadt@Ted Unangst
2004-02-15new arg to disk_unbusy, to record separate read/write statistics.Ted Unangst
looked at by various, testing henning@ mcbride@ dan weeks mostly from netbsd via Pedro Martelletto <pbastos@rdc.puc-rio.br>
2004-02-02as grange pointed out, BUFQ_ALLOC might failTed Unangst
2004-01-23Use %b to display status register, this will make bug reports moreAlexander Yurchenko
informative. Also convert WDCS_BITS string to caps.
2004-01-21dynamic bufq support. basically a nullop. ok grange@Ted Unangst
2004-01-16Do not print CHS info for LBA drives, it's useless for drives withAlexander Yurchenko
capacity > 8GB. Total number of cylinders is enough. ok deraadt@
2004-01-15ansi and some spaces; no f/cAlexander Yurchenko
2003-11-17Various cleanups, knf, better debug messages.Alexander Yurchenko
2003-11-17Don't wait for DRQ after issuing IDENTIFY command; instead check for DRQAlexander Yurchenko
asserted after BSY is cleared in data read codepath. Solves delays in probe. The first version of this diff was done by costa@ a long time ago but had some issues. This one is a partial sync with NetBSD. ok costa@
2003-10-21typos from Tom Cosgrove;Jason McIntyre
2003-10-17Merge an old fix from NetBSD:Alexander Yurchenko
- do not stop/unload current DMA operation if an IRQ was not detected by DMA engine unless the force flag was given, fixes DMA problems in shared IRQ setups; - ack interrupt before entering DMA codepath Tested by many. Work by niklas@ but he doesn't want to commit it for some reason.