History log of /src/sys/dev/ic/ahcisatareg.h |
Revision | | Date | Author | Comments |
1.17 |
| 07-Jan-2025 |
andvar | fix various typos in commments.
|
1.16 |
| 24-Jul-2021 |
andvar | Fix all remaining typos, mainly in comments but also in few definitions and log messages, reported by me in PR kern/54889. Also fixed some additional typos in comments, found on review of same files or typos.
|
1.15 |
| 14-Jan-2019 |
jdolecek | branches: 1.15.16; fix typo in comment
|
1.14 |
| 03-Dec-2018 |
jdolecek | fix typo in comment, NFC
|
1.13 |
| 07-Oct-2017 |
jdolecek | branches: 1.13.2; 1.13.4; 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.12 |
| 17-Oct-2012 |
matt | branches: 1.12.26; Fix an errant define.
|
1.11 |
| 02-Nov-2011 |
jakllsch | branches: 1.11.2; 1.11.12; Additionally apply __aligned(8) to all __packed hardware data structures. (The hardware actually requires much larger alignment on these structures (128 to 1024 bytes), but 8 is big enough for the compiler to generate more efficient code on strict alignment architectures.)
|
1.10 |
| 20-Aug-2011 |
jakllsch | Add new CAP2 and BOHC registers.
|
1.9 |
| 20-Aug-2011 |
jakllsch | Adjust and add AHCI_CAP_IS values.
|
1.8 |
| 20-Aug-2011 |
jakllsch | Rework version printout to be more future proof. Rework features printout using snprintb.
|
1.7 |
| 20-Jul-2010 |
jakllsch | Prepare ahcisata(4) to work with 64-bit bus_dma_tag_t.
|
1.6 |
| 20-Jul-2010 |
jakllsch | Convert ahcisata(4) to C99 exact-width integer types.
|
1.5 |
| 19-Oct-2009 |
bouyer | branches: 1.5.2; 1.5.4; Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen for the booring work !
|
1.4 |
| 25-Jan-2008 |
xtraeme | branches: 1.4.10; 1.4.28; Make it print the correct version for AHCI 1.2 controllers.
|
1.3 |
| 25-Dec-2007 |
perry | Convert many of the uses of __attribute__ to equivalent __packed, __unused and __dead macros from cdefs.h
|
1.2 |
| 16-Sep-2007 |
bouyer | branches: 1.2.6; 1.2.8; 1.2.12; Fix various error handling bugs: - the value of the ATA error register would be computed wrongly, leading to bogus error values reported to wd(4) - the channel would not always be restarted after an error, so the next command would not be handled by the controller - a timeout condition would not be properly reported to wd(4), leading to a short transfer instead of a reset/retry these bugs would cause a AHCI SATA channel to be stalled (no more command processed) after a "ID not found" or "Aborted command" error reported by the drive.
|
1.1 |
| 12-May-2007 |
bouyer | branches: 1.1.2; 1.1.4; 1.1.6; 1.1.12; 1.1.14; 1.1.16; 1.1.18; 1.1.20; Split the ahcisata driver in pci front-end and bus-independant back-end.
|
1.1.20.5 |
| 04-Feb-2008 |
yamt | sync with head.
|
1.1.20.4 |
| 21-Jan-2008 |
yamt | sync with head
|
1.1.20.3 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.1.20.2 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.1.20.1 |
| 12-May-2007 |
yamt | file ahcisatareg.h was added on branch yamt-lazymbuf on 2007-09-03 14:34:14 +0000
|
1.1.18.3 |
| 23-Sep-2007 |
wrstuden | Sync with somewhat-recent netbsd-4.
|
1.1.18.2 |
| 03-Sep-2007 |
wrstuden | Sync w/ NetBSD-4-RC_1
|
1.1.18.1 |
| 12-May-2007 |
wrstuden | file ahcisatareg.h was added on branch wrstuden-fixsa on 2007-09-03 07:04:22 +0000
|
1.1.16.3 |
| 16-Sep-2007 |
xtraeme | Pull up following revision(s) (requested by bouyer in ticket #882): sys/dev/ic/ahcisata_core.c: revision 1.5 sys/dev/ic/ahcisatareg.h: revision 1.2
Fix various error handling bugs: - the value of the ATA error register would be computed wrongly, leading to bogus error values reported to wd(4) - the channel would not always be restarted after an error, so the next command would not be handled by the controller - a timeout condition would not be properly reported to wd(4), leading to a short transfer instead of a reset/retry these bugs would cause a AHCI SATA channel to be stalled (no more command processed) after a "ID not found" or "Aborted command" error reported by the drive.
|
1.1.16.2 |
| 31-Aug-2007 |
pavel | Pull up following revision(s) (requested by bouyer in ticket #678): distrib/sets/lists/man/mi: revision 1.1001 doc/CHANGES: revision 1.853 via patch share/man/man4/Makefile: revision 1.428 share/man/man4/jmide.4: revision 1.1 sys/arch/amd64/conf/GENERIC: revision 1.143 sys/arch/amd64/conf/INSTALL: revision 1.69 sys/arch/i386/conf/GENERIC: revision 1.827 sys/arch/i386/conf/INSTALL_LARGE: revision 1.2 via patch sys/arch/i386/conf/XEN2_DOM0: revision 1.26 sys/conf/files: revision 1.844 via patch sys/dev/ic/ahcisata_core.c: revision 1.1 via patch sys/dev/ic/ahcisata_core.c: revision 1.3 sys/dev/ic/ahcisatareg.h: revision 1.1 sys/dev/ic/ahcisatavar.h: revision 1.1 sys/dev/pci/ahcisata.c: delete sys/dev/pci/ahcisatareg.h: delete sys/dev/pci/ahcisata_pci.c: revision 1.1 sys/dev/pci/files.pci: revision 1.287-1.288 sys/dev/pci/jmide.c: revision 1.1-1.2 sys/dev/pci/jmide_reg.h: revision 1.1 sys/dev/pci/pcidevs: revision 1.878 Add JMicron Technology vendor ID, and their current PCIe SATA/PATA controllers.
Split the ahcisata driver in pci front-end and bus-independant back-end. add jmide(4), a driver for the JMicron Technology JMB36x PCIe to SATA II/PATA controllers. These controllers can be found on add-on PCIe cards, or on some motherboards to provide the PATA connectivity (e.g. some intel ICH8-based motherboards). Thanks to JMicron Technology for providing me documentation and different sample boards for this work.
Move mapping of AHCI register so that jmide knows if it fails, and avoids calling ahci_intr() (which would cause a panic). Try to use the pciide function for SATA drives if attaching ahci fails (this doesn't seems to work though, it may be BIOS dependant). Thanks to Gary Duzan for testing multiple pacthes.
We're not ready to handle ATAPI yet so just claim there's no drive to the upper layer. This should work around a NULL pointer dereference when an ATAPI device is detected on a AHCI device.
|
1.1.16.1 |
| 12-May-2007 |
pavel | file ahcisatareg.h was added on branch netbsd-4 on 2007-08-31 20:09:23 +0000
|
1.1.14.3 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.1.14.2 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.1.14.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.1.12.1 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
1.1.6.2 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.1.6.1 |
| 12-May-2007 |
mjf | file ahcisatareg.h was added on branch mjf-ufs-trans on 2007-07-11 20:05:38 +0000
|
1.1.4.3 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.1.4.2 |
| 09-Jun-2007 |
ad | Sync with head.
|
1.1.4.1 |
| 12-May-2007 |
ad | file ahcisatareg.h was added on branch vmlocking on 2007-06-09 21:37:13 +0000
|
1.1.2.2 |
| 17-May-2007 |
yamt | sync with head.
|
1.1.2.1 |
| 12-May-2007 |
yamt | file ahcisatareg.h was added on branch yamt-idlelwp on 2007-05-17 13:41:25 +0000
|
1.2.12.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.2.8.1 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.2.6.1 |
| 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.4.28.1 |
| 24-Mar-2014 |
matt | Merge needed changes from HEAD for cubie
|
1.4.10.2 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.4.10.1 |
| 11-Mar-2010 |
yamt | sync with head
|
1.5.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.5.2.1 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.11.12.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.11.12.2 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.11.12.1 |
| 09-Oct-2012 |
bouyer | Support transfers of up to MACHINE_MAXPHYS in all pciide variants, and ahci. wd(4) limits its maxphys depending on the drives's capability (64k sectors for LBA48, 256 sectors for LBA and 128 sectors for older devices).
I assumed all pciide controllers could do MACHINE_MAXPHYS transfers, but this may not be true. The capabilities of each controller variants should be looked at more closely.
|
1.11.2.1 |
| 30-Oct-2012 |
yamt | sync with head
|
1.12.26.2 |
| 29-Jul-2017 |
jdolecek | fix AHCI_P_CMD_CCS_SHIFT - must shift only by 8, otherwise the result would be always 0
|
1.12.26.1 |
| 19-Jul-2017 |
jdolecek | update error handling: - switch to ata_timeout() - stop using ch_status/ch_error for passing state/error, stop setting ATACH_IRQ_WAIT in ch_flags; pass the state via the last parameter to c_intr() routine - add NCQ recovery and KILL_REQUEUE - only call atastart() in c_intr() if there was no error
ahcisata-specific tweaks: - add some handling for PM in the error recovery using FBS register, according to spec it should be independant of actual FBSS feature; untested as my hw doesn't support PM
|
1.13.4.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.13.2.2 |
| 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.13.2.1 |
| 26-Dec-2018 |
pgoyette | Sync with HEAD, resolve a few conflicts
|
1.15.16.1 |
| 01-Aug-2021 |
thorpej | Sync with HEAD.
|