libata-dev-2.6, the development queue for the Linux SATA driver libata, has been updated. See attachment for BK info, patch URL, and full list of changes.

Here is a quick summary of the goodies lurking in libata-dev, and also the Reason Why It's Not Upstream (RWINU):


1) ATA passthru. Arbitrary ATA command execution. Provides SMART and hdparm support, among other things.


RWINU: SCSI T10 committee will not standardize the opcodes for this until March 2005. The "set transfer mode" command must be special-cased, since it requires additional per-controller work to reconfigure DMA timings and such.


2) Turn on ATAPI.

RWINU: Needs some more testing, and need to resolve discrepancy between ATA/ATAPI-4 and ATA/ATAPI-7 for ATAPI DMA host state machine.


3) Detect PATA devices attached to SATA controllers (via a bridge), and adjust settings to limit udma mode and maximum number of sectors, due to problems with certain bridge/controller combinations and issues reported in the field.


RWINU: Not certain that the hueristic reliably detects a PATA device attached to a SATA controller.


4) Cleanup: Remove 'execute device diagnostic' reset support, making code smaller.


RWINU: Need to make sure no out-of-tree drivers are using it.


5) hdparm 'get identity' ioctl support.

RWINU: Bart had some objections that warranted attention (but I forget what those objections were, alas).


Additional hardware support ---------------------------

1) New driver:  Promise 2027x (PATA)

RWINU: Need to plan a good strategy for users who wish to use this driver, versus the PATA driver in drivers/ide. Also applies to other PATA drivers people will eventually port to libata.


2) New driver: ADMA. Supports several Pacific Digital controllers, among others.


RWINU: Never tested on real hardware; needs testing.


3) New driver: VIA VT6421.

RWINU: Never tested on real hardware; needs testing.


4) Support for PATA port on Promise SATA controllers.

RWINU: I'm not sure whether the API change necessary for this is the correct one. Need to ponder. Comments welcome.


5) Support for Promise PDC20619 (a.k.a. TX4000) PATA controller.

RWINU: Needs additional testing. Need to rename 'sata_promise' to 'ata_promise', then create a method of aliasing the old module name, to avoid breaking existing setups. 2.6.x has the MODULE_ALIAS() method, 2.4.x needs a Makefile rule to build an additional module.


6) core libata PATA support.

RWINU: PATA is working, but needs a few missing pieces filled in. CHS support is one (Albert Lee just started on this, posting the first patches to linux-ide last night), DMA blacklist is another (done; upstream soon), and a few other details. Also the issues mentioned in "#1 Promise PDC2027x" (above).

BK users:

        bk pull bk://gkernel.bkbits.net/libata-dev-2.6

Patch:
http://www.kernel.org/pub/linux/kernel/people/jgarzik/libata/2.6.11-rc3-bk2-libata-dev1.patch.bz2

This will update the following files:

 drivers/scsi/Kconfig         |   18 -
 drivers/scsi/Makefile        |    2 
 drivers/scsi/ahci.c          |    2 
 drivers/scsi/ata_adma.c      |  636 ++++++++++++++++++++++++++++++++++++
 drivers/scsi/libata-core.c   |  361 +++++++++++---------
 drivers/scsi/libata-scsi.c   |  444 ++++++++++++++++++++++++-
 drivers/scsi/libata.h        |    6 
 drivers/scsi/pata_pdc2027x.c |  742 +++++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/sata_nv.c       |   45 +-
 drivers/scsi/sata_promise.c  |   98 +++++
 drivers/scsi/sata_sil.c      |    1 
 drivers/scsi/sata_via.c      |  202 ++++++++---
 include/linux/ata.h          |    3 
 include/linux/libata.h       |    6 
 include/scsi/scsi.h          |    3 
 15 files changed, 2305 insertions(+), 264 deletions(-)

through these ChangeSets:

<andyw:pobox.com>:
  o [libata scsi] support 12-byte passthru CDB
  o [libata scsi] passthru CDB check condition processing
  o T10/04-262 ATA pass thru - patch

<erikbenada:yahoo.ca>:
  o [libata sata_promise] support PATA ports on SATA controllers

<jpaana:s2.org>:
  o [libata sata_promise] add PCI ID for new SATAII TX2 card

<mkrikis:yahoo.com>:
  o libata: fix ata_piix on ICH6R in RAID mode

<syntax:pa.net>:
  o [libata sata_sil] add another Seagate drive to blacklist

Adam J. Richter:
  o ata_pci_remove_one used freed memory

Albert Lee:
  o [libata] SCSI-to-ATA translation fixes
  o pdc2027x timing register bug fix
  o [libata pdc2027x] fix incorrect pio and mwdma masks
  o [libata pdc2027x] remove quirks and ROM enable
  o [libata] add driver for Promise PATA 2027x

Andrew Chew:
  o sata_nv: enable generic class support for future NVIDIA SATA

Brad Campbell:
  o libata basic detection and errata for PATA->SATA bridges

Brett Russ:
  o [libata scsi] verify cmd bug fixes/support

Jeff Garzik:
  o [libata ahci] Add support for ULi M5288
  o [libata] turn on ATAPI support
  o [libata sata_promise] merge Tobias Lorenz' pdc20619 patch, part 2
  o [libata] small cleanups
  o [libata] remove unused execute-device-diagnostic reset method
  o [libata sata_promise] support Promise SATAII TX2/TX4 cards
  o [libata] Remove CDROM drive from PATA DMA blacklist
  o [libata] add DMA blacklist
  o [libata] add new driver ata_adma
  o [libata sata_via] add support for VT6421 SATA
  o [libata sata_via] minor cleanups
  o [libata pdc2027x] update for upstream struct device conversion
  o [libata sata_promise] fix merge bugs
  o [libata] fix build breakage
  o [libata] fix SATA->PATA bridge detect compile breakage
  o [libata] fix printk warning

John W. Linville:
  o libata: SMART support via ATA pass-thru

Pete Zaitcev:
  o [libata] fix probe object allocation bugs

Tobias Lorenz:
  o [libata sata_promise] pdc20619 (PATA) support
  o libata-scsi: get-identity ioctl support

Reply via email to