Subject: Driver for DKB Ferret SCSI-II card
To: None <amiga@NetBSD.ORG, linux-680x0@vger.rutgers.edu>
From: ENV_REALNAME <fugue@killzone.spc.uchicago.edu>
List: amiga
Date: 10/13/1995 12:21:50
  Hello all.

  I'm writing to the list in the hopes that SOMEONE will take
pity on me and help me with my dilemma.  You see, a long time 
ago, I was a happy 1200 owner running LINUX.  Then I got the
wild notion to replace my IDE drive with a huge (1.2 gig) SCSI-II
drive.

  Now I'm UNIXless.

  Apparently, no driver exists for my particular configuration.
This strikes me as a bit odd, since I'm sure I'm not the only
person on the planet who owns this card (...or am I?).  Anyway,
before I get down on my knees and grovel, here's my setup:

A1200, DKB Cobra accelerator with 68030@50MHz w/MMU, 25MHz FPU,
2 Megs CHIP, 8 Megs 70ns FAST ram.  And the DKB Ferret SCSI-II
expansion card for the cobra board.

  Now for the grovelling part:  No one I know around here owns an
amiga, so I have no way whatsoever to do this even if I wanted to,
because I'd need a system with a running kernel in order to recompile.
So, here's the thing:  I'd DESPERATELY like someone to attempt to
write a driver for this beast, so I can get some flavor of UNIX up
and running.  Daniel Widenfalk in the NetBSD camp had said he'd do
it, but I haven't heard from him in almost 3 months, and he seems to
have disappeared.

  I can supply whoever wants to try this with the specs on the card's/
chips' behavior.  In fact, it's included at the end of this missive.
I realize I'm asking someone to ddo a kernel recompile without actually
having access to the hardware to test the code.  For your trouble, I'd
be willing to, say, send you the money to buy the 12-pack of beer I'd
buy you if you lived down the street from me.  I'm just a poor college
studentt/amiga user who really misses his UNIX setup, and would be
forever grateful to whosoever would be willing to take this task on.
You can have my firstborn.  I promise. :)

Please reply if you're interested!
Thanks,
mark C. Langston

BEGIN BOARD SPECS:
------------------
>From fugue@ccp.spc.uchicago.edu Wed, 9 Aug 95 21:35:53
   with BSMTP id 9033; Wed, 09 Aug 95 21:29:22 CDT
 (UCLA/Mail V1.500 M-JNET8108-8108-70); Wed, 09 Aug 95 21:23:09 CST
 <01HTVVQNM1Y88Y5QQC@ecl.psu.edu>; Wed, 9 Aug 1995 22:22:32 EDT
Date: Wed, 09 Aug 1995 22:22:32 -0400 (EDT)
From: D6B@PSUECL.BITNET
Subject: Re: FAS246
To: fugue@DURA.SPC.UCHICAGO.EDU
Message-id: <01HTVVQNNE6A8Y5QQC@ecl.psu.edu>
MIME-version: 1.0
Content-type: TEXT/PLAIN; CHARSET=US-ASCII
Content-transfer-encoding: 7BIT

DKB Ferret Hardware Description
===============================

Uses FAS246 (pretty much identical to FAS216, NCR53C94, and others. a
couple extra registers, but they can be safely ignored)

The FAS246 requires DMA. The Ferret, however, uses PIO in the form of
pseudo-DMA transfers (in other words, the SCSI chip can't tell it from real
DMA). The mode that's used is the alternate DMA mode - using this mode
ensures that we can safely transfer 8 bytes after seeing DREQ go active.
(Don't try using the 'normal' mode; it won't work at all).

The SCSI stuff starts at offset $10000 from the start of autoconfig (all
offsets henceforth will be relative to that autoconfig+$10000 base).

The FAS is address at 0, with each 8-bit register (there are no 16-bit
registers) located at 0, 4, 8, 12, ...

The pseuod-DMA access location is at offset $80. This can be addressed as a
16-bit word or a 32-bit longword (longword accesses are broken down by
hardware into 2 16-bit accesses). Note that during DMA usage, *no* FAS
registers can be accessed! (Register accesses look like DMA cycles). That
implies that in your interrupt handler, you must check the control register
interrupt-pending bit (described below) *before* accessing any FAS registers.

The control register (not part of the FAS, but the Ferret) is a byte
register at offset $100:

For writes:

Bit 6 Master interupt enable
Bit 5 Power down control (POD on Fas246) - always set to zero
Bits 4-0 reserved (unused)

For reads:

Bit 7 DREQ status.
Bit 6 Interupt pending

NOTE: Bits 6 isleared on reads.

Interrupt level 2 is used.
Manufacturer=2012
Product=18

This is the bare bones. If you need more help I can give you some code
snippets from the AmigaOS driver. I could also give you source to the Amax
driver (which is really simple, almost brain-dead :))

Dan