/* | |
* QLogic ISP2200 and ISP2300 Linux Driver Revision List File. | |
* | |
******************************************************************** | |
* | |
* Revision History | |
* | |
* Rev 8.00.00b8 December 5, 2003 AV | |
* - Instruct mid-layer to perform initial scan. | |
* | |
* Rev 8.00.00b7 December 5, 2003 AV | |
* - Resync with Linux Kernel 2.6.0-test11. | |
* - Add basic NVRAM parser (extras/qla_nvr). | |
* | |
* Rev 8.00.00b7-pre11 December 3, 2003 AV | |
* - Sanitize the scsi_qla_host structure: | |
* - Purge unused elements. | |
* - Reorganize high-priority members (cache coherency). | |
* - Add support for NVRAM access via a sysfs binary attribute: | |
* - Consolidate semaphore locking access. | |
* - Fix more PCI posting issues. | |
* - Add extras directory for dump/NVRAM tools. | |
* - Remove unused qla_vendor.c file. | |
* | |
* Rev 8.00.00b7-pre11 November 26, 2003 DG/AV | |
* - Merge several patches from Christoph Hellwig [hch@lst.de]: | |
* - in Linux 2.6 both pci and the scsi layer use the generic | |
* dma direction bits, use them directly instead of the scsi | |
* and pci variants and the (noop) conversion routines. | |
* - Fix _IOXX_BAD() usage for external IOCTL interface. | |
* - Use atomic construct for HA loop_state member. | |
* - Add generic model description text for HBA types. | |
* | |
* Rev 8.00.00b7-pre5 November 17, 2003 AV | |
* - Merge several patches from Christoph Hellwig [hch@lst.de]: | |
* - patch to split the driver into a common qla2xxx.ko and a | |
* qla2?00.ko for each HBA type - the latter modules are | |
* only very small wrappers, mostly for the firmware | |
* images, all the meat is in the common qla2xxx.ko. | |
* - make the failover code optional. | |
* - kill useless lock_kernel in dpc thread startup. | |
* - no need for modversions hacks in 2.6 (or 2.4). | |
* - kill qla2x00_register_with_Linux. | |
* - simplify EH code, cmd or it's hostdata can't be NULL, no | |
* need to search whether the host it's ours, the midlayer | |
* makes sure it won't call into a driver for some else | |
* host. | |
* - Merge several patches from Jes Sorensen | |
* [jes@wildopensource.com]: | |
* - Call qla2x00_config_dma_addressing() before performing | |
* any consistent allocations. This is required since the | |
* dma mask settings will affect the memory | |
* pci_alloc_consistent() will return. | |
* - Call pci_set_consistent_dma_mask() to allow for 64 bit | |
* consistent allocations, required on some platforms such | |
* as the SN2. | |
* - Wait 20 usecs (not sure how long is really necessary, | |
* but this seems safe) after setting CSR_ISP_SOFT_RESET in | |
* the ctrl_status register as the card doesn't respond to | |
* PCI reads while in reset state. This causes a machine | |
* check on some architectures. | |
* - Flush PCI writes before calling udelay() to ensure the | |
* write is not sitting idle in-flight for a while before | |
* hitting the hardware. | |
* - Include linux/vmalloc.h in qla_os.c since it uses | |
* vmalloc(). | |
* - Use auto-negotiate link speed when using default | |
* parameters rather than NVRAM settings. Disable NVRAM | |
* reading on SN2 since it's not possible to execute the | |
* HBA's BIOS on an SN2. I suggest doing something similar | |
* for all architectures that do not provide x86 BIOS | |
* emulation. | |
* - Clean-up slab-cache allocations: | |
* - locking. | |
* - mempool allocations in case of low-memory situations. | |
* - Fallback to GA_NXT scan if GID_PT call returns more than | |
* MAX_FIBRE_DEVICES. | |
* - Preserve iterating port ID across GA_NXT calls in | |
* qla2x00_find_all_fabric_devs(). | |
* - Pre-calculate ASCII firmware dump length as to not incur the | |
* cost-to-calculate at each invocation of a read(). | |
* | |
* Rev 8.00.00b6 November 4, 2003 AV | |
* - Add new 2300 TPX firmware (3.02.18). | |
* | |
* Rev 8.00.00b6-pre25 October 20, 2003 RA/AV | |
* - Resync with Linux Kernel 2.6.0-test9. | |
* - Rework firmware dump process: | |
* - Use binary attribute within sysfs tree. | |
* - Add user-space tool (gdump.sh) to retrieve formatted | |
* buffer. | |
* - Add ISP2100 support. | |
* - Use a slab cache for SRB allocations to reduce memory | |
* pressure. | |
* - Initial conversion of driver logging methods to a new | |
* qla_printk() function which uses dev_printk (Daniel | |
* Stekloff, IBM). | |
* - Further reduce stack usage in qla2x00_configure_local_loop() | |
* and qla2x00_find_all_fabric_devs(). | |
* - Separate port state used for routing of I/O's from port | |
* mgmt-login retry etc. | |
* | |
* Rev 8.00.00b6-pre19 October 13, 2003 AV | |
* - Resync with Linux Kernel 2.6.0-test7-bk5. | |
* - Add intelligent RSCN event handling: | |
* - reduce scan time during 'port' RSCN events by only | |
* querying specified port ids. | |
* - Available on ISP23xx cards only. | |
* - Increase maximum number of recognizable targets from 256 | |
* to 512. | |
* - Backend changes were previously added to support TPX | |
* (2K logins) firmware. Mid-layer can now scan for targets | |
* (H, B, T, L) where 512 < T >= 0. | |
* - Remove IP support from driver. | |
* - Switch firmware types from IP->TP for ISP22xx and | |
* IPX->TPX for ISP23xx cards. | |
* - Remove files qla_ip.[ch]. | |
* - Remove type designations from firmware filenames. | |
* | |
* Rev 8.00.00b6-pre11 September 15, 2003 DG/AV | |
* - Resync with 6.06.00. | |
* - Resync with Linux Kernel 2.6.0-test5-bk3. | |
* - Add new 2300 IPX firmware (3.02.15). | |
* | |
* Rev 8.00.00b5 July 31, 2003 AV | |
* - Always create an fc_lun_t entry for lun 0 - as the mid- | |
* layer requires access to this lun for discovery to occur. | |
* - General sanitizing: | |
* - Add generic firmware option definitions. | |
* - Generalize retrieval/update of firmware options. | |
* - Fix compile errors which occur with extended debug. | |
* - Handle failure cases for scsi_add_host() and | |
* down_interruptible(). | |
* - Host template updates: | |
* - Use standard bios_param callback function. | |
* - Disable clustering. | |
* - Remove unchecked_is_dma entry. | |
* | |
* Rev 8.00.00b5-pre5 July 29, 2003 DG/AV | |
* - Resync with 6.06.00b13. | |
* - Resync with Linux Kernel 2.6.0-test2. | |
* - Pass the complete loop_id, not the masked (0xff) value | |
* while issuing mailbox commands (qla_mbx.c/qla_fo.c/ | |
* qla_iocb.c/qla_init.c). | |
* - Properly handle zero-length return status for an RLC CDB. | |
* - Create an fclun_t structure for 'disconnected' luns, | |
* peripheral-qualifier of 001b. | |
* - Remove unused LIP-sequence register access during AE 8010. | |
* - Generalize qla2x00_mark_device_lost() to handle forced | |
* login request -- modify all direct/indirect invocations | |
* with proper flag. | |
* - Save RSCN notification (AE 8015h) data in a proper and | |
* consistent format (domain, area, al_pa). | |
* - General sanitizing: | |
* - scsi_qla_host structure member reordering for cache-line | |
* coherency. | |
* - Remove unused SCSI opcodes, endian-swap definitions. | |
* - Remove CMD_* pre-processor defines. | |
* - Remove unused SCSIFCHOTSWAP/GAMAP/MULTIHOST codes. | |
* - Backout patch which added a per-scsi_qla_host scsi host | |
* spinlock, since mid-layer already defines one. | |
* - Add new 2300 IPX firmware (3.02.15). | |
* | |
* Rev 8.00.00b4 July 14, 2003 RA/DG/AV | |
* - Resync with 6.06.00b12. | |
* - Resync with Linux Kernel 2.6.0-test1. | |
* - Remove IOCB throttling code -- originally #if'd. | |
* - Remove apidev_*() routines since proc_mknod() has been | |
* removed -- need alternate IOCTL interface. | |
* - Merge several performance/fix patches from Arjan van de | |
* Ven: | |
* - Undefined operation >> 32. | |
* - No need to acquire mid-layer lock during command | |
* callback. | |
* - Use a per-HBA mid-layer lock. | |
* - Use a non-locked cycle for setting the count of the | |
* newly allocated sp (qla2x00_get_new_sp()). | |
* - Modify semantic behavior of qla2x00_queuecommand(): | |
* - Reduce cacheline bouncing by having I/Os submitted | |
* by the IRQ handler. | |
* - Remove extraneous calls to qla2x00_next() during I/O | |
* queuing. | |
* - Use list_splice_init() during qla2x00_done() handling | |
* of commands to reduce list_lock contention. | |
* - RIO mode support for ISP2200: | |
* - Implementation differs slightly from original patch. | |
* - Do not use bottom-half handler (tasklet/work queue) | |
* for qla2x00_done() processing. | |
* | |
* Rev 8.00.00b4-pre22 July 12, 2003 AV | |
* - Check for 'Process Response Queue' requests early during | |
* the Host Status check. | |
* - General sanitizing: | |
* - srb_t structure rewrite, removal of unused members. | |
* - Remove unused fcdev array, fabricid, and PORT_* | |
* definitions. | |
* - Remove unused config_reg_t PCI definitions. | |
* - Add new 2200 IP firmware (2.02.06). | |
* - Add new 2300 IPX firmware (3.02.14). | |
* | |
* Rev 8.00.00b4-pre19 June 30, 2003 AV | |
* - Resync with Linux Kernel 2.5.73-bk8. | |
* - Rework IOCB command queuing methods: | |
* - Upper-layer driver *MUST* properly set the direction | |
* bit of SCSI commands. | |
* - Generalize 32bit/64bit queuing path functions. | |
* - Remove costly page-boundary cross check when using | |
* 64bit address capable IOCBs. | |
* | |
* Rev 8.00.00b4-pre15 June 19, 2003 AV | |
* - Resync with 6.06.00b11. | |
* - Continue fcport list consolidation work: | |
* - Updated IOCTL implementations to use new fcports | |
* list. | |
* - Modified product ID check to not verify ISP chip | |
* revision -- ISP2312 v3 (qla2x00_chip_diag()). | |
* - Add new 2300 IPX firmware (3.02.13): | |
* | |
* Rev 8.00.00b4-pre13 June 19, 2003 AV | |
* - Fix build process for qla2100 driver -- no support | |
* for IP. | |
* - SCSI host template modifications: | |
* - Set sg_tablesize based on the derived DMA mask. | |
* - Increase max_sectors since only limit within RISC | |
* is transfer of (((2^32) - 1) >> 9) sectors. | |
* | |
* Rev 8.00.00b4-pre12 June 18, 2003 RA, DG, RL, AV | |
* - Resync with 6.06.00b10. | |
* - Resync with Linux Kernel 2.5.72. | |
* - Initial fcport list consolidation work: | |
* - fcports/fcinitiators/fcdev/fc_ip --> ha->fcports | |
* list. | |
* | |
* Rev 8.00.00b4-pre7 June 05, 2003 AV | |
* - Properly release PCI resouces in init-failure case. | |
* - Reconcile disparite function return code definitions. | |
* | |
* Rev 8.00.00b4-pre4 June 03, 2003 AV | |
* - Resync with Linux Kernel 2.5.70-bk8: | |
* - SHT proc_info() changes. | |
* - Restructure SNS Generic Services routines: | |
* - Add qla_gs.c file to driver distribution. | |
* - Configure PCI latency timer for ISP23xx. | |
* | |
* Rev 8.00.00b4-pre3 June 02, 2003 RA, DG, RL, AV | |
* - Resync with 6.06.00b5. | |
* - Rework (again) PCI I/O space configuration | |
* (Anton Blanchard): | |
* - Use pci_set_mwi() routine; | |
* - Remove uneeded qla2x00_set_cache_line() function. | |
* - Remove extraneous modification of PCI_COMMAND word. | |
* | |
* Rev 8.00.00b3 May 29, 2003 AV | |
* - Resync with Linux Kernel 2.5.70. | |
* - Move RISC paused check from ISR fast-path. | |
* | |
* Rev 8.00.00b3-pre8 May 26, 2003 AV | |
* - Add new 2300 IPX firmware (3.02.12): | |
* - Rework PCI I/O space configuration. | |
* | |
* Rev 8.00.00b3-pre6 May 22, 2003 RA, DG, RL, AV | |
* - Resync with 6.06.00b3. | |
* | |
* Rev 8.00.00b3-pre4 May 21 2003 AV | |
* - Add new 2300 IPX firmware (3.02.11): | |
* - Remove 2300 TPX firmware from distribution. | |
* | |
* Rev 8.00.00b3-pre3 May 21 2003 AV | |
* - Properly setup PCI configuation space during | |
* initialization: | |
* - Properly configure Memory-Mapped I/O during early | |
* configuration stage. | |
* - Rework IP functionality to support 2k logins. | |
* - Add new 2300 IPX firmware (3.02.11): | |
* - Remove 2300 TPX firmware from distribution. | |
* | |
* Rev 8.00.00b3-pre2 May ??, 2003 RA, DG, RL, AV | |
* - Resync with 6.06.00b1. | |
* | |
* Rev 8.00.00b3-pre1 May ??, 2003 RA, DG, RL, AV | |
* - Resync with 6.05.00. | |
* | |
* Rev 8.00.00b2 May 19, 2003 AV | |
* - Simplify dma_addr_t handling during command queuing given | |
* new block-layer defined restrictions: | |
* - Physical addresses not spanning 4GB boundaries. | |
* - Firmware versions: 2100 TP (1.19.24), 2200 IP (2.02.05), | |
* 2300 TPX (3.02.10). | |
* | |
* Rev 8.00.00b2-pre1 May 13, 2003 AV | |
* - Add support for new 'Hotplug initialization' model. | |
* - Simplify host template by removing unused callbacks. | |
* - Use scsicam facilities to determine geometry. | |
* - Fix compilation issues for non-ISP23xx builds: | |
* - Correct register references in qla_dbg.c. | |
* - Correct Makefile build process. | |
* | |
* Rev 8.00.00b1 May 05, 2003 AV | |
* - Resync with Linux Kernel 2.5.69. | |
* - Firmware versions: 2100 TP (1.19.24), 2200 TP (2.02.05), | |
* 2300 TPX (3.02.10). | |
* | |
* Rev 8.00.00b1-pre45 April ??, 2003 AV | |
* - Resync with Linux Kernel 2.5.68-bk11: | |
* - Fix improper return-code assignment during fabric | |
* discovery. | |
* - Remove additional extraneous #defines from | |
* qla_settings.h. | |
* - USE_PORTNAME -- FO will always use portname. | |
* - Default queue depth size set to 64. | |
* | |
* Rev 8.00.00b1-pre42 April ??, 2003 AV | |
* - Convert bottom-half tasklet to a work_queue. | |
* - Initial basic coding of dynamic queue depth handling | |
* during QUEUE FULL statuses. | |
* - Fix mailbox interface problem with | |
* qla2x00_get_retry_cnt(). | |
* | |
* Rev 8.00.00b1-pre41 April ??, 2003 AV | |
* - Convert build defines qla2[1|2|3]00 macros to | |
* qla2[1|2|3]xx due to module name stringification clashes. | |
* - Add additional ISP2322 checks during board configuration. | |
* | |
* Rev 8.00.00b1-pre40 April ??, 2003 AV | |
* - Resync with Linux Kernel 2.5.68-bk8: | |
* - Updated IRQ handler interface. | |
* - Add ISP dump code (stub) in case of SYSTEM_ERROR on | |
* ISP2100. | |
* - Add new 2200 IP firmware (2.02.05). | |
* | |
* Rev 8.00.00b1-pre39 April ??, 2003 AV | |
* - Resync with Linux Kernel 2.5.68. | |
* - Add simple build.sh script to aid in external compilation. | |
* - Clean-break with Kernel 2.4 compatibility. | |
* - Rework DPC routine -- completion routines for signaling. | |
* - Re-add HBAAPI character device node for IOCTL support. | |
* - Remove residual QLA2X_PERFORMANCE defines. | |
* - Allocate SP pool via __get_free_pages() rather than | |
* individual kmalloc()'s. | |
* - Inform SCSI mid-layer of 16-byte CDB support | |
* (host->max_cmd_len): | |
* - Remove unecessary 'more_cdb' handling code from | |
* qla_iocb.c and qla_xioct.c. | |
* - Reduce duplicate code in fabric scanning logic (MS IOCB | |
* preparation). | |
* - Add ISP dump code in case of SYSTEM_ERROR. | |
* - Remove 2300 VIX firmware from distribution: | |
* - Add initial code for IPX support. | |
* - Add new 2300 TPX firmware (3.02.10). | |
* | |
* Rev 8.00.00b1-pre34 April ??, 2003 AV | |
* - Resync with Linux Kernel 2.5.67. | |
* - Use domain/area/al_pa fields when displaying PortID | |
* values -- addresses endianess issues. | |
* - Rework large case statement to check 'common' CDB commands | |
* early in qla2x00_get_cmd_direction(). | |
* | |
* Rev 8.00.00b1-pre31 April ??, 2003 AV | |
* - Update makefile to support PPC64 build. | |
* - Retool NVRAM configuration routine and structures: | |
* - Consoldate ISP21xx/ISP22xx/ISP23xx configuration | |
* (struct nvram_t). | |
* - Remove big/little endian support structures in favor of | |
* simplified bit-operations within byte fields. | |
* - Fix long-standing 'static' buffer sharing problem in | |
* qla2x00_configure_fabric(). | |
* | |
* Rev 8.00.00b1-pre30 April ??, 2003 AV | |
* - Complete implementation of GID_PT scan. | |
* - Use consistent MS IOCB invocation method to query SNS: | |
* - Add RNN_ID and RSNN_NN registrations in a fabric. | |
* - Remove unused Mailbox Command 6Eh (Send SNS) support | |
* structures. | |
* - Use 64bit safe IOCBs while issuing INQUIRY and RLC during | |
* topology scan. | |
* - Until reimplementation of fcdev_t/fcport list | |
* consolidation, valid loop_id ranges are still limited from | |
* 0x00 through 0xFF -- enforce this within the code. | |
* | |
* Rev 8.00.00b1-pre27 March ??, 2003 AV | |
* - Resync with 6.05.00b9. | |
* - Retool HBA PCI configuration -- qla2x00_pci_config(). | |
* - Remove inconsistent use of delay routines (UDELAY/SYS*). | |
* - Continue to teardown/clean/add comments and debug | |
* routines. | |
* - Properly swap bytes of the device's nodename in | |
* qla2x00_configure_local_loop(). | |
* | |
* Rev 8.00.00b1-pre25 March ??, 2003 AV | |
* - Resync with 6.05.00b8. | |
* | |
* Rev 8.00.00b1-pre23 March ??, 2003 AV | |
* - Remove (#define) IOCB usage throttling. | |
* - Abstract interrupt polling with qla2x00_poll(). | |
* - Modify lun scanning logic: | |
* - If the device does not support the SCSI Report Luns | |
* command, the driver will now only scan from 0 to the | |
* max#-luns as defined in the NVRAM (BIOS), rather than | |
* blindly scanning from 0 to 255 -- which could result in | |
* an increase in startup time when running against slow | |
* (JBOD) devices. | |
* - Rework reset logic in qla2x00_reset_chip() (spec). | |
* | |
* Rev 8.00.00b1-pre22 March ??, 2003 AV | |
* - Resync with 6.05.00b7. | |
* - Cleanup (rewrite) ISR handler. | |
* - Rename kmem_zalloc --> qla2x00_kmem_zalloc(): | |
* - This function will eventually be removed. | |
* - Add new 2300 VIX firmware (3.02.09): | |
* - Support for Tape, Fabric, 2K logins, IP, and VI. | |
* | |
* Rev 8.00.00b1-pre18 March ??, 2003 AV | |
* - Support 232x type ISPs. | |
* - Support single firmware for each ISP type: | |
* - Restructure brd_info/fw_info methods. | |
* - Streamline firmware load process. | |
* - Properly query firmware for version information. | |
* - Remove extraneous scsi_qla_host members: | |
* - device_id ==> pdev->device | |
* - Fix fc4 features (RFF_ID) registration. | |
* - Convert kmem_zalloc --> qla2x00_kmem_zalloc(). | |
* - Remove unused/extraneous #defines (USE_PORTNAME). | |
* | |
* Rev 8.00.00b1-pre14 March ??, 2003 AV | |
* - Resync with 6.05.00b6. | |
* - Initial source-code restructuring effort. | |
* - Build procedure. | |
* - Source file layout -- intuitive component layout. | |
* - Remove unused #defines (*PERFORMANCE, WORD_FW_LOAD, etc). | |
* - Add support for 2K logins (TPX -- firmware). | |
* - Add module parameter ql2xsuspendcount. | |
* - Add new 2200 IP/TP firmware (2.02.04). | |
* | |
* Rev 8.00.00b1-pre9 March ??, 2003 RL/DG/RA/AV | |
* - Use kernel struct list_head for fcport and fclun lists. | |
* - Remove extraneous (L|M)S_64BITS() and QL21_64*() defines. | |
* | |
* Rev 8.00.00b1-pre8 February 28, 2003 RL/DG/RA/AV | |
* - Resync with 6.05.00b3. | |
* | |
* Rev 8.00.00b1-pre7 February 23, 2003 RL/DG/RA/AV | |
* - Add alternate fabric scanning logic (GID_PT/GNN_ID/GPN_ID). | |
* - Remove use of deprecated function check_region(). | |
* - Add new 2300 IP/TP firmware (3.02.08). | |
* | |
* Rev 8.00.00b1-pre5 January 28, 2003 RL/DG/RA/AV | |
* - Resync with 6.05.00b3. | |
* - Consolidate device_reg structure definitions for ISP types. | |
* - Add support for new queue-depth selection. | |
* - Add new 2300 IP/TP firmware (3.02.07). | |
* | |
* Rev 8.00.00b1-pre1 January 17, 2003 AV | |
* - Initial branch from 6.04.00b8 driver. | |
* - Remove VMWARE specific code. | |
* - Add support for pci_driver interface. | |
* | |
********************************************************************/ |