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

📄 ibmmca.txt

📁 linux 内核源代码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   1) Finally, after some 3.1Beta-releases, the 3.1 release. Sorry, for       the delayed release, but it was not finished with the release of       Kernel 2.2.0.   - Michael Lang      Feb 10, 1999 (v3.1)   1) Added a new commandline parameter called 'bypass' in order to bypass      every integrated subsystem SCSI-command consequently in case of      troubles.   2) Concatenated read_capacity requests to the harddisks. It gave a lot      of troubles with some controllers and after I wanted to apply some      extensions, it jumped out in the same situation, on my w/cache, as like       on D. Weinehalls' Model 56, having integrated SCSI. This gave me the       decisive hint to move the code-part out and declare it global. Now      it seems to work far better and more stable. Let us see what      the world thinks of it...   3) By the way, only Sony DAT-drives seem to show density code 0x13. A      test with a HP drive gave right results, so the problem is vendor-      specific and not a problem of the OS or the driver.   - Michael Lang      Feb 18, 1999 (v3.1d)   1) The abort command and the reset function have been checked for       inconsistencies. From the logical point of thinking, they work      at their optimum, now, but as the subsystem does not answer with an      interrupt, abort never finishes, sigh...   2) Everything, that is accessed by a busmaster request from the adapter      is now declared as global variable, even the return-buffer in the      local checking phase. This assures, that no accesses to undefined memory      areas are performed.   3) In ibmmca.h, the line unchecked_isa_dma is added with 1 in order to      avoid memory-pointers for the areas higher than 16MByte in order to      be sure, it also works on 16-Bit Microchannel bus systems.   4) A lot of small things have been found, but nothing that endangered the      driver operations. Just it should be more stable, now.   - Michael Lang         Feb 20, 1999 (v3.1e)   1) I took the warning from the Linux Kernel Hackers Guide serious and       checked the cmd->result return value to the done-function very carefully.      It is obvious, that the IBM SCSI only delivers the tsb.dev_status, if      some error appeared, else it is undefined. Now, this is fixed. Before      any SCB command gets queued, the tsb.dev_status is set to 0, so the       cmd->result won't screw up Linux higher level drivers.   2) The reset-function has slightly improved. This is still planed for       abort. During the abort and the reset function, no interrupts are       allowed. This is however quite hard to cope with, so the INT-status      register is read. When the interrupt gets queued, one can find its      status immediately on that register and is enabled to continue in the      reset function. I had no chance to test this really, only in a bogus       situation, I got this function running, but the situation was too much      worse for Linux :-(, so tests will continue.   3) Buffers got now consistent. No open address mapping, as before and      therefore no further troubles with the unassigned memory segmentation      faults that scrambled probes on 95XX series and even on 85XX series,      when the kernel is done in a not so perfectly fitting way.   4) Spontaneous interrupts from the subsystem, appearing without any      command previously queued are answered with a DID_BAD_INTR result.   5) Taken into account ZP Gus' proposals to reverse the SCSI-device      scan order. As it does not work on Kernel 2.1.x or 2.2.x, as proposed      by him, I implemented it in a slightly derived way, which offers in       addition more flexibility.   - Michael Lang   Apr 23, 2000 (v3.2pre1)   1) During a very long time, I collected a huge amount of bug reports from      various people, trying really quite different things on their SCSI-      PS/2s. Today, all these bug reports are taken into account and should be      mostly solved. The major topics were:      - Driver crashes during boottime by no obvious reason.      - Driver panics while the midlevel-SCSI-driver is trying to inquire        the SCSI-device properties, even though hardware is in perfect state.      - Displayed info for the various slot-cards is interpreted wrong.      The main reasons for the crashes were two:      1) The commands to check for device information like INQUIRY,          TEST_UNIT_READY, REQUEST_SENSE and MODE_SENSE cause the devices	 to deliver information of up to 255 bytes. Midlevel drivers offer	 1024 bytes of space for the answer, but the IBM-SCSI-adapters do	 not accept this, as they stick quite near to ANSI-SCSI and report	 a COMMAND_ERROR message which causes the driver to panic. The main	 problem was located around the INQUIRY command. Now, for all the	 mentioned commands, the buffersize sent to the adapter is at 	 maximum 255 which seems to be a quite reasonable solution. 	 TEST_UNIT_READY gets a buffersize of 0 to make sure that no 	 data is transferred in order to avoid any possible command failure.      2) On unsuccessful TEST_UNIT_READY, the mid-level driver has to send         a REQUEST_SENSE in order to see where the problem is located. This	 REQUEST_SENSE may have various length in its answer-buffer. IBM	 SCSI-subsystems report a command failure if the returned buffersize	 is different from the sent buffersize, but this can be suppressed by	 a special bit, which is now done and problems seem to be solved.   2) Code adaption to all kernel-releases. Now, the 3.2 code compiles on       2.0.x, 2.1.x, 2.2.x and 2.3.x kernel releases without any code-changes.   3) Commandline-parameters are recognized again, even under Kernel 2.3.x or      higher.   - Michael Lang      April 27, 2000 (v3.2pre2)   1) Bypassed commands get read by the adapter by one cycle instead of two.      This increases SCSI-performance.   2) Synchronous datatransfer is provided for sure to be 5 MHz on older      SCSI and 10 MHz on internal F/W SCSI-adapter.   3) New commandline parameters allow to force the adapter to slow down while      in synchronous transfer. Could be helpful for very old devices.   - Michael Lang      June 2, 2000 (v3.2pre5)   1) Added Jim Shorney's contribution to make the activity indicator      flashing in addition to the LED-alphanumeric display-panel on      models 95A. To be enabled to choose this feature freely, a new      commandline parameter is added, called 'activity'.   2) Added the READ_CONTROL bit for test_unit_ready SCSI-command.   3) Added some suppress_exception bits to read_device_capacity and      all device_inquiry occurrences in the driver code.   4) Complaints about the various KERNEL_VERSION implementations are      taken into account. Every local_LinuxKernelVersion occurrence is      now replaced by KERNEL_VERSION, defined in linux/version.h.       Corresponding changes were applied to ibmmca.h, too. This was a      contribution to all kernel-parts by Philipp Hahn.   - Michael Lang      July 17, 2000 (v3.2pre8)   A long period of collecting bug reports from all corners of the world   now lead to the following corrections to the code:   1) SCSI-2 F/W support crashed with a COMMAND ERROR. The reason for this       was that it is possible to disable Fast-SCSI for the external bus.      The feature-control command, where this crash appeared regularly, tried      to set the maximum speed of 10MHz synchronous transfer speed and that      reports a COMMAND ERROR if external bus Fast-SCSI is disabled. Now,      the feature-command probes down from maximum speed until the adapter       stops to complain, which is at the same time the maximum possible      speed selected in the reference program. So, F/W external can run at      5 MHz (slow-) or 10 MHz (fast-SCSI). During feature probing, the       COMMAND ERROR message is used to detect if the adapter does not complain.   2) Up to now, only combined busmode is supported, if you use external      SCSI-devices, attached to the F/W-controller. If dual bus is selected,      only the internal SCSI-devices get accessed by Linux. For most       applications, this should do fine.    3) Wide-SCSI-addressing (16-Bit) is now possible for the internal F/W      bus on the F/W adapter. If F/W adapter is detected, the driver      automatically uses the extended PUN/LUN <-> LDN mapping tables, which      are now new from 3.2pre8. This allows PUNs between 0 and 15 and should      provide more fun with the F/W adapter.   4) Several machines use the SCSI: POS registers for internal/undocumented      storage of system relevant info. This confused the driver, mainly on      models 9595, as it expected no onboard SCSI only, if all POS in      the integrated SCSI-area are set to 0x00 or 0xff. Now, the mechanism      to check for integrated SCSI is much more restrictive and these problems      should be history.   - Michael Lang             July 18, 2000 (v3.2pre9)   This develop rather quickly at the moment. Two major things were still   missing in 3.2pre8:   1) The adapter PUN for F/W adapters has 4-bits, while all other adapters      have 3-bits. This is now taken into account for F/W.   2) When you select CONFIG_IBMMCA_SCSI_ORDER_STANDARD, you should       normally get the inverse probing order of your devices on the SCSI-bus.      The ANSI device order gets scrambled in version 3.2pre8!! Now, a new      and tested algorithm inverts the device-order on the SCSI-bus and      automatically avoids accidental access to whatever SCSI PUN the adapter       is set and works with SCSI- and Wide-SCSI-addressing.   - Michael Lang   July 23, 2000 (v3.2pre10 unpublished)    1) LED panel display supports wide-addressing in ibmmca=display mode.   2) Adapter-information and autoadaption to address-space is done.   3) Auto-probing for maximum synchronous SCSI transfer rate is working.   4) Optimization to some embedded function calls is applied.   5) Added some comment for the user to wait for SCSI-devices being probed.   6) Finished version 3.2 for Kernel 2.4.0. It least, I thought it is but...   - Michael Lang      July 26, 2000 (v3.2pre11)   1) I passed a horrible weekend getting mad with NMIs on kernel 2.2.14 and      a model 9595. Asking around in the community, nobody except of me has      seen such errors. Weird, but I am trying to recompile everything on      the model 9595. Maybe, as I use a specially modified gcc, that could      cause problems. But, it was not the reason. The true background was,      that the kernel was compiled for i386 and the 9595 has a 486DX-2.       Normally, no troubles should appear, but for this special machine,      only the right processor support is working fine!   2) Previous problems with synchronous speed, slowing down from one adapter       to the next during probing are corrected. Now, local variables store      the synchronous bitmask for every single adapter found on the MCA bus.   3) LED alphanumeric panel support for XX95 systems is now showing some      alive rotator during boottime. This makes sense, when no monitor is       connected to the system. You can get rid of all display activity, if      you do not use any parameter or just ibmmcascsi=activity, for the       harddrive activity LED, existent on all PS/2, except models 8595-XXX.      If no monitor is available, please use ibmmcascsi=display, which works      fine together with the linuxinfo utility for the LED-panel.   - Michael Lang      July 29, 2000 (v3.2)   1) Submission of this driver for kernel 2.4test-XX and 2.2.17.   - Michael Lang      December 28, 2000 (v3.2d / v4.0)   1) The interrupt handler had some wrong statement to wait for. This      was done due to experimental reasons during 3.2 development but it      has shown that this is not stable enough. Going back to wait for the      adapter to be not busy is best.   2) Inquiry requests can be shorter than 255 bytes of return buffer. Due      to a bug in the ibmmca_queuecommand routine, this buffer was forced      to 255 at minimum. If the memory address, this return buffer is pointing      to does not offer more space, invalid memory accesses destabilized the      kernel.   3) version 4.0 is only valid for kernel 2.4.0 or later. This is necessary      to remove old kernel version dependent waste from the driver. 3.2d is      only distributed with older kernels but keeps compatibility with older      kernel versions. 4.0 and higher versions cannot be used with older       kernels anymore!! You must have at least kernel 2.4.0!!   4) The commandline argument 'bypass' and all its functionality got removed      in version 4.0. This was never really necessary, as all troubles were      based on non-command related reasons up to now, so bypassing commands      did not help to avoid any bugs. It is kept in 3.2X for debugging reasons.   5) Dynamical reassignment of ldns was again verified and analyzed to be      completely inoperational. This is corrected and should work now.   6) All commands that get sent to the SCSI adapter were verified and      completed in such a way, that they are now completely conform to the      demands in the technical description of IBM. Main candidates were the      DEVICE_INQUIRY, REQUEST_SENSE and DEVICE_CAPACITY commands. They must      be transferred by bypassing the internal command buffer of the adapter      or else the response can be a random result. GET_POS_INFO would be more      safe in usage, if one could use the SUPRESS_EXCEPTION_SHORT, but this      is not allowed by the technical references of IBM. (Sorry, folks, the      model 80 problem is still a task to be solved in a different way.)   7) v3.2d is still hold back for some days for testing, while 4.0 is       released.   - Michael Lang      January 3, 2001 (v4.0a)

⌨️ 快捷键说明

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