I have a general question that perhaps someone can answer, in particular thebajaguy who is familiar with SCSI card development.
And apologies if this is a stupid question. This is not my field of expertise.
I own an A2000 & 2091 SCSI card. I cannot use the 2091 (I have a few scsi devices) since it is incompatible with both my PiStorm A2K and Vampire 500 v2+. My understanding is that it has something to do with neither device supporting bus mastering.
According to the web sites bigbookofamigahardware.com & amiga.resource.cx:
if Zorro-II DMA-capable memory is not available, the driver falls back to programmed I/O transfers
Note: The 2091 does not work even if its onboard ram is disabled. Furthermore, my Amiga does not have any Z2 RAM. So this statement does not seem to be correct.
Questions:
What 'driver' is this referring to?
Would the GuruRom allow the 2091 to function in these cases. I'm assuming not, but I figured why not ask.
Thank-you.
A couple of concepts to point to in hardware, and software:
The A2091 wants to take over the expansion bus (DMA) to transfer to/from memory to FastRAM or ChipRAM. That FastRAM, in a stock system is likely on the A2091 or antother Z2 card. Zorro II memory is, by C= Amiga developer definition, the $0020.0000-009F.FFFF 8M expansion space. ChipRAM is $0000.0000-001F.FFFF (for 2MB, or lower for 1M or 512K depending on the system).
The GVP Series II cards, with the DPRC part, will do the same 24-bit DMA transfer to any other FastRAM card in the expansion bus (or ChipRAM), but it has the unique feature that >if< there is RAM on the card, and that memory is the target, then hidden DMA transfers can be done to that onboard FastRAM memory - the CPU bus is not requested. A note that ChipRAM must still be accessible via DMA if the destination is there.
The one improvement the latter GVP's driver (gvpscsi.device) has is that the onboard FastRAM can be used as a buffer for R/W activities when the target transfer address is >16MB (defined by a mask value of 00FFFFFF). The native GVP driver automatically handles this situation. It allocates a 16K buffer (preferably in FastRAM, fallback ChipRAM) that the DMA controller fills/collects from, with the CPU copying the data to/from the 24-bit DMA inaccessible memory ranges (>16MB range).
The GuruROM is then an evolution of the GVP Series II driver. It has the same basic design, but a more robust feature set, including the sub-driver elements to drive the A2091's DMAC. Although the transfer to onboard A2091 memory (or any 24-bit FastRAM) is not hidden, this still cleans up the issue of the driver transferring to/from popular 32-bit >16MB address ranges on acceerators. The A2091 native driver relies on a poor fallback option, which is to let the filesystem use it's internal buffers, and the DMA_Mask hack to define the memory the card can/cannot access. This fails completely for anything that does SCSI-direct communications.
In both DMA card's cases, if the accelerator product does not support 68000-style bus requests to allow DMA, then no DMA card can operate in the expansion bus. The detail for support for DMA bus masters is in the Amiga Developer documentation, and if the makers of the accelerator cards chose to ignore it, then there's nothing that can be done.
I've never owned, nor tested, the Pi, nor the Vampire, accelerator products, so I have no personal answer to their compatibility or use with Zorro II DMA controllers. What I could suggest is to see if there's a GVP Series I (Impact) card around with a v3.14/v3.15 ROM on it (if you want to autoboot from the card), or just use the Expansion drawer version of that driver, and let the speed of the Pi/Vampire CPU handle the disk I/O. The GVP Series I cards are fully CPU-driven and will seem quite fast - with speeds on par with the speed impact the copy-up process to high memory would incur with one of the DMA cards. They also have a higher chance to be compatible with accelerator products that do not like DMA bus masters.
Hope this helps.
Robert