#
10b3b545 |
| 17-Sep-2009 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Merge from head
|
#
7d4b968b |
| 17-Sep-2009 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Merge from head up to r188941 (last revision before the USB stack switch)
|
#
e7153b25 |
| 07-May-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
Merge from HEAD
|
Revision tags: release/7.2.0_cvs, release/7.2.0 |
|
#
4c10f2e6 |
| 29-Apr-2009 |
Alexander Motin <mav@FreeBSD.org> |
Add experimental support for SATA interface power management. Feature is controlled by hint.ata.X.pm_level tunable: 0 - PM disabled, old behaviour, default. 1 - device is allowed to initiate PM sta
Add experimental support for SATA interface power management. Feature is controlled by hint.ata.X.pm_level tunable: 0 - PM disabled, old behaviour, default. 1 - device is allowed to initiate PM state change, host is passive. 2 - host initiates PARTIAL state transition every time port is idle. 3 - host initiates SLUMBER state transition every time port is idle.
PARTIAL state has up to 100us (50us for me) wakeup latency, but for my ICH8M saves 0.5W of power per drive. SLUMBER state has up to 10ms (3.5ms for me) wakeup latency, but saves 0.8W of power.
Modes 2 and 3 are implemented only for AHCI driver now.
Interface power management is incompatible with device presence detection (host receives no signal from drive, so unable to monitor it), so later is disabled when PM is used.
show more ...
|
#
c6b8ee96 |
| 27-Apr-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
- Give generic AHCI driver lower priority than device-specific drivers. - Consistently use BUS_PROBE_GENERIC instead of -100.
|
#
7267edac |
| 27-Apr-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Reduce code duplication and excessive pci_get_slot() calls.
Reviewed by: mav
|
#
3388ca6b |
| 27-Apr-2009 |
Jung-uk Kim <jkim@FreeBSD.org> |
Reduce excessive pci_get_devid() and pci_get_revid() calls on the same PCI device while device probing.
|
#
9c797940 |
| 13-Apr-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- Merge from HEAD
|
#
9cf4fe2e |
| 31-Mar-2009 |
Alexander Motin <mav@FreeBSD.org> |
Integrate user/mav/ata branch:
Add ch_suspend/ch_resume methods for PCI controllers and implement them for AHCI. Refactor AHCI channel initialization according to it.
Fix Port Multipliers operation
Integrate user/mav/ata branch:
Add ch_suspend/ch_resume methods for PCI controllers and implement them for AHCI. Refactor AHCI channel initialization according to it.
Fix Port Multipliers operation. It is far from perfect yet, but works now. Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair. Previous version was also tested with SiI 4726 PMP.
Hardware sponsored by: Vitsch Electronics / VEHosting.nl
show more ...
|
#
1829d5da |
| 12-Mar-2009 |
Warner Losh <imp@FreeBSD.org> |
Update the projects tree to a newer FreeBSD current.
|
#
79ca9100 |
| 09-Mar-2009 |
Alexander Motin <mav@FreeBSD.org> |
Add type specific suspend/resume ata channel functions. Add checks to avoid crash on detached channel resume. Add placeholder for possible type-specific suspend/resume routines.
|
#
b50bb79c |
| 19-Feb-2009 |
Alexander Motin <mav@FreeBSD.org> |
Use channel driver's attach/detach routines instead of ata_attach()/ ata_detach() to implement IOCATAATTACH/IOCATADETACH ioctls. This will permit channel drivers to properly shutdown port hardware on
Use channel driver's attach/detach routines instead of ata_attach()/ ata_detach() to implement IOCATAATTACH/IOCATADETACH ioctls. This will permit channel drivers to properly shutdown port hardware on channel detach and init it on attach.
show more ...
|
#
78d15416 |
| 19-Feb-2009 |
Alexander Motin <mav@FreeBSD.org> |
Quite mechanical ch_detach implementations for all atapci subdrivers. Some dmainit call fixes for previous commit.
|
#
04ff88ce |
| 18-Feb-2009 |
Alexander Motin <mav@FreeBSD.org> |
As soon as they called in only same one place (ata_pcichannel_attach()), join allocate() and dmainit() atapci subdriver's channel initialization methods into single ch_attach() method.
As opposite t
As soon as they called in only same one place (ata_pcichannel_attach()), join allocate() and dmainit() atapci subdriver's channel initialization methods into single ch_attach() method.
As opposite to ch_attach() add new ch_detach() method to deallocate/disable channel.
show more ...
|
#
6340835d |
| 18-Feb-2009 |
Alexander Motin <mav@FreeBSD.org> |
Make ch->dma.free() called symmetrically to ch->dma.alloc().
|
#
9f8919f2 |
| 16-Feb-2009 |
Alexander Motin <mav@FreeBSD.org> |
Give atapci knowledge about set of implemented AHCI ports. It is possible to not allocate them after the recent ata channels enumeration changes. It allows to save some resources, not bother user wit
Give atapci knowledge about set of implemented AHCI ports. It is possible to not allocate them after the recent ata channels enumeration changes. It allows to save some resources, not bother user with unexisting hardware and not check unimplemented ports status on every interrupt.
show more ...
|
#
a3b7c762 |
| 15-Feb-2009 |
Alexander Motin <mav@FreeBSD.org> |
Add initial single-vector MSI support into atapci driver. Works fine with AHCI and theoretically other MSI capable devices.
At this moment support disabled by default. To enable it, set "hint.atapci
Add initial single-vector MSI support into atapci driver. Works fine with AHCI and theoretically other MSI capable devices.
At this moment support disabled by default. To enable it, set "hint.atapci.X.msi=1" device hint.
show more ...
|
#
d7216f56 |
| 14-Feb-2009 |
Alexander Motin <mav@FreeBSD.org> |
DEVICE_PROBE(9) claims that we must not initialize softc on probe stage. Move channel softc initialization from ata_XXX_probe() to ata_XXX_attach().
Instead of calculating ata channel number as posi
DEVICE_PROBE(9) claims that we must not initialize softc on probe stage. Move channel softc initialization from ata_XXX_probe() to ata_XXX_attach().
Instead of calculating ata channel number as position in child device list, pass it's real number directly from controller probe routine using ivars. It is simpler and IMHO more correct.
show more ...
|
Revision tags: release/7.1.0_cvs, release/7.1.0 |
|
#
41fe50f5 |
| 20-Dec-2008 |
Sam Leffler <sam@FreeBSD.org> |
MFH @ 186335
|
#
cb33306f |
| 16-Dec-2008 |
Alexander Motin <mav@FreeBSD.org> |
Call ata_legacy() only once on attach and save it's result. Scanning PCI configuration registers (which are not going to change) on every interrupt looks expensive, especially when interrupt is share
Call ata_legacy() only once on attach and save it's result. Scanning PCI configuration registers (which are not going to change) on every interrupt looks expensive, especially when interrupt is shared. Profiling shows me 3% of time spent by atapci0 on pure network load due to IRQ sharing with em0.
show more ...
|
Revision tags: release/6.4.0_cvs, release/6.4.0 |
|
#
13014ca0 |
| 09-Oct-2008 |
Søren Schmidt <sos@FreeBSD.org> |
This is the roumored ATA modulerisation works, and it needs a little explanation.
If you just config KERNEL as usual there should be no apparent changes, you'll get all chipset support code compiled
This is the roumored ATA modulerisation works, and it needs a little explanation.
If you just config KERNEL as usual there should be no apparent changes, you'll get all chipset support code compiled in.
However there is now a way to only compile in code for chipsets needed on a pr vendor basis. ATA now has the following "device" entries:
atacore: ATA core functionality, always needed for any ATA setup
atacard: CARDBUS support atacbus: PC98 cbus support ataisa: ISA bus support atapci: PCI bus support only generic chipset support.
ataahci: AHCI support, also pulled in by some vendor modules.
ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, atamarvell, atamicron, atanational, atanetcell, atanvidia, atapromise, ataserverworks, atasiliconimage, atasis, atavia; Vendor support, ie atavia for VIA chipsets
atadisk: ATA disk driver ataraid: ATA softraid driver
atapicd: ATAPI cd/dvd driver atapifd: ATAPI floppy/flashdisk driver atapist: ATAPI tape driver
atausb: ATA<>USB bridge atapicam: ATA<>CAM bridge
This makes it possible to config a kernel with just VIA chipset support by having the following ATA lines in the kernel config file:
device atacore device atapci device atavia
And then you need the atadisk, atapicd etc lines in there just as usual.
If you use ATA as modules loaded at boot there is few changes except the rename of the "ata" module to "atacore", things looks just as usual. However under atapci you now have a whole bunch of vendor specific drivers, that you can kldload individually depending on you needs. Drivers have the same names as used in the kernel config explained above.
show more ...
|
#
7aab7e05 |
| 18-Sep-2008 |
Søren Schmidt <sos@FreeBSD.org> |
Cleanup the AHCI code a bit. Add suspend/resume for AHCI, general methods added.
Inspired by: Andrey V. Elsukov
|
#
082b99a8 |
| 11-Jun-2008 |
Søren Schmidt <sos@FreeBSD.org> |
Rearrange how to call dma.alloc() so that we have resources alloc'd when need but also late enough to know how many to create.
|
#
347458c9 |
| 21-Apr-2008 |
Søren Schmidt <sos@FreeBSD.org> |
Add HW level support for the Adaptec 1420SA controller.
|
#
104c094e |
| 17-Apr-2008 |
Søren Schmidt <sos@FreeBSD.org> |
Go back to preallocating everything possible on init. This avoids calling busdma in the request processing path which caused a traumatic performance degradation. Allocation has be postponed to after
Go back to preallocating everything possible on init. This avoids calling busdma in the request processing path which caused a traumatic performance degradation. Allocation has be postponed to after we know how many devices we possible can have on portmulitpliers to save some space.
show more ...
|