Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/siisatareg.h
RevisionDateAuthorComments
 1.12  31-Jul-2021  andvar s/threshhold/threshold
 1.11  08-Feb-2018  dholland branches: 1.11.22;
Typos.
 1.10  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.9  24-Apr-2017  jakllsch Add PR_PS_ACTIVE_SLOT bits.
 1.8  24-Apr-2017  jakllsch Whitespace fixes.
 1.7  02-Nov-2011  jakllsch branches: 1.7.12; 1.7.30; 1.7.34; 1.7.42;
Use appropriate __aligned(value) on already __packed hardware data structures.
 1.6  07-Apr-2010  jakllsch 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.5  19-Jul-2009  kiyohara branches: 1.5.2; 1.5.4;
Support siisata@cardbus.
It tested on amd64 and i386 only.
 1.4  04-Jul-2009  jakllsch 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.3  17-Jun-2009  jakllsch A few changes for siisata(4):

- Support detachment. From KIYOHARA Takashi.
- Add PCI detachment functionality (albeit not very interesting when
the bus can not yet be rescanned).
- Rework interrupt handlers to reduce near-duplicate code.
Borrowed from ahcisata(4).
- Attempt to make polled I/O work. Untested.
- Fix formatting of some messages.
- For always-polled commands, disable interrupt
at slot level rather than port level.
- Instead of busy-waiting indefinitely for completion of some commands
move on after 31 seconds. Use cv_timedwait(9) instead of DELAY(9).
- Use abstracted SATA FIS code.
- Enable use of disks that don't respond with the standard signature.
 1.2  08-Sep-2008  gmcgarry branches: 1.2.4; 1.2.8; 1.2.12; 1.2.14;
Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h
preprocessor macros.
 1.1  23-May-2008  jnemeth branches: 1.1.2; 1.1.4; 1.1.8; 1.1.10;
Import siisata(4) by Jonathan A. Kollasch.

The siisata driver supports the Silicon Image SteelVine family of SATA-II
controllers, interfacing the hardware with the ata(4) and atapi(4) sub-
systems.

The following controllers are supported by the siisata driver:

Silicon Image SiI3124 4-port PCI/PCI-X
Silicon Image SiI3132 2-port PCI-Express x1
Silicon Image SiI3531 1-port PCI-Express x1

SATA Native Command Queueing is not yet supported.
Device hot swapping is not yet supported.
Silicon Image's Software RAID is not yet supported by the
ataraid(4) driver.

Approved by: core (christos), releng (bouyer)
 1.1.10.1  19-Oct-2008  haad Sync with HEAD.
 1.1.8.3  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.1.8.2  23-Jun-2008  wrstuden Add files to branch that were added on -current.

After this, all that's left of update is to merge some changes
that had conflicts.
 1.1.8.1  23-May-2008  wrstuden file siisatareg.h was added on branch wrstuden-revivesa on 2008-06-23 05:02:13 +0000
 1.1.4.2  04-Jun-2008  yamt sync with head
 1.1.4.1  23-May-2008  yamt file siisatareg.h was added on branch yamt-pf42 on 2008-06-04 02:05:10 +0000
 1.1.2.3  28-Sep-2008  mjf Sync with HEAD.
 1.1.2.2  02-Jun-2008  mjf Sync with HEAD.
 1.1.2.1  23-May-2008  mjf file siisatareg.h was added on branch mjf-devfs2 on 2008-06-02 13:23:27 +0000
 1.2.14.1  21-Apr-2010  matt sync to netbsd-5
 1.2.12.6  11-Aug-2010  yamt sync with head.
 1.2.12.5  19-Aug-2009  yamt sync with head.
 1.2.12.4  18-Jul-2009  yamt sync with head.
 1.2.12.3  20-Jun-2009  yamt sync with head
 1.2.12.2  04-May-2009  yamt sync with head.
 1.2.12.1  08-Sep-2008  yamt file siisatareg.h was added on branch yamt-nfs-mp on 2009-05-04 08:12:44 +0000
 1.2.8.1  23-Jul-2009  jym Sync with HEAD.
 1.2.4.2  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.4.1  28-Sep-2009  snj Pull up following revision(s) (requested by jakllsch in ticket #1023):
sys/dev/ic/siisata.c: revision 1.3
sys/dev/ic/siisatareg.h: revision 1.3
sys/dev/ic/siisatavar.h: revision 1.3
sys/dev/pci/files.pci: revision 1.315
sys/dev/pci/siisata_pci.c: revision 1.3
A few changes for siisata(4):
- Support detachment. From KIYOHARA Takashi.
- Add PCI detachment functionality (albeit not very interesting when
the bus can not yet be rescanned).
- Rework interrupt handlers to reduce near-duplicate code.
Borrowed from ahcisata(4).
- Attempt to make polled I/O work. Untested.
- Fix formatting of some messages.
- For always-polled commands, disable interrupt
at slot level rather than port level.
- Instead of busy-waiting indefinitely for completion of some commands
move on after 31 seconds. Use cv_timedwait(9) instead of DELAY(9).
- Use abstracted SATA FIS code.
- Enable use of disks that don't respond with the standard signature.
 1.5.4.1  30-May-2010  rmind sync with head
 1.5.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.7.42.4  29-Jul-2017  jdolecek add macro for getting the slot from context register, just for reference for now
 1.7.42.3  19-Jul-2017  jdolecek header changes for siisata switch to new error handling world order
 1.7.42.2  12-Jun-2017  jakllsch Macro argument parentheses paranoia.
Annotate another register initialism.
 1.7.42.1  24-Apr-2017  jakllsch Merge HEAD.
 1.7.34.1  26-Apr-2017  pgoyette Sync with HEAD
 1.7.30.1  28-Aug-2017  skrll Sync with HEAD
 1.7.12.1  03-Dec-2017  jdolecek update from HEAD
 1.11.22.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed