freebsd-skq/sys/dev/isci
jimharris 02bac7d970 For ATA_PASSTHROUGH commands, pretend isci(4) supports multiword DMA
by treating it as UDMA.

This fixes a problem introduced in r249933/r249939, where CAM sends
ATA_DSM_TRIM to SATA devices using ATA_PASSTHROUGH_16.  scsi_ata_trim()
sets protocol as DMA (not UDMA) which is for multi-word DMA, even
though no such mode is selected for the device.  isci(4) would fail
these commands which is the correct behavior but not consistent with
other HBAs, namely LSI's.

smh@ did some further testing on an LSI controller, which rejected
ATA_PASSTHROUGH_16 commands with mode=UDMA_OUT, even though only
a UDMA mode was selected on the device.  So this precludes adding
any kind of mode detection in CAM to determine which mode to use on
a per-device basis.

Sponsored by:	Intel
Discussed with:	scottl, smh
Reported by:	scottl
Tested by:	scottl
MFC after:	3 days
2013-06-26 22:08:45 +00:00
..
scil For ATA_PASSTHROUGH commands, pretend isci(4) supports multiword DMA 2013-06-26 22:08:45 +00:00
environment.h
isci_controller.c MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
isci_domain.c MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
isci_interrupt.c Wait until completion context unwinds before retrying CCBs that have been 2012-05-21 22:54:33 +00:00
isci_io_request.c Panic should the SCI framework ever request a pointer into the ccb's 2013-03-27 00:15:22 +00:00
isci_logger.c
isci_oem_parameters.c
isci_remote_device.c MFprojects/camlock r248982: 2013-04-14 09:55:48 +00:00
isci_sysctl.c
isci_task_request.c Fix the following compilation warning with clang trunk in isci(4): 2012-03-30 22:52:08 +00:00
isci_timer.c
isci.c Add support for locate LED. 2012-10-10 18:01:56 +00:00
isci.h Add support for locate LED. 2012-10-10 18:01:56 +00:00
README
sci_environment.h
types.h

FreeBSD Driver for Intel(R) C600 SAS Controller
===============================================

This driver has been developed for use with FreeBSD, version 9.0 and later.

This driver uses an OS-agnostic abstraction layer library named SCIL that is
published by Intel specifically for the C600 SAS controller.  The SAS
controller has no firmware, so the driver is extensive and using SCIL
minimizes the development and maintenance cost of the driver.

The FreeBSD implementation files are in the isci directory, and SCIL files
are in the isci/scil subdirectory.  As Intel publishes new versions of SCIL
(to add features or fix bugs), the isci/scil subdirectory will be updated
appropriately.