Guru ROM
 connects to: Other
Guru ROM
Guru rom V6.16
Hi Res Version, Guru ROM
- 910 x 528, 89K
Hi Res version, Guru rom V6.16
- 4032 x 3024, 9,266K
Image of installation disk
- 2092 x 2194, 836K

GuruROM v6

The Guru ROM is a third party ROM upgrade written by Ralph Babel (a long term contractor for GVP) providing replacement driver software for all GVP Series II SCSI interfaces and the Commodore A2091/A590 SCSI interfaces.  The driver provides improved performance and transfer speeds, bug fixes, work arounds for bugs in the 33C93A, along with the A3000 and A4000 24-bit DMA handling, and overall better support for modern SCSI devices.  This includes the GVP 68030/68040 Combo/G-Force accelerator products, and also the GVP A1208 trapdoor module.

The driver is sold as a kit; a ROM in an adapter.  Three versions of the adapter have been produced.  The first version was two controller-specific adapters with a 32K (27C256) EPROM - one for GVP boards, one for C= boards.  The second (latest) version supports both controllers with one adapter.  It has a jumper to select the matching adapter image from the 64K (27C512) EPROM, and is loosely referred to as the omni-adapter.  All adapters have a custom logic GAL to permit the driver code (32K in approximate size) to be read into the system within a board-provided 16K address space.
Significant Versions:
- Supports SCSI I & II Async & Sync negotiated command sets.
- Fully Supports Disconnect/Reconnect (DC/RC)
- Has workarounds for all known 33C93A revision bugs (versions -03 to -08).
- Supports driver-based >16MB buffered DMA copy-up by the CPU (no DMA Mask limiter required)
- Fully compatible with the C= HD_SCSI_CMD/SCSI Direct command structure
- Robust support tools, including non-standard 68K accelerator cache support, per-unit DC/RC toggle, DMA limiter/transfer control, and enhanced removable media support.
- Adds support for the TD_64 API, allowing newer file systems that support >4GB SCSI media to address the larger disk media via this new API.
- Existing adapter owners may burn this version to EPROM and use on their older adapters, if desired.
- Only minor adjustments after 6.11. No documentation available on any interim release(s), although the 14Mhz 33C93A clock hacks on the C= controllers appear in this period.
- Identical to v6.14 but has additional native support defaults for 14Mhz DMAC hacks on the A2091/A590.
- Is the current release version on the current combined adapter.
The driver name is omniscsi.device, and the version reports v1.x (v1.16 for the current version).  This is due to the code being designed as a combination high and low level driver, in which only one layer's version is reported to the OS. 
Known issues:
1) Physically, the adapter(s) may not clear the shielding plate within the A590.  It may require modification or removal of that plate.
2) The A2091/A590 by default drive the 33C93A at 7Mhz.  The driver expects this.  A jumper/DIP switch is therefore set to indicate a 14Mhz 33C93A SCSI chip clocking modification has been done to the C= controllers.  An undocumented (by C=) 3-pin jumper mod applies to the A2091 (J201), but a more intricate trace cut and jumper wires are needed on the A590 to synthesize the 14Mhz clock and connect to the 33C93A.  The GVP boards provide a 3-pin jumper for 14Mhz 33C93A clocking, and many are already set for 14Mhz operation if there is a 3.14+ or 4.x FastROM present.
3) A3000/A4000 Operation - Zorro II DMA to ChipRAM is default disabled when a 68030 is NOT detected in these systems due to bugs that may may manifest depending on the Super Buster revision and/or the presence of some older revision A3640 and/or other 68040/68060 accelerator cards.  The GVPSCSICtrl tool in the GuruROM support tools can be called to enable ChipDMA for testing, and used during system startup to enable it during boot if there are no problems found.
4) All memory in the system located in the AutoConfig Zorro II FastRAM range ($200000-9FFFFF) must support DMA for these controllers.  GuruROM does not overcome this limitation.
5) On all systems with a 68020-68060 32-bit CPU and 32-bit RAM which is mapped >16MB (including A3000/A4000) - Some 16-bit FastRAM, which is 24-bit DMA compatible, and preferably on the card (if GVP HC8/HD8), is highly suggested for best performance.
6) Proper SCSI termination (at the most distant points of the SCSI bus (cable) becomes very important with the potentially higher transfer rates of Sync SCSI negotiation.
7) Disconnect/Reconnect (DC/RC) and Synchronous SCSI (Sync) - One or both of these features are typically disabled in the RDB (boot block) of many systems by the default controller prep software.  Tools are provided to manually enable these features with a target device, of which can also be added to your startup-sequence once testing confirms stable operation.  Additional tools can modify boot block settings to always enable these features.  Use with care as they may present problems if the disk media is moved or transferred to another system or controller.

