SCCS-vsn: sys/vax/vax/autoconf.c 4.15
-/* autoconf.c 4.14 81/02/26 */
+/* autoconf.c 4.15 81/02/26 */
/*
* Configure the system for the current machine.
*/
/*
* Configure the system for the current machine.
*/
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/map.h"
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/map.h"
int nexnum; /* current nexus number */
int dkn; /* number of dk numbers assigned so far */
int nexnum; /* current nexus number */
int dkn; /* number of dk numbers assigned so far */
int (*mbaintv[4])() = { Xmba0int, Xmba1int, Xmba2int, Xmba3int };
int (*mbaintv[4])() = { Xmba0int, Xmba1int, Xmba2int, Xmba3int };
#if VAX780
int (*ubaintv[4])() = { Xua0int, Xua1int, Xua2int, Xua3int };
caddr_t umaddr780[4] = {
#if VAX780
int (*ubaintv[4])() = { Xua0int, Xua1int, Xua2int, Xua3int };
caddr_t umaddr780[4] = {
+#if VAX780
+int c780();
+#endif
+#if VAX750
+int c750();
+#endif
struct percpu percpu[] = {
#if VAX780
struct percpu percpu[] = {
#if VAX780
switch (nexcsr.nex_type) {
case NEX_MBA:
switch (nexcsr.nex_type) {
case NEX_MBA:
if (nummba >= 4) {
printf("5 mba's");
goto unsupp;
if (nummba >= 4) {
printf("5 mba's");
goto unsupp;
printf("mba%d at tr%d\n", nummba, nexnum);
mbafind(nxv, nxp);
nummba++;
printf("mba%d at tr%d\n", nummba, nexnum);
mbafind(nxv, nxp);
nummba++;
+#else
+ printf("mba's");
+ goto unsupp;
+#endif
case NEX_UBA0:
case NEX_UBA1:
case NEX_UBA0:
case NEX_UBA1:
printf("mcr at %x\n", MCR_750);
nxaccess((caddr_t)MCR_750, Nexmap[nexnum]);
printf("mcr at %x\n", MCR_750);
nxaccess((caddr_t)MCR_750, Nexmap[nexnum]);
+ mcraddr[nmcr++] = (struct mcr *)nxv;
+#if NMBA > 0
for (nexnum = 0; nexnum < NNEX750; nexnum++, nxp++, nxv++) {
nxaccess((caddr_t)nxp, Nexmap[nexnum]);
if (badaddr((caddr_t)nxv, 4))
for (nexnum = 0; nexnum < NNEX750; nexnum++, nxp++, nxv++) {
nxaccess((caddr_t)nxp, Nexmap[nexnum]);
if (badaddr((caddr_t)nxv, 4))
mbafind(nxv, nxp);
nummba++;
}
mbafind(nxv, nxp);
nummba++;
}
printf("uba at %x\n", nxp);
nxaccess((caddr_t)nxp, Nexmap[nexnum++]);
unifind((struct uba_regs *)nxv++, (struct uba_regs *)nxp,
printf("uba at %x\n", nxp);
nxaccess((caddr_t)nxp, Nexmap[nexnum++]);
unifind((struct uba_regs *)nxv++, (struct uba_regs *)nxp,
/*
* Find devices attached to a particular mba
* and look for each device found in the massbus
/*
* Find devices attached to a particular mba
* and look for each device found in the massbus
(*mi->mi_driver->md_dkinit)(mi);
}
}
(*mi->mi_driver->md_dkinit)(mi);
}
}
/*
* Fixctlrmask fixes the masks of the driver ctlr routines
/*
* Fixctlrmask fixes the masks of the driver ctlr routines