[comp.unix.wizards] ProNET network interface on uVAXen

narten@purdue.EDU (03/23/87)

I have a ProNET p1100 Q-bus interface that I want to put on a uVAX II
running 4.3 UNIX. I am using the driver that comes with 4.3, which
works for the UNIBUS version of the interface. According to persons in
technical support at Proteon, the Q-bus and UNIBUS interfaces are the
same, and I should be able to use the same driver. 

Can anyone verify that this is indeed correct? The driver fails during
the configuring process (e.g. vvinit() called at ifconfig time) when
the board fails to pass the digital loopback test. UNIX is finding the
board at autoconf time, so I am sure that either the board is bad, or
the driver isn't 100% compatible.

Thomas Narten
narten@cs.purdue.EDU or {ihnp4, allegra}!purdue!narten

richards@uiucdcsb.UUCP (03/24/87)

I was bitten by this too -- it turns out that the driver is a little sloppy
in not masking off extended address bits for DMA.  The UNIBUS proNET card
pays attention to only 18 address bits, but the Q-bus card is sensitive to
22 address bits.  The integer returned by if_ubainit() in the ifrw_info field
actually contains several fields, which have non-zero bits in the positions
that get pushed into the extended bus addr register of the Q-bus card, giving
bogus DMA addresses. The whole address should be masked to 18 bits for both
UNIBUS and Q-bus systems.  (At least Ultrix 2.1 worked that way -- have later
BSD derivitives used the full 22 bit Q-bus address space?).

In sys/vaxif/if_vv.c, change all references of the form:

	ubainfo = vs->vs_ifuba.ifu_r.ifrw_info;
and
	ubainfo = vs->vs_ifuba.ifu_w.ifrw_info;

to something like

	ubainfo = UBA_ADDRMASK(vs->vs_ifuba.ifu_r.ifrw_info);
or
	ubainfo = UBA_ADDRMASK(vs->vs_ifuba.ifu_w.ifrw_info);

and define this in the top of the file:
	#define UBA_ADDRMASK(i) UBAI_ADDR(i)

(or if your system doesn't have UBAI_ADDR() in sys/vaxuba/ubavar.h, use this)
	#define UBA_ADDRMASK(i) ((int)(i) & 0x3ffff)


Paul Richards	University of Illinois at Urbana-Champaign, Dept of Comp Sci
	UUCP:	{pur-ee,convex,inhp4}!uiucdcs!richards
	ARPA:	richards@b.cs.uiuc.edu