Age | Commit message (Collapse) | Author |
|
unmap handling.
|
|
is causing problems when trying to boot sparc64 from an isp(4).
Verified to fix the sparc64/isp(4) regression by krw@; ok deraadt@
|
|
support via the thin provisioning page.
this emul is a bit unreliable since atascsi needs to allocate memory for
the TRIM command to use, but we figure that the world wont end if we lose
a TRIM unlink real io.
ok matthew@
|
|
adapter_buswidth to sc_targets): gdt(4) and atascsi(4) still used it
in other ways.
Apply appropriate fixes; tested on ahci(4).
ok krw@
|
|
saa_luns instead of adapter_buswidth and luns in the prototype link.
ok dlg@, miod@
|
|
device signature so i left it blank, and the identify is the cached copy
in the port structure.
i filled the SAT vendor stuff in as "OpenBSD", "atascsi", osrelease.
|
|
to do WRITE SAME 16 for now (which is all we do).
|
|
use less magic numbers when check the block limits for trim. fill in the
block limits vpd page with some conservative numbers about how much
unmap we can do at a time (~32MB over 64 descriptors).
|
|
into DSM/TRIM commands.
found by tedu
|
|
longer detects his OCZ Vertex 3 after atascsi.c r1.104. For some
reason, the first IDENTIFY command issued silently fails without any
notification. In lieu of a better fix, workaround this for now by
allowing IDENTIFY to be reissued a second time for non-PMP disks.
Discussed with jmatthew@ and dlg@; ok dlg@
|
|
ATA_F_PIO or ATA_F_READ.
ok dlg@
|
|
to have a non-changing function pointer be part of an object rather
than it's virtual method table.
ok dlg@; tested on ahci(4) by Mattieu Baptiste, jasper@, and Jason
Crawford; no sili(4) testers, but identical changes to ahci(4)
|
|
attached devices as in the pre-port-multiplier code. (Devices
attached via port multipliers still get multiple attempts though.)
Also don't bother sleeping after the last iteration if all attempts
failed.
Discussed with dlg@ and Jonathan Matthew; ok dlg@
|
|
ok dlg@
|
|
target of DMA.
ok dlg@ deraadt@ thib@
|
|
ok dlg@
|
|
issues. No actual OKs, but general acknowledgement and 'get it in' from several.
|
|
to issue another command, since sili(4) actually checks. Fix a small
inaccuracy in a comment while I'm there.
ok dlg@
|
|
|
|
than 1 i/o active at once. This reduces the chances that concurrent
i/o's for such devices will confuse the device or the adapter code.
It also eliminates a reason for adapter code to maintain its own
queues.
Tweak all drivers that fake INQUIRY results to set the SID_CmdQue
flag, thus continuing to claim to be able to do tagged i/o.
Positive feedback from matthew@ and marco@ for an earlier version.
ok dlg@
|
|
|
|
ok dlg@ matthew@
|
|
requested by and ok krw@
|
|
default we now only give devices 1 openings unless both the adapter and
device support ncq and a queue depth greater than one.
tested by josh elsasser, who always seems to get hurt when i change the
openings handling in atascsi.
ok krw@
|
|
check that the midlayer is doing the right thing.
ok krw@
|
|
ok krw@ marco@ matthew@
|
|
and update atascsi(4) to make use of it. (Other HBAs will be updated
post-release.) Should allow for use of SATA drives with >2^32 LBAs.
ok deraadt@, dlg@, krw@
|
|
malloc() for now, but mark it is dma reachable, and we will pick it up
on the sweep in a while
ok matthew
|
|
ok dlg@, marco@
|
|
step in elminating 'struct scsi_device' entirely.
Spotted and initial diff from matthew@.
ok matthew@ dlg@ deraadt@ marco@ miod@
|
|
From Matthew Dempsky.
|
|
disks for a few minutes there.
|
|
provisioning bits in read cap 16
|
|
disks on ATI SBx00 care is mysterious but let's keep them working.
Fix tested by Josh Elsasser, submitter of PR#6365. Thanks!
ok dlg@
|
|
SCSI when you're talking to a scsi to ata translation layer (satl). this
implements the ata command ioctl handler in scsi_ioctl.c that wraps the
ata command requests up in these scsi commands and then issues them against
the hardware. this cuts atascsi over to interpreting these scsi commands
rather than the ioctls directly.
this should allow mpi users (with a relatively recent firmware) to use
atactl against their SATA disks. i cant test cos my mpi(4) parts are too
old to either support these scsi commands or too old to take recent
firmwares.
ok marco@ @krw tested by krw@ and me on ahci/atascsi
|
|
and makes the ioctl path more reliable on busy disks by allowing it to
sleep in the runqueue for an io to use.
mk@ did the original diff and figured most of the problems out. ok mk@
|
|
inquiry against the device up to when the port is probed. this has been
bugging me for ages.
|
|
indicates the LBA of the first logical block that is located at the
beginning of a physical block
implemented as best as i can by my understanding of the spec. not tested
yet.
|
|
factoring the processing that the limits vpd page does out.
this will be easier when i get hold of a disk that does provide values in
these ata identify fields.
|
|
|
|
ever seen one, but the spec describes how to do it.
|
|
bigendian archs.
|
|
|
|
pages. this if the first step in figuring out if disks use a different
physical block size compared to the logical block size they present to the
operating system.
|
|
void. Use XS_NO_CCB error in the scsi command (xs) to report the
NO_CCB condition. Eliminates all SUCCESSFULLY_QUEUED and COMPLETE
confusion and untangles the midlayer from the adapter a bit more.
Eyes and some fixes by miod@
There may be some compile issues on little used (i.e. I don't have
any) drivers but the change is mechanical and thus easy to remedy.
ok dlg@
|
|
else cares so it's just noise. Drivers that actually look at ITSDONE
are unchanged.
ok marco@ (for his files) dlg@ beck@
|
|
to swap to use.
this diff doesnt swap fields the identify structure when its fetched, but
adds a function that swaps them and copies them into a destination buffer.
there is no functional change to the existing users of these fields,
specifically the scsi inquiry faker and the device serial vpd page.
this does fix the devid vpd page though. if a disk has a wwn we now present
it correctly.
|
|
turns out you cant send atapi devices the ata IDENTIFY command, they dont
grok it. you have to send a PACKET IDENTIFY instead, which is exactly the
same but with a different command id.
this diff changes it so we send a PACKET IDENTIFY to atapi devices.
my diff "broke" this because it actually checks to see if the IDENTIFY
succeeded rather than just completed. the previous code was wrong with
regard to atapi devices. it is just lucky we dont use the IDENTIFY output
for atapi devs.
my apologies to marco@ and krw@
|
|
we have to exec a command (with ata_exec) before we check if its done with
ata_polled. of course an unstarted command will not be done.
found by and debugged with krw@
ok krw@
|
|
now return void. all state about a command is now represented within
the ata_xfer structure, and all layers using it (both hba and
atascsi) now check only ata_xfer.
this relies on my scsi midlayer changes. it was written just before
the second last backout of the midlayer.
|