IBM Support

IBM Ultra 320 SCSI HBA controller 2 driver for SUSE

Download


Version

2.0.13-1

Release Date

13 September 2007

Downloadable File

File link File size File description
18,299 CHANGE HISTORY for the IBM Ultra 320 SCSI HBA controller 2 (13N2249) driver for SUSE
18,353 README for the IBM Ultra 320 SCSI HBA controller 2 (13N2249) driver for SUSE
4,948,293 IBM Ultra 320 SCSI HBA controller 2 (13N2249) driver for SUSE

Abstract

IBM Ultra 320 SCSI HBA controller 2 (13N2249) driver for SUSE

Download Description

New IBM xSeries firmware and device driver file naming convention

Change history

v2.0.12 to v2.0.13

Problem(s) Fixed:

  • Fixed a compilation issue due to the changed location and name of the "hosts.h" file. Now it resides as <scsi/scsi_host.h>

Enhancement:

  • Added support for 16 byte CDBs.

Limitations: N/A
Dependencies: N/A

v2.0.11 to v2.0.12

Problem(s) Fixed:

  • Flag driver threads with PF_FREEZE to support software suspend.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v2.0.10 to v2.0.11

Problem(s) Fixed:

  • Avoid split-completion issues in certain PCI-X chipsets by breaking up large completion entry DMAs on ADB boundaries.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v2.0.9 to v2.0.10

Problem(s) Fixed:

  • Return "command timeout" status instead of "selection timeout status" to the SCSI mid-layer in response to selection timeouts. Returning "command timeout" status causes the mid-layer to enter recovery and eventually offline persistently missing devices.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v2.0.8 to v2.0.9

Problem(s) Fixed:

Enhancement:

  • Abort all pending transactions on a target in response to a selection timeout. This greatly increases the speed with which we recover when a device "goes missing".

Limitations: N/A
Dependencies: N/A

v2.0.7 to v2.0.8

Problem(s) Fixed:

  • Fixed PCI device/vendor ID mask for the 7901B probe entry so the driver will successfully attach to 7901B parts down on motherboards.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v2.0.6 to v2.0.7

Problem(s) Fixed:

  • Implemented delay on I/O after delivery of a Target Reset.
  • Corrected deregistration of sysrq handler when multiple controllers are detected.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v2.0.5 to v2.0.6

Problem(s) Fixed:

  • Forced a renegotiation on all inqury commands so that the negotiated transfer parameters are correct even if the device has been externally reset since our last
    command.
  • Remove all vestiges of pre-2.4.X support.
  • Closed a rare race-condition in RevA 790X controllers, to insure the sequencer handles FIFOs in the correct order.
  • Added critical section markers into the firmware, to prevent windows from causing issues during error recovery.
  • Switch the complete DMA SCB list to a tailq so that multiple SCBs completing with non-zero status do not interfere with the state for the SCB currently being uploaded.
  • Use the comparison of a kernel and a sequencer qfreeze count to control the freezing of outgoing selections. This allows the kernel to handle non-zero SCB completions without having to clear firmware critical sections.
  • Changed the completion FIFO mechanism so that all completion entries are guaranteed aligned on a 64bit boundary. This avoids SCB DMA engine issues that are triggered if the transfer is interrupted (e.g. PCI disconnect) on a non-aligned boundary. In some cases, these issues would result in duplicate completions.

Enhancement:

  • Use one byte in the new completion entry to indicate if the SCB completed without a residual or non-zero SCSI status. This avoids an extra memory reference in our interrupt handler.

Limitations: N/A
Dependencies: N/A


V2.0.4 to V2.0.5

Problem(s) Fixed:

  • Corrected an issue preventing the driver from renegotiating during auto-request sense operations when a check condition occurred for a zero length command.
  • Corrected issues in the rundown of the good status FIFO during error recovery. The typical failure scenario evidenced by this defect was the loss of several commands under high load when several queue full conditions occured back to back.

Enhancement:

  • Start a DV scan for unit attention errors targets, which may indicate that the device may have been changed. The DV process will occur even if the user swaps devices without any interveining I/O to tell us that a device has gone missing.

Limitations: N/A
Dependencies: N/A

v2.0.3 to v2.0.4

Problem(s) Fixed:

  • Support the 2.6.0-test9 kernel
  • Fix rare deadlock caused by using del_timer_sync from within a timer handler.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v2.0.2 to v2.0.3

