Subject: Re: asc_vsbus.c: the 64K DMA problem
To: None <port-vax@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-vax
Date: 09/11/2002 13:09:44
>>> By some reasom MAXPHYS has been 63k on VAX since day one [...]
>> Fuzzy memory [says] that it comes from 16-bit transfer counts for
>> unibus devices ([...]) cropped back a little bit to catch small
>> negative values.
> The minphys()/MAXPHYS definitions don't have any comments.

The more I think about it the more certain I am that I've seen
something somewhere that said that's the reason for it.

Grepping the NetBSD kernel source tree for "egative" turns up few
enough hits for it to be feasible for a human to read them all.  Doing
something similar on a BSD tree might find it, if I'm not totally
hallucinating.  (You also might try other source trees; I've worked
with at least three and I think four different BSD source trees - 4.1c,
4.2, mtXinu 4.3+NFS, and I think real 4.3 as well.)

> Another reason I can think of is that the map registers were handled
> in a resource map, that couldn't use map 0.  With 1k pages that would
> be 63k MAXPHYS.  But that really do not match how things were
> implemented.

Also doesn't match my memory, though I'm now beginning to doubt it in
this respect. :-)

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B