Home | History | Annotate | Download | only in ata
History log of /src/sys/dev/ata/satafisvar.h
RevisionDateAuthorComments
 1.4  07-Oct-2017  jdolecek Merge support for SATA NCQ (Native Command Queueing) from jdolecek-ncq branch

ATA subsystem was changed to support several outstanding commands, and use
NCQ xfers if supported by both the controller and the disk, including NCQ
error recovery. Set NCQ high priority for BPRIO_TIMECRITICAL xfers
if supported. Added FUA support.

Done some work towards MP-safe, all ATA code tsleep()/wakeup() replaced
by condvars, and switched most code from spl* to mutexes (separate
wd(4) and ata channel lock).

Introduced new option WD_CHAOS_MONKEY to facilitate testing of error
handling, fixed several uncovered issues. Also fixed several problems
with kernel dump to wd(4) disk.

Tested with ahcisata(4), mvsata(4), siisata(4), piixide(4) on amd64,
with and without port multiplier, both disk and ATAPI devices; other
drivers and archs mechanically adjusted and compile-tested. NCQ is
supported for ahcisata(4) and siisata(4) for any controller, for
mvsata(4) only Gen IIe ones for now. Also enabled ATAPI support in
mvsata(4).

Thanks to Matt Thomas for initial ATA infrastructure patch, and
Jonathan A.Kollasch for siisata(4) NCQ changes and general testing.

Also fixes PR kern/43169 (wd(4)); and PR kern/11811, PR kern/47041,
PR kern/51979 (kernel dump)
 1.3  07-Apr-2010  jakllsch branches: 1.3.2; 1.3.20; 1.3.50;
satafis:
- Add function to parse RDH FIS for use in implementing AT_READREG.
- Correct and clean up some structure definitions.
- Sprinkle a bit of const.
- Remove dependency on <dev/ic/wdcreg.h>, WDCTL_4BIT doesn't seem
to be specified by any recent ATA standard, and it seems to make
no difference in practice.
- Stop using WDSD_IBM, these bits have been obsolete since before SATA.

siisata:
- Implement AT_READREG.
- Reap now-unneeded <dev/ic/wdcreg.h>.
- Whitespace and slight debug code cleanup.
- Some possibly-uncessary code reordering.

ahcisata:
- Implement AT_READREG.
- Reap now-unneeded <dev/ic/wdcreg.h>.
 1.2  04-Jul-2009  jakllsch branches: 1.2.2; 1.2.4; 1.2.6;
Further corrections for siisata.

Reset ch_status and ch_error at the beginning of any operation.

The chip only writes the RDH FIS to the SRAM when the error bit is
set in a RDH FIS (per the datasheet). Thus, satafis_sdb_parse() is
replaced with satafis_rhd_parse(). A valid FIS type field seems to
not be written to the SRAM, so don't bother checking it for the
correct magic.

Additionally, append 2009 to copyright year set, and remove
obsolete CVS Id lines from when this was in my repository.
 1.1  17-Jun-2009  jakllsch branches: 1.1.2;
ahcisata(4) and siisata(4) use similar SATA FIS functions, share them.
 1.1.2.4  11-Aug-2010  yamt sync with head.
 1.1.2.3  18-Jul-2009  yamt sync with head.
 1.1.2.2  20-Jun-2009  yamt sync with head
 1.1.2.1  17-Jun-2009  yamt file satafisvar.h was added on branch yamt-nfs-mp on 2009-06-20 07:20:20 +0000
 1.2.6.1  30-May-2010  rmind sync with head
 1.2.4.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.2.2.3  28-Sep-2009  snj Pull up following revision(s) (requested by jakllsch in ticket #1023):
sys/dev/ata/satafis_subr.c: revision 1.3
sys/dev/ata/satafisvar.h: revision 1.2
sys/dev/ic/siisata.c: revision 1.7
sys/dev/ic/siisatareg.h: revision 1.4
Further corrections for siisata.
Reset ch_status and ch_error at the beginning of any operation.
The chip only writes the RDH FIS to the SRAM when the error bit is
set in a RDH FIS (per the datasheet). Thus, satafis_sdb_parse() is
replaced with satafis_rhd_parse(). A valid FIS type field seems to
not be written to the SRAM, so don't bother checking it for the
correct magic.
Additionally, append 2009 to copyright year set, and remove
obsolete CVS Id lines from when this was in my repository.
 1.2.2.2  28-Sep-2009  snj Pull up following revision(s) (requested by jakllsch in ticket #1023):
sys/conf/files: revision 1.947
sys/dev/ata/files.ata: revision 1.21
sys/dev/ata/satafis_subr.c: revision 1.1
sys/dev/ata/satafisreg.h: revision 1.1
sys/dev/ata/satafisvar.h: revision 1.1
ahcisata(4) and siisata(4) use similar SATA FIS functions, share them.
 1.2.2.1  04-Jul-2009  snj file satafisvar.h was added on branch netbsd-5 on 2009-09-28 00:13:02 +0000
 1.3.50.1  19-Jul-2017  jdolecek tighen and expand error handling, mostly for NCQ use cases:
- make retry timeout callout per xfer, i.e. retry separately
- zero whole bio struct on retry to avoid more stale state
- add a REQUEUE option, which doesn't bump retry count
- add ata_read_log_ext_ncq() for NCQ recovery
- adjust logic for activating xfers - allow next command only when
it's for same drive, several concurrent are only supported when HBA
and driver support FIS-based switching
- add new ata_timeout() which handles race between callout_stop()
and the invokation, add appropriate handling on deactivate/free paths
- stop using ch_status/ch_error in non-wdc code; later it will be dropped
completely
 1.3.20.1  03-Dec-2017  jdolecek update from HEAD
 1.3.2.3  24-Mar-2014  matt Merge satafis changes from HEAD for ahcisata
 1.3.2.2  21-Apr-2010  matt sync to netbsd-5
 1.3.2.1  07-Apr-2010  matt file satafisvar.h was added on branch matt-nb5-mips64 on 2010-04-21 00:27:34 +0000

RSS XML Feed