[comp.bugs.4bsd] 4.3 BSD only supports 4MBAs

rick@seismo.CSS.GOV (Rick Adams) (03/17/87)

Index:	sys/vax/autoconf.c 4.3BSD

Description:
	4.3 BSD only supports 4 MBAs.
Repeat-By:
	Get a lot of MBAs and try and configure them.
Fix:
	Apply the following patch. This will support 6 MBAS. For more than
	that, you must make similar changes. The changes are straightforward.
	Finding the places to change is a bit of a treasure hunt.

*** /tmp/,RCSt1024908	Tue Mar 17 14:43:24 1987
--- /sys/vax/locore.s	Thu Feb 19 19:21:53 1987
***************
*** 145,150 ****
--- 145,154 ----
  	PANIC("wtimo");
  
  #if NMBA > 0
+ SCBVEC(mba5int):
+ 	PUSHR; incl _intrcnt+I_MBA5; pushl $5; brb 1f
+ SCBVEC(mba4int):
+ 	PUSHR; incl _intrcnt+I_MBA4; pushl $4; brb 1f
  SCBVEC(mba3int):
  	PUSHR; incl _intrcnt+I_MBA3; pushl $3; brb 1f
  SCBVEC(mba2int):

*** /tmp/,RCSt1024908	Tue Mar 17 14:43:31 1987
--- /sys/vax/autoconf.c	Wed Feb 25 18:08:57 1987
***************
*** 58,66 ****
   * as necessary.
   */
  #if NMBA > 0
! int	(*mbaintv[4])() =	{ Xmba0int, Xmba1int, Xmba2int, Xmba3int };
! #if NMBA > 4
! 	Need to expand the table for more than 4 massbus adaptors
  #endif
  #endif
  #if defined(VAX780) || defined(VAX8600)
--- 58,72 ----
   * as necessary.
   */
  #if NMBA > 0
! int	(*mbaintv[6])() =	{ Xmba0int, Xmba1int, Xmba2int, Xmba3int ,Xmba4int, Xmba5int};
! #if NMBA > 6
! 	These sources only support 6 massbus adaptors.  The limit 
! 	can be found in the following places:
! 		the above table.
! 		autoconf.c
! 		locore.s
! 		../vaxmba/mbavar.h
! 		/usr/src/etc/config/mkglue.c
  #endif
  #endif
  #if defined(VAX780) || defined(VAX8600)

*** /tmp/,RCSt1024939	Tue Mar 17 14:44:36 1987
--- /sys/vaxmba/mbavar.h	Tue Feb 24 14:58:54 1987
***************
*** 137,143 ****
  int	nummba;
  #if NMBA > 0
  struct	mba_hd mba_hd[NMBA];
! extern	Xmba0int(), Xmba1int(), Xmba2int(), Xmba3int();
  
  extern	struct	mba_device mbdinit[];
  extern	struct	mba_slave mbsinit[];
--- 137,143 ----
  int	nummba;
  #if NMBA > 0
  struct	mba_hd mba_hd[NMBA];
! extern	Xmba0int(), Xmba1int(), Xmba2int(), Xmba3int(), Xmba4int(), Xmba5int();
  
  extern	struct	mba_device mbdinit[];
  extern	struct	mba_slave mbsinit[];

*** /tmp/,RCSt1025056	Tue Mar 17 14:48:29 1987
--- /usr/src/etc/config/mkglue.c	Tue Feb 24 13:45:54 1987
***************
*** 111,117 ****
  
  static	char *vaxinames[] = {
  	"clock", "cnr", "cnx", "tur", "tux",
! 	"mba0", "mba1", "mba2", "mba3",
  	"uba0", "uba1", "uba2", "uba3"
  };
  static	struct stdintrs {
--- 111,117 ----
  
  static	char *vaxinames[] = {
  	"clock", "cnr", "cnx", "tur", "tux",
! 	"mba0", "mba1", "mba2", "mba3", "mba4", "mba5",
  	"uba0", "uba1", "uba2", "uba3"
  };
  static	struct stdintrs {