Problem(s) Fixed:

  • On 7902A4 hardware use the slow slew rate for transfer rates slower than U320. This behavior matches the Windows driver.
  • Fix some issues with the ahd_flush_qoutfifo() routine.
  • Added a delay in the loop waiting for selection activity to cease. Otherwise we may exhaust the loop counter too quickly on fast machines.
  • Process bad status completions through the qoutfifo. This reduces the amount of time the controller is paused for such errors.
  • List removal of softcs from the global list of softcs in the OSM. This allows us to avoid holding the list_lock during device destruction.
  • Enforce a bus settle delay for bus resets that the driver initiates.
  • Fall back to basic DV for U160 devices that lack an echo buffer.
  • Moved additional common routines to the aiclib OSM library to reduce code duplication.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v2.0.1 to v2.0.2

Problem(s) Fixed:

  • Moved additional common routines to the aiclib OSM library to reduce code duplication.
  • Avoid an inadvertent reset of the controller during the memory mapped I/O test should the controller be left in the reset state prior to driver initialization. This extra reset can result in a system hang due to a chip access that occurrs too soon after reset.
  • Corrected an endian issue in ahd_swap_with_next_hscb. This corrects strong-arm support.
  • Reset the bus for transactions that timeout waiting for the bus to go free after a disconnect or command complete message.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v2.0.0 to v2.0.1

Problem(s) Fixed:

  • Added magic sysrq handler that causes a card dump to be output to the console for each controller.
  • Avoid waking the mid-layer's error recovery handler during timeout recovery by returning DID_ERROR instead of DID_TIMEOUT for timed-out commands that have been aborted.
  • Moved additional common routines to the aiclib OSM library to reduce code duplication.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.12 to v2.0.0

Problem(s) Fixed:

  • Removed MMAPIO definition and allow memory mapped I/O for any platform that supports PCI.
  • Avoid clearing ENBUSFREE during single stepping to avoid spurious "unexpected busfree while idle" messages.
  • Corrected deadlock in ahd_run_qoutfifo() processing.
  • Corrected cases where an explicit flush of pending register writes was required to ensure acuracy in delays.
  • Corrected problems in manually flushing completed commands on the controller. The FIFOs are now flushed to ensure that completed commands that are still draining to the host are completed correctly.
  • Corrected incomplete CDB delivery detection on the 790XB.
  • Ignore the cmd->underflow field, since userland applications using the legacy command pass-thru interface do not set it correctly. Honoring this field led to spurious errors when users used the "scsi_unique_id" program.
  • Corrected support for manual termination settings.
  • Increase maximum wait time for serial eeprom writes allowing them to function correctly.

Enhancement:

  • Optimize support for the 7901B.
  • Perform timeout recovery within the driver instead of relying on the Linux SCSI mid-layer to perform this function. The mid-layer does not know the full state of the SCSI bus and is therefore prone to looping for several minutes to effect recovery. The new scheme recovers within 15 seconds of the failure.

Limitations: N/A
Dependencies: N/A

v1.3.11 to 1.3.12

Problem(s) Fixed:

  • Implemented new error recovery thread that supercedes the existing Linux SCSI error recovery code.
  • Fixed termination logic for 29320ALP.
  • Fixed SEEPROM delay to compensate for write operations taking longer.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.10 to 1.3.11

Problem(s) Fixed:

  • Fixed several deadlock issues.
  • Added 29320ALP and 39320B Id's.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.9 to v1.3.10

Problem(s) Fixed:

  • Align the SCB_TAG field on a 16byte boundary. This avoids SCB corruption on some PCI-33 busses.
  • Corrected non-zero luns on Rev B. hardware.
  • Update for change in 2.5.X SCSI proc FS interface.
  • When negotiation async via an 8bit WDTR message, send an SDTR with an offset of 0 to be sure the target knows we are async. This works around a firmware defect in the Quantum Atlas 10K.
  • Implement controller susupend and resume.
  • Clear PCI error state during driver attach so that we don't disable memory mapped I/O due to a stray write by some other driver probe that occurred before we claimed the controller.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.8 to v1.3.9

Problem(s) Fixed:

  • Fixed compiler errors.
  • Removed S/G splitting for segments that cross a 4GB boundary. This is guaranteed not to happen in Linux.
  • Added support for scsi_report_device_reset() found in 2.5.X kernels.
  • Add 7901B support.
  • Simplify handling of the packetized lun Rev A workaround.
  • Correct and simplify handling of the ignore wide residue message. The previous code would fail to report a residual if the transaction data length was even and we received an IWR message.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.7 to v1.3.8

