267654 |
20-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
265561 |
07-May-2014 |
jimharris |
MFC r263276:
Base the max number of SG elements on MAXPHYS.
|
265560 |
07-May-2014 |
jimharris |
MFC r263275:
isci: Ensure ATA passthrough commands with RETURN_RESPONSE bit set translate their response.
|
257593 |
03-Nov-2013 |
jimharris |
MFC r256231:
Improve logging around some of the isci(4) reset and recovery paths.
Sponsored by: Intel
|
256437 |
14-Oct-2013 |
kib |
MFC r256125: Make isci(4) loadable.
|
256219 |
09-Oct-2013 |
mav |
MFC r250460 (by eadler): Fix a bunch of typos.
|
253037 |
08-Jul-2013 |
mav |
MFC r249468: Stop abusing xpt_periph in random plases that really have no periph related to CCB, for example, bus scanning. NULL value is fine in such cases and it is correctly logged in debug messages as "noperiph". If at some point we need some real XPT periphs (alike to pmpX now), quite likely they will be per-bus, and not a single global instance as xpt_periph now.
|
252651 |
03-Jul-2013 |
jimharris |
MFC r252262:
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
|
251899 |
18-Jun-2013 |
scottl |
MFC r248825, 248775
Add unmapped i/o support for the mps and isci drivers.
Submitted by: mav, jimharris Obtained from: Netflix
|
251874 |
18-Jun-2013 |
scottl |
Big MFC of the physbio changes necessary for unmapped I/O. These changes have been in production at Netflix for several months with significant success.
MFC r246713:
Reform the busdma API so that new types may be added without modifying every architecture's busdma_machdep.c. It is done by unifying the bus_dmamap_load_buffer() routines so that they may be called from MI code. The MD busdma is then given a chance to do any final processing in the complete() callback.
MFC r249538: Some compilers issue a warning when wider integer is casted to narrow pointer. Supposedly shut down the warning by casting through uintptr_t.
MFC r251479: Simplify the checking of flags for cam_periph_mapmem(). This gets rid of a lot of code redundancy and grossness at very minor expense.
MFC r251837: MFC r251842: Add infrastructure for doing compatibility shims, as has been sorely needed for the last 10 years. Far too much of the internal API is exposed, and every small adjustment causes applications to stop working. To kick this off, bump the API version to 0x17 as should have been done with r246713, but add shims to compensate. Thanks to the shims, there should be no visible change in application behavior.
Submitted by: kib, jeffr Approved by: kib Obtained from: Netflix
|
244128 |
12-Dec-2012 |
jimharris |
MFC r243904:
Don't call bus_dmamap_load in CAM_DIR_NONE case, since there is nothing to map, and technically this isn't allowed.
Functionally, it works OK (at least on x86) to call bus_dmamap_load with a NULL data pointer and zero length, so this is primarily for correctness and consistency with other drivers.
While here, remove check in isci_io_request_construct for nseg==0. Previously, bus_dmamap_load would pass nseg==1, even for case where buffer is NULL and length = 0, which allowed CAM_DIR_NONE CCBs to get processed. This check is not correct though, and needed to be removed both for the changes elsewhere in this patch, as well as jeff's preliminary bus_dmamap_load_ccb patch (which uncovered all of this in the first place).
|
242820 |
09-Nov-2012 |
hselasky |
MFC r240743 and r234418: Fix some typos.
|
240611 |
17-Sep-2012 |
jimharris |
MFC r240514:
isci(4): Fix SCSI/ATA translation for SCSI_WRITE_BUFFER w/ mode==0x7 (download microcode with offsets, save, and activate).
SATI translation layer was incorrectly using allocation length instead of blocks, and was constructing the ATA command incorrectly.
Also change #define to specify that the 512 block size here is specific for DOWNLOAD_MICROCODE, and does not relate to the device's logical block size.
|
240580 |
17-Sep-2012 |
eadler |
MFC r240520: s/teh/the/g
Approved by: cperciva (implicit)
|
240579 |
17-Sep-2012 |
eadler |
MFC r240518: Correct double "the the"
Approved by: cperciva (implicit)
|
240577 |
17-Sep-2012 |
eadler |
MFC r240521:
s/ is is / is /g s/ a a / a /g
Approved by: cperciva (implicit)
|
240089 |
04-Sep-2012 |
jimharris |
MFC r239889:
Do not call sati_check_data_io() for SATI_UNMAP sequences.
This routine is intended only for commands such as INQUIRY where the controller may fill out a smaller amount of data than allocated by the host.
The end result of this bug was that isci(4) would report non-zero resid for successful SCSI_UNMAP commands.
Sponsored by: Intel
|
239734 |
27-Aug-2012 |
jimharris |
MFC r239545, r239665:
Fix/add support for SCSI UNMAP to ATA DSM translation.
This addresses kernel panic observed when sending SCSI UNMAP commands to SATA disks attached to isci(4).
1) Flesh out callback routines to allocate/free buffers needed for translating SCSI UNMAP data to ATA DSM data. 2) Add controller-level pool for storing buffers previously allocated for UNMAP translation, to lessen chance of no buffer available under memory pressure. 3) Ensure driver properly handles case where buffer pool is empty and contigmalloc returns NULL. 4) Clear freeze bit in isci_remote_device_release_lun_queue() before calling xpt_release_devq to ensure that any ccbs which immediately start during the call to xpt_release_devq() see an accurate picture of the frozen_lun_mask. This code path is extensively exercised when tagged read/write commands mix with non-tagged DSM commands.
Sponsored by: Intel
|
236263 |
29-May-2012 |
jimharris |
MFC r234106, r235751:
Queue CCBs internally instead of using CAM_REQUEUE_REQ status. This fixes problem where userspace apps such as smartctl fail due to CAM_REQUEUE_REQ status getting returned when tagged commands are outstanding when smartctl sends its I/O using the pass(4) interface.
Sponsored by: Intel
|
235743 |
21-May-2012 |
jhb |
Toss bogus mergeinfo.
|
235738 |
21-May-2012 |
sbruno |
MFC r235634
Fix and update battery status bits according to linux driver
|
235494 |
16-May-2012 |
jimharris |
MFC r235043:
Fix off-by-one error in sati_inquiry_block_device_translate_data(). Bug would result in INQUIRY VPD 0x81 to SATA devices to return only 63 bytes of data instead of 64 during SCSI/ATA translation.
Sponsored by: Intel
|
234239 |
13-Apr-2012 |
dim |
MFC r233710:
Fix the following compilation warning with clang trunk in isci(4):
sys/dev/isci/isci_task_request.c:198:7: error: case value not in enumerated type 'SCI_TASK_STATUS' (aka 'enum _SCI_TASK_STATUS') [-Werror,-Wswitch] case SCI_FAILURE_TIMEOUT: ^
This is because the switch is done on a SCI_TASK_STATUS enum type, but the SCI_FAILURE_TIMEOUT value belongs to SCI_STATUS instead.
Because the list of SCI_TASK_STATUS values cannot be modified at this time, use the simplest way to get rid of this warning, which is to cast the switch argument to int. No functional change.
Reviewed by: jimharris
|
233788 |
02-Apr-2012 |
jimharris |
MFC r233663:
Fix bug where isci(4) would report only 15 bytes of returned data on a READ_CAP_16 command to a SATA target.
Sponsored by: Intel Approved by: sbruno
|
233784 |
02-Apr-2012 |
jimharris |
MFC r233622:
Ensure consistent target IDs for direct-attached devices.
Sponsored by: Intel Reported by: sbruno, Ravi Pokala <rpokala at panasas dot com> Tested by: Ravi Pokala <rpokala at panasas dot com> Approved by: sbruno
|
233372 |
23-Mar-2012 |
jimharris |
MFC r233371:
Call xpt_bus_register during attach context, then freeze and do not release until domain discovery is complete. This fixes an isci(4) bug on FreeBSD 7.x where devices weren't always appearing after boot without an explicit rescan.
Sponsored by: Intel Reported and tested by: <rpokala at panasas dot com> Reviewed by: scottl Approved by: scottl
|
232368 |
01-Mar-2012 |
sbruno |
MFC r232225
Update PCI-IDs with devices found on Intel SDP
Return BUS_PROBE_DEFAULT so that non-default drivers may be loaded
|
232229 |
27-Feb-2012 |
sbruno |
MFC r231860
During work to port isci(4) to stable/7 I noted that the maxio portion of struct ccb_pathinq from sys/cam/cam_ccb.h wasn't added to stable/7 at all and didn't appear in stable/8 until svn R195534. Since __FreeBSD_version did not get bumped until svn R195634, assume that maxio is valid at 800102 or higher.
Obtained from: Yahoo! Inc.
|
231689 |
14-Feb-2012 |
jimharris |
MFC r230843, r231134, r231136, r231137, r231296
Add isci(4) driver for amd64 and i386 targets.
The isci driver is for the integrated SAS controller in the Intel C600 (Patsburg) chipset. Source files in sys/dev/isci directory are FreeBSD-specific, and sys/dev/isci/scil subdirectory contains an OS-agnostic library (SCIL) published by Intel to control the SAS controller. This library is used primarily as-is in this driver, with some post-processing to better integrate into the kernel build environment.
isci.4 and a README in the sys/dev/isci directory contain a few additional details.
This driver is only built for amd64 and i386 targets.
Sponsored by: Intel Reviewed by: scottl Approved by: scottl
|
230843 |
31-Jan-2012 |
jimharris |
Add isci(4) driver for amd64 and i386 targets.
The isci driver is for the integrated SAS controller in the Intel C600 (Patsburg) chipset. Source files in sys/dev/isci directory are FreeBSD-specific, and sys/dev/isci/scil subdirectory contains an OS-agnostic library (SCIL) published by Intel to control the SAS controller. This library is used primarily as-is in this driver, with some post-processing to better integrate into the kernel build environment.
isci.4 and a README in the sys/dev/isci directory contain a few additional details.
This driver is only built for amd64 and i386 targets.
Sponsored by: Intel Reviewed by: scottl Approved by: scottl
|
230792 |
30-Jan-2012 |
jimharris |
Fix ATAPI code path to ensure bus_dma_segment structures are only used within bus_dmamap_load context.
Sponsored by: Intel Reported by: Sohaib Ahsan <sohaib dot ahsan intel com>
|
230557 |
25-Jan-2012 |
jimharris |
Add all isci driver source code to sys/dev/isci for the Intel C600 (Patsburg) integrated SAS controller.
sys/dev/isci contains all files specific to FreeBSD. sys/dev/isci/scil contains OS-agnostic library maintained by Intel and modified to best integrate into FreeBSD kernel build environment.
Sponsored by: Intel Reviewed by: scottl
|
229730 |
06-Jan-2012 |
jimharris |
Modify GENERIC, files and options for isci (Intel C600 SAS controller) driver. Also add brief README and cleanup Makefile.
Reviewed by: scottl sbruno
|