jim@haring.UUCP (02/15/84)
Subject: autoconf botch with multiple UBA's Index: /usr/sys/vax/autoconf.c Description: The autoconfiguration code tries to use structures assigned per UBA if it finds one, even if the system has not been configured for those UBA's, causing illegal references and panic on boot. Repeat-By: Try booting a system configured with only one UBA on a machine which has more. Fix: The code in autoconf.c/probenexus() around "case NEX_UBA?" should look something like: ........ case NEX_UBA3: printf("uba%d at tr%d\n", numuba, nexnum); if(numuba >= MAXNUBA){ printf("%d uba's", numuba); goto unsupp; } if(numuba >= NUBA){ printf("uba%d", numuba); goto unconfig; } #if VAX780 if (cpu == VAX_780) setscbnex(ubaintv[numuba]); ......... You can then throw the following code in autoconf.c/unifind() away too, as the situation is now handled by the code above: #if defined(VAX_750) if (cpu == VAX_750) printf("More than 2 UBA's not supported\n"); else #endif Another (small) point, the existing code will always print uba? at trX uba? not configured for each extra UBA found, where ? remains the same each time. A solution would be to have another (local) count of physical UBA's found, "numuba" is the count of those found and configured. The same goes for MBA counts. Jim McKie Centrum voor Wiskunde en Informatica, Amsterdam ..mcvax!jim