Problem(s) Fixed:

  • Fixd types accessed via the command line interface code.
  • Performed firmware optimizations.
  • Fix "Unexpected PKT busfree" errors.
  • Use a sequencer interrupt to notify the host of commands with bad status. We defer the notification until there are no outstanding selections to ensure that the host is interrupted for as short a time as possible.
  • Removed pre-2.2.X support.
  • Added support for new 2.5.X interrupt API.
  • Corrected big-endian architecture support.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.6 to v1.3.7

Problem(s) Fixed:

  • Use del_timer_sync() to ensure that no timeouts are pending during controller shutdown.
  • For pre-2.5.X kernels, carefully adjust our segment list size to avoid SCSI malloc pool fragmentation.
  • Cleanup channel display in our /proc output.
  • Workaround duplicate device entries in the mid-layer devlice list during add-single-device.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.5 to v1.3.6

Problem(s) Fixed:

  • Corrected a double free in the Domain Validation code.
  • Corrected a reference to free'ed memory during controller shutdown.
  • Reset the bus on an SE->LVD change. This is required to reset our transcievers.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A


v1.3.4 to v1.3.5

Problem(s) Fixed:

  • Fixed register window mode issues.
  • Include read streaming in the PPR flags and display in diagnostics as well as /proc.
  • Added PCI hot plug support for 2.5.X kernels.
  • Corrected default precompensation value for RevA hardware.
  • Fixed Domain Validation thread shutdown.
  • Add a firmware workaround to make the LED blink brighter during packetized operations on the H2A4.
  • Corrected /proc display of user read streaming settings.
  • Simplified driver locking by releasing the io_request_lock upon driver entry from the mid-layer.
  • Cleaned-up command line parsing and moved this code to aiclib.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.2 to v1.3.4

Problem(s) Fixed:

  • Corrected a race condition in error recovery handler.
  • Allowed Test Unit Ready commands to take a full 5 seconds during Domain Validation.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.1 to v1.3.2

Problem(s) Fixed:

  • Corrected a Rev B. regression due to the GEM318 compatibility fix included in 1.3.1.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.3.0 to v1.3.1

Problem(s) Fixed:

  • Added support for the 39320A.
  • Improved recovery for certain PCI-X errors.
  • Fixed handling of LQ/DATA/LQ/DATA for the same write transaction that can occur without interveining training.
  • Corrected compatibility issues with the GEM318 enclosure services device.
  • Corrected data corruption issue that occurred under high tag depth write loads.
  • Adapted to a change in the 2.5.X daemonize() API.
  • Corrected a "Missing case in ahd_handle_scsiint" panic.

Enhancement: N/A
Limitations: N/A
Dependencies: N/A

v1.2.0 to v1.3.0

Problem(s) Fixed:

  • Full regression testing for all U320 products completed.

Enhancement:

  • Added abort and target/lun reset error recovery handler and interrupt coalessing.

Limitations: N/A
Dependencies: N/A

v1.1.1 to v1.2.0

Problem(s) Fixed: N/A

Enhancement:

  • Added support for Domain Validation
  • Added support for the Hewlett-Packard version of the 39320D and AIC-7902 adapters.

Limitations:

  • Support for previous adapters has not been fully tested and should only be used at the customer's own risk.

Dependencies: N/A

v1.1.0 to v1.1.1

Problem(s) Fixed: N/A
Enhancement:

  • Added support for the Linux 2.5.X kernel series

Limitations: N/A
Dependencies: N/A

v1.0.0 to v1.1.0

Problem(s) Fixed: N/A
Enhancement:

  • Added support for four additional SCSI products: ASC-39320, ASC-29320, ASC-29320LP, AIC-7901.

Limitations: N/A
Dependencies: N/A

v1.0.0

  • Initial driver release.

Off

Document Location

Worldwide

Operating System

System x Hardware Options:SUSE Linux

[{"Type":"HW","Business Unit":{"code":"BU016","label":"Multiple Vendor Support"},"Product":{"code":"QU01TMM","label":"System x Hardware Options->SCSI Controller->Ultra320 SCSI Controller->39R8743"},"Platform":[{"code":"PF047","label":"SurePOS"}],"Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
05 June 2018

UID

ibm1MIGR-5072497