home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / hard / drivr / zeusscsi / readme < prev    next >
Text File  |  1993-12-21  |  7KB  |  139 lines

  1. Zeus SCSI driver patch program
  2. ------------------------------
  3.  
  4.   This archive contains some programs that attempt to apply a patch to the
  5. Progressive Peripherals Incorporated Zeus SCSI driver.  This patch includes
  6. a patch to use the Wait/Signal mechanism to wait for the completion of SCSI
  7. I/O instead of the "busy-wait" poll method used by the driver.  (These
  8. programs will only patch the 2.98 version of the Zeus ROM.)
  9.  
  10.   I have occasionally had AmigaDOS not recognize a file as an executable
  11. file when I am running with all these patches installed.  I haven't been
  12. able to isolate the problem to determine which program is causing the
  13. problem (i.e. the Zeus patches or the Zeus memory configuration).  If the
  14. command is run again, it usually works fine.
  15.  
  16. ZeusSCSIfix
  17. -----------
  18.  
  19.   This program is a replacement for the SCSIpatch_Zeus program that was
  20. supplied by PPI on their software disk.  This program is called ZeusSCSIfix
  21. to distinguish it from the PPI-supplied patch program.  (The version of
  22. SCSIpatch_Zeus I have is 2.985.)  The ZeusSCSIfix program contains all
  23. the fixes of SCSIpatch_Zeus and adds the following changes:
  24.  
  25.     Use of Wait/Signal to wait for SCSI I/O completion.
  26.  
  27.     Does not allow an invalid io_Command value of 32 (which the SCSIpatch_Zeus
  28.         program appears to do).
  29.  
  30.     Returns the actual data transfer length in the scsi_Actual and
  31.         scsi_SenseActual fields for SCSI-direct commands.  (It doesn't
  32.         set the io_Actual field for reads & writes yet, but that will
  33.         probably be added in the near future.)
  34.  
  35.   
  36.   ZeusSCSIfix is also linked with the SAS/C cback.o startup file, so it can
  37. just be executed from the CLI command line and will detach itself from the
  38. CLI.
  39.  
  40.  
  41. PatchZeus
  42. ---------
  43.  
  44.   This program is an alternative to ZeusSCSIfix.  It currently does not
  45. contain all the fixes applied in SCSIpatch_Zeus (specifically the additional
  46. command ??).  It does include the Wait/Signal fix and the SCSI-direct
  47. scsi_Actual/scsi_SenseActual fix.  One advantage of this program is that it
  48. will install itself as a resident module in the KickMemPtr list.  In this
  49. manner, it will survive a reboot and apply the patches when all the resident
  50. modules are initialized, so the patches will be made to the driver early in
  51. the boot process.
  52.   If you encounter a problem with this program installed and your machine
  53. fails to reboot, you can inhibit the program from initializing during the
  54. boot by holding down the left mouse button.  You can remove the resident
  55. program with the KickLoad program included in this archive.
  56.   This patches several things in the PPSscsi2.device driver:
  57.     o Uses Wait()/Signal() instead of a busy poll to wait for I/O completion.
  58.     o Sets the scsi_Actual and scsi_SenseActual fields for scsidirect I/O
  59.       to the actual length of data transferred.
  60.     o Correctly compares the partition name against any current existing
  61.       devices (i.e. allows you to name partitions on separate disks with the
  62.       same name and should correctly adjust the names of duplicate partitions).
  63.     o Attempts to handle devices that don't respond to a select with ATN
  64.       (i.e. older SCSI devices ignore the ATN and go directly to command
  65.       phase after being selected).
  66.     o OpenDevice will return HFERR_NoBoard if the unit number is >= 100.
  67.     o Scsidirect returns HFERR_BadStatus when the CheckCondition bit was
  68.       set in the Status byte.
  69.     o Synchronous transfer rate of 100usecs is requested instead of 120usecs.
  70.       (I don't know if this will work correctly or not - it appears to
  71.       be working fine on my MXT540SL drive).
  72.   One "bug" that I haven't addressed yet is that if the driver ever needs
  73. to reset the SCSI bus (which it will do under some error conditions), the
  74. synchronous transfer is never re-negotiated.
  75.  
  76. PatchZeus2
  77. ----------
  78.   This program is similar to PatchZeus, except that it initializes later
  79. in that bootup sequence.  It replaces the interrupt handler and BeginIO()
  80. routines like the PPI patch program, except it does it before AmigaDOS starts.
  81. Like PatchZeus, it will not install the patch if the left mouse button
  82. is down during the startup process.  This patch can be installed with the
  83. PatchZeus program - PatchZeus will apply its patches before the driver
  84. initializes (fixing a couple of problems in the initialization code) and
  85. PatchZeus2 will replace the interrupt handler and BeginIO() code after the
  86. driver has initialized.
  87.  
  88.  
  89. ConfigMem
  90. ---------
  91.  
  92.   This is another Zeus utility I wrote that will configure the 32 bit memory
  93. (similar to Init040), but is also a resident module program and will add the
  94. 32 bit memory very early in the boot process.  This provides the advantage
  95. of having 32 bit memory available for loading device drivers and library
  96. vectors.  This program is not generalized yet, so it will not work as-is
  97. if you are autoconfiguring any Zeus memory.  It assumes that all the Zeus
  98. memory is going to be added as 32 bit memory.  It also won't work with the
  99. FASTROM option of Init040.  The source is included, so it could be modified
  100. to fit whatever configuration you would like.
  101.   It will attempt to configure memory when it is first run, but since it
  102. doesn't turn off the copyback cache, it won't add the memory correctly if
  103. the copyback cache is enabled.  (It will do it correctly when it runs during
  104. a reboot.)
  105.   Again, if you encounter a problem with this program installed and your
  106. machine fails to reboot, you can inhibit the program from initializing
  107. during the boot by holding down the left mouse button.  You can remove the
  108. resident program with the KickLoad program included in this archive.
  109.   I have noticed that when this program is installed, I will occasionally
  110. get a crash that results in a red screen (which crashes again, and again).
  111. Normally I can just reset the Amiga and recover from it.  If the execbase
  112. is still intact at that point, any resident programs will still remain, but
  113. if the execbase is corrupt, all resident programs are lost.
  114.  
  115.  
  116. KickLoad
  117. --------
  118.  
  119.   This program was originally written to install resident modules into the
  120. KickMemPtr list and to remove the entire KickMemPtr list.  I'm including it
  121. here so the ConfigMem and PatchZeus modules can be removed without requiring
  122. a power-off of the Amiga.  To remove all resident modules, just enter the
  123. command:
  124.     kickload -clear
  125. It should respond with a list of the resident modules it finds and indicate
  126. that they have been removed.
  127.  
  128. ----
  129.   Sources to KickLoad, ConfigMem, and PatchZeus are included, but the other
  130. programs are based on the PPI patch program and I am reluctant to provide
  131. them at this time.
  132.  
  133. Michael
  134. -- 
  135. Michael L. Hitch            INTERNET:  osymh@montana.edu
  136. Computer Consultant            BITNET:  OSYMH@MTSUNIX1.BITNET
  137. Office of Systems and Computing Services
  138. Montana State University    Bozeman, MT    USA
  139.