General SCSI Device for 2090 / 2091 boards V1.0 ------------------------------------------ ATTENTION: the archive as distributed contains binaries for the 2090 and the 2091 devices. They have been compiled as indicated in the Makefile, this is with 68020 and 68881 options enabled. Thus this binaries won't run on a plain 68000 amiga !!! What's supported: - - - - - - - - - o Autorecognition of direct access and sequential access devices. This enables normal CMD_READ and CMD_WRITE operation for direct access AND sequential access devices. o TD_PROTSTATUS works by really querying the unit, so it should work with removable media, that can be write protected. o Fully supported SCSIDirect commands. (The whole device is built around an scsi-direct executor) o SCSI units are mapped directly into device units (no offset 3 like the 2090 hddisk.device did) What's not supported and never will be - - - - - - - - - - - - - - - - - - - - o Reselection. Since this "feature" seems to be the major pain of the current 2091 scsi device, I don't want to ruin the image of the 2091 any further. The 2091 is a great board and it really deserves a stable device. Besides I foresee major difficulties to do that on the 2090, since its DMA circuit can't be stopped that easily as the 2091s... o LUNs. If someone really needs this, I might enable to chose one LUN per unit (instead of default 0). If you want to have as many LUNs as possible, rewrite the device, you have the source:-)) (You'll probably have to move try_unit() from Init() to Open() in that case). o Support of quick IO for commands requiring IO. Since *all* IO is done by the scsi-direct executor task, message passing including waiting for the executed message is necessary, so quick IO isn't possible. o Support for another compiler than gcc. (grin:-) You have to force people into their luck sometimes:-)) What might be supported in the future - - - - - - - - - - - - - - - - - - - o RDSK boot. This will probably be implemented (I certainly WON'T implement the 2090 cyl-0 format!) as soon as I get CHH's rdsk-library. o Full support for removable media. The device already carries the information along, whether a particular unit contains removable media. I didn't like the idea of periodically checking all connected RMB-units for a medium-change, but if this is really needed by some of you, I might consider it... Possible bugs - - - - - - - The device is so new, that there certainly are bugs in it. It has been tested on the 2090 (that's the controller it was written for) quite heavily. The 2091 part is brand new, and I still got NO documentation at all on those 2091 registers, I just took some 2091-executables and disassembled them to look, how those programs access it. It seems to work so far... Both devices have not been tested under DMA contention. I guess this wouldn't hurt the 2091, but it certainly WILL the 2090. If you have a partition, that you're not too concerned, whether you blow it or not, try it out with an overscan 4bitplane screen, and tell me what happenes:-)) You can reach me at the following address: mwild@iiic.ethz.ch (that's in Switzerland:-)) -Markus Wild Thanks go to: ------------ o Richard M. Stallman for GCC. o Chris Weber for his disassembly of hddisk.device, this really helped finding out how to do some weird things on the 2090... o Chris Haller for the rdsk-library. This will be incorporated into the next release of the device, allowing autoboot from rdsk information. o Urs Schaltegger & DRECOM for the direct link to Commodore and providing me with important material like the Technical Reference Manual. DISCLAIMER: and as always, this software is provided "as is", ie. I don't garantee you that it works, nor do I garantee that it won't crash your whole partitions, erase all your data.. and so on, you're completely at your own!! Using this device automatically implies that you accept this disclaimer!