HDToolBox from Amiga OS 3.1.4 is suggested to handle large disk partitions (>2GB) and large media (>4GB).  It does not have the option to enable Sync in the boot block.  It is suggested to use the GuruROM support tools to enable Sync manually with a target device to test before updating the boot block permenantly with the rdbCtrl tool.  On existing systems, DC/RC may be turned off by some prep tools.  DC/RC only matters when there is more than just the controller and one SCSI device.

Important C= and GVP Controller Jumpers:

JP5-2 - Open for 7Mhz 33C93A clock (i.e. unmodified J201)
JP5-2 - Short for 7Mhz 33C93A clock (i.e. J201 trace cut, 1 & 3 connected)
DIP 1-3 Open for 7Mhz
DIP 1-3 Closed for 14Mhz (clock rework on PCB is required)
GVP Series II SCSI on HC/HC8/HD8 and Acclerators
SCSI only and SCSI+RAM Zorro Expansion: J2 - 33C93A Clock, 1/2 - 7Mhz; 2/3 - 14Mhz (expected/default)
ID Jumpers: If the ID jumper block is present (few early HC's, most HC8's), J10 or J11 shorted indicates 7Mhz 33C93A operation. Otherwise, 14Mhz operation is assumed in all other cases.  Some early revision cards had problems with J10 being detected, so J11 was also used.  J12* (shorted) toggles the sending of the Sync negotation defined in the SCSI protocol.  Some older and poorly designed devices hang on the query.  On <=6.14, it doesn't send it by default (overrides global with the jumper, or per ID with a GuruROM tool option during boot). On 6.16 the command is sent by default, but disabled with the jumper (global) or by device ID with the GuruROM tool.  Boot block of the device (if written) can also override jumper setting.  GuruROM tool will override current devcie setting at any time.
GVP G-Force and A530 Accelerators are already set for default 14Mhz clock of the 33C93A and require no changes.  The original Combo-030 boards with surface-mount CPU/FPU clock the SCSI chip at 7Mhz, and there is no option to select, nor modify that design.
68030: Default settings of CN14 and CN15 (if present) are for 14Mhz
68040: Default settings of CN11 and CN12 are for 14Mhz
A1208 - The default settings are for 14Mhz clock.
Historical: The first versions of GuruROM were produced for the GVP Series II, and the adapter only supported that product line.  Later, an adapter was built to support the A2091/A590 (replacing the 6.x and 7.0 ROMs).  It used a 27C256 EPROM.  SpeedGeek built the Omni adapter with the C=/GVP jumper and the ROM required became the 27C512.  An unauthorized 3rd party cloned one of the earlier adapters during a period of adapter unavailability, and it consumes ~2x the space of the legitimate adapter.

Ralph Babel maintains the latest general release version of the ROM, 6.14 as of writing, on his website and it may be burned into ROM and used on the official adapters.  The v6.16 sold on the Omni adapter has no functional changes that affect performance, only a defaults settings change (more agressive) with regard to Sync SCSI negotation, but it may have problems if a device on the bus at boot time doesn't like the (SCSI standard) device query for Sync.  If the device on the SCSI bus does not like negotation command, you may want to revert back to 6.14 which takes a more conservative approach if no jumper is avalable on your host adapter.

* - Action item: Need to confirm that J12 (GVP HC8) and a DIP/jumper on the C= units toggle the default Sync behavior.  Jumpers not available on other models so default global behavior can not be altered for propblem devices.  Switch back to 6.14 (safer query) if this occurrs.
Page contributors: Alan W. Rateliff, II, Robert Miranda (GVP Tech Support), Takahasi Kasiko
Updated: 5/4/2019 . Added: 9/25/2005