UDA-50 and 3-Com Ethernet on the same Unibus

Steve Grandi grandi at noao.UUCP
Mon Mar 4 07:47:44 AEST 1985


There is a problem with 4.2BSD if you have a 3-Com Ethernet card on
the same Unibus as a UDA-50 and you are using either the new uda
driver from dave at RIACS or the one from DEC.  These uda drivers and the
ec (3-Com) driver both grab Unibus memory for themselves during
autoconfiguration (the uda driver needs to find out what kind of disks
are attached to the UDA while the ec driver needs to map the internal
memory on the 3-Com board into Unibus space). Unfortunately, the 3-Com 
card is very finicky about the Unibus memory it wants to grab and if ec0
is configured after uda0, the ec driver dies with "ecprobe: cannot
reserve uba addresses".  Since uda0 is a "controller"  and ec0 is merely
a "device", uda0 will ALWAYS be configured before ec0.  I understand that 
the "right" fix to this problem is being worked on at Berkeley, but until 
4.3 (or whatever) is released a kludge is in order. 

It turns out that if one transposes two blocks of code in /sys/vax/autoconf.c,
"devices" will be configured before "controllers" and "slaves" and the 
3-Com driver will get first crack at the Unibus and everything will work.  
In the routine unifind, place the (long!) for loop
	for (um = ubminit; udp = um->um_driver; um++) {
		...
	}
(with the comment "Check each unibus mass storage controller....")
after the for loop
	for (ui = ubdinit; udp = ui->ui_driver; ui++) {
		...
	}
(with the comment "Now look for non-mass storage peripherals.")

-- 
Steve Grandi, National Optical Astronomy Observatories, Tucson, AZ, 602-325-9228
UUCP:  {allegra,arizona,astrovax,decvax,hao,ihnp4,lbl-csam,seismo}  !noao!grandi
Arpa:  noao!grandi at lbl-csam



More information about the Comp.unix.wizards mailing list