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 a replacement driver & software for 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, 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.  For both the GVP and C= noted cards, it addresses the limitations of 24-bit Zorro II DMA in the A3000, A4000, and on all other 32-bit accelerators which place 32-bit memory at addresses >16MB on their cards.

The driver is sold as a kit; a ROM in an adapter.  Three versions of the adapter have been produced.  The first two versions were two controller-specific adapters with a 32K (27C256) EPROM - one for GVP boards, one for C= boards.  The 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:
 
Pre-v6.11
- 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 buffered DMA copy-up by the CPU (no filesystem-based DMA Mask limiter required) to >16MB address ranges.
- 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.
 
v6.11
- Adds support for the TD_64 API, allowing newer file systems that support >4GB SCSI partitioning to address larger disk media via this new API.

v6.12-13 - Undocumented
- Work was done between Ralph Babel and Speedgeek toward the features in v6.14.
 
v6.14
- Existing adapter owners may burn this version to EPROM and use on their older adapters, if desired.
- Support for the 33C93A 14MHz clock hacks for the C= A2091/A590 controllers.
- Ralph makes this version available on his website to download and program into ROM/EPROM.
 
v6.16
- Identical to v6.14, but has additional native support defaults for additional 14Mhz DMAC hacks on the A2091/A590, which are uncommon.
- Default of the boot time command query for Sync compatibility changes (see ID Jumpers below).
- This is the current release version on the current combined (Omni) 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) to provide 14MHz 33C93A clock.  A more intricate trace cut and jumper wires are needed on the A590 to synthesize the 14Mhz clock and connect to the 33C93A.  Many 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.  It can be called during system startup to enable it if there are no problems found during testing.
 
4) All FastRAM in the system which is located in the large AutoConfig Zorro II expansion range ($200000-9FFFFF) must support DMA with these controllers.  GuruROM does not overcome this limitation.
 
5) On all systems with a non-GVP 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 3rd party 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.
 
8) It may be desirable to disable data caching to the Zorro II 8M space (see #5 above) with a 68040 or 68060 CPU if that memory is 16-bit.  A recently discovered (2021) oddity of Zorro II bus behavior testing with these more advanced CPUs found performance hits (50% or more) and possible bus lockups when they attempt multple burst accesses to this slower (and narrower) memory.  Since 16-bit RAM is only used as last-resort FastRAM, and otherwise for DMA buffering (I/O), Mapping this memory region as non-cached by the MMU is suggested.  See the MuLibs documetnation for more info.

HDToolBox from Amiga OS 3.1.4 or later is suggested to handle making 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 provided rdbCtrl tool.  On existing systems, the DC/RC boot block flag may be turned off by other prep tools, but can be re-enabled with individual SCSI devcies with the provided support tools.  Note: The setting of DC/RC only matters when there is more than just the controller and one SCSI device.

 
Important C= and GVP Controller Jumpers (related to GuruROM):

A2091:
JP5-2 - Open for 7Mhz 33C93A clock (i.e. unmodified J201)
JP5-2 - Short for 14Mhz 33C93A clock (i.e. J201 trace cut, pins 1 & 3 joined)
 
A590:
DIP 1-3 Open for 7Mhz
DIP 1-3 Closed for 14Mhz (33C93A's clock input rework on PCB is required)
 
GVP Series II SCSI on HC/HC8/HD8 and Accelerators
 
SCSI only and SCSI+RAM Zorro Expansion: J2 - 33C93A Clock: 1/2 - 7Mhz; 2/3 - 14Mhz (expected/default).  Boards without ID jumpers cannot support the 7MHz setting.
 
ID Jumpers:
 
- J10/J11 - 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 (open/default).  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 SCSI devices could hang on the Sync query.  On omniscsi.device <=v6.14, it doesn't send it by default (overrides this globally with the jumper on, or per ID with a GuruROM tool option used during boot). On v6.16 the command is sent by default (enabled), and the feature is disabled with the jumper on.  In either case, it is toggled by device ID with the GuruROM tool used during boot.  The boot block of the target device (if written as set) can also override the jumper setting for that device.  The GuruROM tool will override current devcie setting at any time.
 
GVP G-Force and A530 Accelerators with PGA-package type CPUs are default set for 14Mhz clocking of the 33C93A and require no changes. 
 

68030 G-Force: Default settings of CN14 and CN15 (if present) are for 14Mhz

68040 G-Force: Default settings of CN11 and CN12 are for 14Mhz
 
The original Combo-030 boards (22/33MHz) with surface-mount CPU/FPU, always clock the SCSI chip at 7Mhz.  There is no option to select, nor modify, that clock design.  Use of GuruROM on these boards yields no performance improvement (i.e. - Sync is not possible) over the v3.x/v4.x FastROM.
 
A1208 - The default settings for the 33C93A are for 14Mhz clock.
 
Historical: The first versions of GuruROM were produced for the GVP Series II ROM socket, and the adapter only supported that product line.  Later, an adapter was built to support the A2091/A590 (replacing the C= 6.x and 7.0 ROMs).  It used a 27C256 EPROM.  SpeedGeek later 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.  That variation consumes ~2x the space of the legitimate adapters.

Ralph Babel maintains the latest general release version of the ROM, v6.14 as of writing, on his website and it may be programed and used on the official adapters.  The v6.16 sold on the Omni adapter has no functional changes that affect performance.  It only has a default 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 there is no jumper avalable to negate the driver's behavior on your host adapter.

* - Action item: Need to confirm that J12 (GVP HC8) and the DIP/jumper on the C= units toggle the default Sync behavior.  Jumpers may not be available on a few revisions of the HC Series II SCSI models, so default global behavior cannot be altered for problem devices.  Switch back to 6.14 (safer query) if this occurrs.
 
Additional OmniSCSICtrl Option notes (a WIP)

omniscsictrl noopendevice - Will make the driver behave more like the A2091 in some cases.
Page contributors: Alan W. Rateliff, II, Robert Miranda (GVP Tech Support), Takahasi Kasiko
Updated: 12/3/2024 . Added: 9/25/2005