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

📄 advansys.c

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
           linux advansys=0x330,0,0,0,0xdeb2        If the driver is built as a loadable module this variable can be        defined when the driver is loaded. The following insmod command        will set the debug level to one.             insmod advansys.o asc_dbglvl=1         Debugging Message Levels:           0: Errors Only           1: High-Level Tracing           2-N: Verbose Tracing         I don't know the approved way for turning on printk()s to the        console. Here's a program I use to do this. Debug output is        logged in /var/adm/messages.           main()          {                  syscall(103, 7, 0, 0);          }         I found that increasing LOG_BUF_LEN to 40960 in kernel/printk.c        prevents most level 1 debug messages from being lost.     3. ADVANSYS_STATS - Enable statistics (Def: Enabled >= v1.3.0)         Enabling this option adds statistics collection and display        through /proc to the driver. The information is useful for        monitoring driver and device performance. It will add to the        size of the driver execution image and add minor overhead to        the execution of the driver.        Statistics are maintained on a per adapter basis. Driver entry        point call counts and transfer size counts are maintained.        Statistics are only available for kernels greater than or equal        to v1.3.0 with the CONFIG_PROC_FS (/proc) file system configured.        AdvanSys SCSI adapter files have the following path name format:           /proc/scsi/advansys/[0-(ASC_NUM_BOARD_SUPPORTED-1)]        This information can be displayed with cat. For example:           cat /proc/scsi/advansys/0        When ADVANSYS_STATS is not defined the AdvanSys /proc files only        contain adapter and device configuration information.  H. Driver LILO Option      If init/main.c is modified as described in the 'Directions for Adding     the AdvanSys Driver to Linux' section (B.4.) above, the driver will     recognize the 'advansys' LILO command line and /etc/lilo.conf option.     This option can be used to either disable I/O port scanning or to limit     scanning to 1 - 4 I/O ports. Regardless of the option setting EISA and     PCI boards will still be searched for and detected. This option only     affects searching for ISA and VL boards.     Examples:       1. Eliminate I/O port scanning:            boot: linux advansys=              or            boot: linux advansys=0x0       2. Limit I/O port scanning to one I/O port:            boot: linux advansys=0x110       3. Limit I/O port scanning to four I/O ports:            boot: linux advansys=0x110,0x210,0x230,0x330     For a loadable module the same effect can be achieved by setting     the 'asc_iopflag' variable and 'asc_ioport' array when loading     the driver, e.g.           insmod advansys.o asc_iopflag=1 asc_ioport=0x110,0x330     If ADVANSYS_DEBUG is defined a 5th (ASC_NUM_IOPORT_PROBE + 1)     I/O Port may be added to specify the driver debug level. Refer to     the 'Driver Compile Time Options and Debugging' section above for     more information.  I. 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.  J. Known Problems/Fix List (XXX)

⌨️ 快捷键说明

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