⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 advansys.c

📁 linux和2410结合开发 用他可以生成2410所需的zImage文件
💻 C
📖 第 1 页 / 共 5 页
字号:
     2. Run tests on an x86, alpha, and PowerPC with at least one narrow        card and one wide card attached to a hard disk and CD-ROM drive:        fdisk, mkfs, fsck, bonnie, copy/compare test from the        CD-ROM to the hard drive.  H. Release History     BETA-1.0 (12/23/95):         First Release     BETA-1.1 (12/28/95):         1. Prevent advansys_detect() from being called twice.         2. Add LILO 0xdeb[0-f] option to set 'asc_dbglvl'.     1.2 (1/12/96):         1. Prevent re-entrancy in the interrupt handler which            resulted in the driver hanging Linux.         2. Fix problem that prevented ABP-940 cards from being            recognized on some PCI motherboards.         3. Add support for the ABP-5140 PnP ISA card.         4. Fix check condition return status.         5. Add conditionally compiled code for Linux v1.3.X.     1.3 (2/23/96):         1. Fix problem in advansys_biosparam() that resulted in the            wrong drive geometry being returned for drives > 1GB with            extended translation enabled.         2. Add additional tracing during device initialization.         3. Change code that only applies to ISA PnP adapter.         4. Eliminate 'make dep' warning.         5. Try to fix problem with handling resets by increasing their            timeout value.     1.4 (5/8/96):         1. Change definitions to eliminate conflicts with other subsystems.         2. Add versioning code for the shared interrupt changes.         3. Eliminate problem in asc_rmqueue() with iterating after removing            a request.         4. Remove reset request loop problem from the "Known Problems or            Issues" section. This problem was isolated and fixed in the            mid-level SCSI driver.     1.5 (8/8/96):         1. Add support for ABP-940U (PCI Ultra) adapter.         2. Add support for IRQ sharing by setting the SA_SHIRQ flag for            request_irq and supplying a dev_id pointer to both request_irq()            and free_irq().         3. In AscSearchIOPortAddr11() restore a call to check_region() which            should be used before I/O port probing.         4. Fix bug in asc_prt_hex() which resulted in the displaying            the wrong data.         5. Incorporate miscellaneous Asc Library bug fixes and new microcode.         6. Change driver versioning to be specific to each Linux sub-level.         7. Change statistics gathering to be per adapter instead of global            to the driver.         8. Add more information and statistics to the adapter /proc file:            /proc/scsi/advansys[0...].         9. Remove 'cmd_per_lun' from the "Known Problems or Issues" list.            This problem has been addressed with the SCSI mid-level changes            made in v1.3.89. The advansys_select_queue_depths() function            was added for the v1.3.89 changes.     1.6 (9/10/96):         1. Incorporate miscellaneous Asc Library bug fixes and new microcode.     1.7 (9/25/96):         1. Enable clustering and optimize the setting of the maximum number            of scatter gather elements for any particular board. Clustering            increases CPU utilization, but results in a relatively larger            increase in I/O throughput.         2. Improve the performance of the request queuing functions by            adding a last pointer to the queue structure.         3. Correct problems with reset and abort request handling that            could have hung or crashed Linux.         4. Add more information to the adapter /proc file:            /proc/scsi/advansys[0...].         5. Remove the request timeout issue form the driver issues list.         6. Miscellaneous documentation additions and changes.     1.8 (10/4/96):         1. Make changes to handle the new v2.1.0 kernel memory mapping            in which a kernel virtual address may not be equivalent to its            bus or DMA memory address.         2. Change abort and reset request handling to make it yet even            more robust.         3. Try to mitigate request starvation by sending ordered requests            to heavily loaded, tag queuing enabled devices.         4. Maintain statistics on request response time.         5. Add request response time statistics and other information to            the adapter /proc file: /proc/scsi/advansys[0...].     1.9 (10/21/96):         1. Add conditionally compiled code (ASC_QUEUE_FLOW_CONTROL) to            make use of mid-level SCSI driver device queue depth flow            control mechanism. This will eliminate aborts caused by a            device being unable to keep up with requests and eliminate            repeat busy or QUEUE FULL status returned by a device.         2. Incorporate miscellaneous Asc Library bug fixes.         3. To allow the driver to work in kernels with broken module            support set 'cmd_per_lun' if the driver is compiled as a            module. This change affects kernels v1.3.89 to present.         4. Remove PCI BIOS address from the driver banner. The PCI BIOS            is relocated by the motherboard BIOS and its new address can            not be determined by the driver.         5. Add mid-level SCSI queue depth information to the adapter            /proc file: /proc/scsi/advansys[0...].     2.0 (11/14/96):         1. Change allocation of global structures used for device            initialization to guarantee they are in DMA-able memory.            Previously when the driver was loaded as a module these            structures might not have been in DMA-able memory, causing            device initialization to fail.     2.1 (12/30/96):         1. In advansys_reset(), if the request is a synchronous reset            request, even if the request serial number has changed, then            complete the request.         2. Add Asc Library bug fixes including new microcode.         3. Clear inquiry buffer before using it.         4. Correct ifdef typo.     2.2 (1/15/97):         1. Add Asc Library bug fixes including new microcode.         2. Add synchronous data transfer rate information to the            adapter /proc file: /proc/scsi/advansys[0...].         3. Change ADVANSYS_DEBUG to be disabled by default. This            will reduce the size of the driver image, eliminate execution            overhead, and remove unneeded symbols from the kernel symbol            space that were previously added by the driver.         4. Add new compile-time option ADVANSYS_ASSERT for assertion            code that used to be defined within ADVANSYS_DEBUG. This            option is enabled by default.     2.8 (5/26/97):         1. Change version number to 2.8 to synchronize the Linux driver            version numbering with other AdvanSys drivers.         2. Reformat source files without tabs to present the same view            of the file to everyone regardless of the editor tab setting            being used.         3. Add Asc Library bug fixes.     3.1A (1/8/98):         1. Change version number to 3.1 to indicate that support for            Ultra-Wide adapters (ABP-940UW) is included in this release.         2. Add Asc Library (Narrow Board) bug fixes.         3. Report an underrun condition with the host status byte set            to DID_UNDERRUN. Currently DID_UNDERRUN is defined to 0 which            causes the underrun condition to be ignored. When Linux defines            its own DID_UNDERRUN the constant defined in this file can be            removed.         4. Add patch to AscWaitTixISRDone().         5. Add support for up to 16 different AdvanSys host adapter SCSI            channels in one system. This allows four cards with four channels            to be used in one system.     3.1B (1/9/98):         1. Handle that PCI register base addresses are not always page            aligned even though ioremap() requires that the address argument            be page aligned.     3.1C (1/10/98):         1. Update latest BIOS version checked for from the /proc file.         2. Don't set microcode SDTR variable at initialization. Instead            wait until device capabilities have been detected from an Inquiry            command.     3.1D (1/21/98):         1. Improve performance when the driver is compiled as module by            allowing up to 64 scatter-gather elements instead of 8.     3.1E (5/1/98):         1. Set time delay in AscWaitTixISRDone() to 1000 ms.         2. Include SMP locking changes.         3. For v2.1.93 and newer kernels use CONFIG_PCI and new PCI BIOS            access functions.         4. Update board serial number printing.         5. Try allocating an IRQ both with and without the SA_INTERRUPT            flag set to allow IRQ sharing with drivers that do not set            the SA_INTERRUPT flag. Also display a more descriptive error            message if request_irq() fails.         6. Update to latest Asc and Adv Libraries.     3.2A (7/22/99):         1. Update Adv Library to 4.16 which includes support for            the ASC38C0800 (Ultra2/LVD) IC.     3.2B (8/23/99):         1. Correct PCI compile time option for v2.1.93 and greater            kernels, advansys_info() string, and debug compile time            option.         2. Correct DvcSleepMilliSecond() for v2.1.0 and greater            kernels. This caused an LVD detection/BIST problem problem            among other things.         3. Sort PCI cards by PCI Bus, Slot, Function ascending order            to be consistent with the BIOS.         4. Update to Asc Library S121 and Adv Library 5.2.     3.2C (8/24/99):         1. Correct PCI card detection bug introduced in 3.2B that            prevented PCI cards from being detected in kernels older            than v2.1.93.     3.2D (8/26/99):         1. Correct /proc device synchronous speed information display.            Also when re-negotiation is pending for a target device            note this condition with an * and footnote.         2. Correct initialization problem with Ultra-Wide cards that            have a pre-3.2 BIOS. A microcode variable changed locations            in 3.2 and greater BIOSes which caused WDTR to be attempted            erroneously with drives that don't support WDTR.     3.2E (8/30/99):         1. Fix compile error caused by v2.3.13 PCI structure change.         2. Remove field from ASCEEP_CONFIG that resulted in an EEPROM            checksum error for ISA cards.         3. Remove ASC_QUEUE_FLOW_CONTROL conditional code. The mid-level            SCSI changes that it depended on were never included in Linux.     3.2F (9/3/99):         1. Handle new initial function code added in v2.3.16 for all            driver versions.     3.2G (9/8/99):         1. Fix PCI board detection in v2.3.13 and greater kernels.         2. Fix comiple errors in v2.3.X with debugging enabled.     3.2H (9/13/99):         1. Add 64-bit address, long support for Alpha and UltraSPARC.            The driver has been verified to work on an Alpha system.         2. Add partial byte order handling support for Power PC and            other big-endian platforms. This support has not yet been            completed or verified.         3. For wide boards replace block zeroing of request and            scatter-gather structures with individual field initialization            to improve performance.         4. Correct and clarify ROM BIOS version detection.     3.2I (10/8/99):         1. Update to Adv Library 5.4.         2. Add v2.3.19 underrun reporting to asc_isr_callback() and            adv_isr_callback().  Remove DID_UNDERRUN constant and other            no longer needed code that previously documented the lack            of underrun handling.     3.2J (10/14/99):         1. Eliminate compile errors for v2.0 and earlier kernels.     3.2K (11/15/99):         1. Correct debug compile error in asc_prt_adv_scsi_req_q().         2. Update Adv Library to 5.5.         3. Add ifdef handling for /proc changes added in v2.3.28.         4. Increase Wide board scatter-gather list maximum length to            255 when the driver is compiled into the kernel.     3.2L (11/18/99):         1. Fix bug in adv_get_sglist() that caused an assertion failure            at line 7475. The reqp->sgblkp pointer must be initialized            to NULL in adv_get_sglist().     3.2M (11/29/99):         1. Really fix bug in adv_get_sglist().         2. Incorporate v2.3.29 changes into driver.     3.2N (4/1/00):         1. Add CONFIG_ISA ifdef code.         2. Include advansys_interrupts_enabled name change patch.         3. For >= v2.3.28 use new SCSI error handling with new function            advansys_eh_bus_reset(). Don't include an abort function            because of base library limitations.         4. For >= v2.3.28 use per board lock instead of io_request_lock.         5. For >= v2.3.28 eliminate advansys_command() and            advansys_command_done().         6. Add some changes for PowerPC (Big Endian) support, but it isn't            working yet.         7. Fix "nonexistent resource free" problem that occurred on a module            unload for boards with an I/O space >= 255. The 'n_io_port' field            is only one byte and can not be used to hold an ioport length more            than 255.     3.3A (4/4/00):         1. Update to Adv Library 5.8.         2. For wide cards add support for CDBs up to 16 bytes.         3. Eliminate warnings when CONFIG_PROC_FS is not defined.     3.3B (5/1/00):         1. Support for PowerPC (Big Endian) wide cards. Narrow cards            still need work.         2. Change bitfields to shift and mask access for endian            portability.     3.3C (10/13/00):         1. Update for latest 2.4 kernel.         2. Test ABP-480 CardBus support in 2.4 kernel - works!         3. Update to Asc Library S123.         4. Update to Adv Library 5.12.     3.3D (11/22/00):         1. Update for latest 2.4 kernel.         2. Create patches for 2.2 and 2.4 kernels.     3.3E (1/9/01):         1. Now that 2.4 is released remove ifdef code for kernel versions            less than 2.2. The driver is now only supported in kernels 2.2,            2.4, and greater.         2. Add code to release and acquire the io_request_lock in            the driver entrypoint functions: advansys_detect and            advansys_queuecommand. In kernel 2.4 the SCSI mid-level driver            still holds the io_request_lock on entry to SCSI low-level drivers.            This was supposed to be removed before 2.4 was released but never            happened. When the mid-level SCSI driver is changed all references            to the io_request_lock should be removed from the driver.         3. Simplify error handling by removing advansys_abort(),            AscAbortSRB(), AscResetDevice(). SCSI bus reset requests are            now handled by resetting the SCSI bus and fully re-initializing            the chip. This simple method of error recovery has proven to work            most reliably after attempts at different methods. Also now only            support the "new" error handling method and remove the obsolete            error handling interface.         4. Fix debug build errors.     3.3F (1/24/01):         1. Merge with ConnectCom version from Andy Kellner which            updates Adv Library to 5.14.         2. Make PowerPC (Big Endian) work for narrow cards and            fix problems writing EEPROM for wide cards.         3. Remove interrupts_enabled assertion function.     3.3G (2/16/01):         1. Return an error from narrow boards if passed a 16 byte            CDB. The wide board can already handle 16 byte CDBs.  I. Known Problems/Fix List (XXX)     1. Need to add memory mapping workaround. Test the memory mapping.        If it doesn't work revert to I/O port access. Can a test be done        safely?     2. Handle an interrupt not working. Keep an interrupt counter in

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -