Open Fabrics Enterprise Distribution (OFED)
                    ehca in OFED 1.4 Release Notes

                           December 2008


Overview
--------
ehca is the low level driver implementation for all IBM GX-based HCAs.

Supported HCAs
--------------
- GX Dual-port SDR 4x IB HCA
- GX Dual-port SDR 12x IB HCA
- GX Dual-port DDR 4x IB HCA
- GX Dual-port DDR 12x IB HCA

Available Parameters
--------------------
In order to set ehca parameters, add the following line(s) to /etc/modprobe.conf:

        options ib_ehca <parameter>=<value>

whereby <parameter> is one of the following items:
- debug_level     debug level (0: no debug traces (default), 1: with debug traces)
- port_act_time   time to wait for port activation (default: 30 sec)
- scaling_code    scaling code (0: disable (default), 1: enable)
- open_aqp1       Open AQP1 on startup (default: no) (bool)
- hw_level        Hardware level (0: autosensing (default), 0x10..0x14: eHCA, 0x20..0x23: eHCA2) (int)
- nr_ports        number of connected ports (-1: autodetect, 1: port one only, 2: two ports (default) (int)
- use_hp_mr       Use high performance MRs (default: no) (bool)
- poll_all_eqs    Poll all event queues periodically (default: yes) (bool)
- static_rate     Set permanent static rate (default: no static rate) (int)
- lock_hcalls     Serialize all hCalls made by the driver (default: autodetect) (bool)
- number_of_cqs   Max number of CQs which can be allocated (default: autodetect) (int)
- number_of_qps   Max number of QPs which can be allocated (default: autodetect) (int)

New Features
------------
- Flush error completion support

Fixed Bugs ofed-1.4
---------------------
- Reject send work requests only for RESET, INIT and RTR state
- Reject receive work requests if QP is in RESET state
- In case of lost interrupts, trigger EOI to reenable interrupts
- Filter PATH_MIG events if QP was never armed
- Release mutex in error path of alloc_small_queue_page()
- Check idr_find() return value
- Discard double CQE for one WR
- Generate flush status CQ entries
- Don't allow creating UC QP with SRQ
- Fix reported max number of QPs and CQs in systems with >1 adapter
- Reject dynamic memory add/remove when ehca adapter is present
- Remove reference to special QP in case of port activation failure
- Fix locking for shca_list_lock

Fixed Bugs ofed-1.3.1
---------------------
- Support all ibv_devinfo values in query_device() and query_port()
- Prevent posting of SQ WQEs if QP not in RTS
- Remove mr_largepage parameter, ie always enable large page support
- Allocate event queue size depending on max number of CQs and QPs
- Protect QP against destroying until all async events for it are handled

Fixed Bugs ofed-1.3
-------------------
- Serialize HCA-related hCalls if necessary
- Fix static rate if path faster than link
- Return physical link information in query_port()
- Fix clipping of device limits to INT_MAX
- Fix issues related to path migration support
- Support more than 4k QPs for userspace and kernelspace
- Prevent sending UD packets to QP0
- Prevent RDMA-related connection failures on some eHCA2 hardware

Available backports
-------------------
- RedHat EL5 up1: 2.6.18-53.ELsmp
- RedHat EL5 up2: 2.6.18-92.ELsmp
- SLES10SP1: 2.6.16-53-0.16-smp
- SLES10SP2: 2.6.16-60
- kernel.org: 2.6.24-27

Known Issues
------------
1. The device driver normally uses both ports. For using just one port it is
strongly recommended to set option nr_ports=-1 to enable autodetect mode:
   modprobe ib_ehca nr_ports=-1

2. Furthermore the port(s) needs to be connected to an active switch port while
loading the ehca device driver.

3. Dynamic memory operations are not supported with ehca