Subject: Re: TK50Z
To: Michael Sokolov <sokolov@alpha.CES.CWRU.Edu>
From: Bertram Barth <bertram@gummo.bbb.sub.org>
List: port-vax
Date: 03/03/1998 05:24:48
Michael Sokolov writes:
[...]
>    I have always been hearing that both MFM and SCSI controllers on KA410
> can DMA only to a fixed buffer and not to arbitrary memory addresses, and
> that this buffer is shared between the two. Allison's assertion that

The 2000's manual clearly states these facts. RTFM.

> HDC9224 can DMA to an arbitrary address within 16 MB (on KA410 that would
> be the entire RAM address space) has first confused me, but then it was
> proposed that HDC9224's internal address counter is not actually used, and
> that there is an external one. To test this theory, I have looked at the
> source for an OS that supports this controller. There are three such OSes:
> VMS, Ultrix, and NetBSD. Since I don't have sources for the first two, I
> have used the third. And sure enough, reverse-engineering of
> sys/arch/vax/vsa/hdc9224.c shows that the internal DMA address registers of

Reading sources is "reverse-engineering" ????

> HDC9224 are always set to all zeros, and the data transfer is always to or
> from a special buffer. Furthermore, reverse-engineering of
> sys/arch/vax/vsa/ncr.c and sys/arch/vax/vsa/vsbus.c shows that the SCSI
> controller is using the same buffer, and there is special logic for
> arbitrating this buffer between the two drivers in
> sys/arch/vax/vsa/vsbus.c. And yes, the size of the buffer is 16 KB and it
> is separate from the main RAM.

Ey, you've seen nothing else but what I've written into these sources.
Away from some mis-understandings this doesn't prove anything.

[...]
>    Bertram was talking about SCSI there, not about MFM. (He has chosen not
> to support MFM on KA42. I promise not to repeat this grave mistake in my
> work.)

You don't understand. Period.

> > [...] dma address is Registers 0/1/2 [...]
>    
>    As I have shown above, these are always initialized to all zeros,
> proving that HDC9224's ability to address 16 MB is not used in BabyVAXen
> and all transfers have to go through a special buffer.

You didn't show anything and you didn't prove anything.
Initializing these registers with zeroes means nothing else but setting
a base-address or base-offset (which happens to be zero) to the HDC9224.
Writing zeroes into these registers is something I decided to do, there's
no need to do it that way. Thus this can't prove anything.

Ciao,
	bertram