diff options
Diffstat (limited to 'sys/arch/vax/vsa/vsbus.c')
-rw-r--r-- | sys/arch/vax/vsa/vsbus.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/sys/arch/vax/vsa/vsbus.c b/sys/arch/vax/vsa/vsbus.c index 2c3d8766f17..0137c290cae 100644 --- a/sys/arch/vax/vsa/vsbus.c +++ b/sys/arch/vax/vsa/vsbus.c @@ -1,5 +1,5 @@ -/* $OpenBSD: vsbus.c,v 1.2 1997/05/29 00:05:36 niklas Exp $ */ -/* $NetBSD: vsbus.c,v 1.4 1996/10/13 03:36:17 christos Exp $ */ +/* $OpenBSD: vsbus.c,v 1.3 1997/09/10 12:08:37 maja Exp $ */ +/* $NetBSD: vsbus.c,v 1.6 1997/03/22 23:05:31 ragge Exp $ */ /* * Copyright (c) 1996 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -90,7 +90,7 @@ void vsbus_intr_dispatch __P((int i)); struct confargs *vsbus_devs = NULL; -#ifdef VAX410 /* also: KA420 */ +#ifdef VAX410 struct confargs ka410_devs[] = { /* name intslot intpri intvec intbit ioaddr */ { "dc", 7, 7, 0x2C0, (1<<7), KA410_SER_BASE, @@ -114,6 +114,22 @@ struct confargs ka410_devs[] = { #endif { "" }, }; + +/* + * It would be better if we could use the (provided) system config + * information for each CPU instead of this. + */ +struct confargs ka420_devs[] = { + { "le", 5, 5, 0x250, (1<<5), KA410_LAN_BASE, + KA410_NWA_BASE, 0x00, }, + { "ncr", 1, 1, 0x3F8, (1<<1), KA410_SCS_BASE, + KA410_SCS_DADR, KA410_SCS_DCNT, KA410_SCS_DDIR, + KA410_DMA_BASE, KA410_DMA_SIZE, 0x00, 0x07, }, + { "ncr", 0, 0, 0x3FC, (1<<0), 0x200C0180, + 0x200C01A0, 0x200C01C0, 0x200C01C4, + KA410_DMA_BASE, KA410_DMA_SIZE, 0x00, 0x07, }, + { "" }, +}; #endif #ifdef VAX43 @@ -233,18 +249,21 @@ vsbus_attach(parent, self, aux) printf("\n"); trace (("vsbus_attach()\n")); - printf("vsbus_attach: boardtype = %x\n", vax_boardtype); - switch (vax_boardtype) { - case VAX_BTYP_410: case VAX_BTYP_420: + vsbus_devs = ka420_devs; + break; + + case VAX_BTYP_410: vsbus_devs = ka410_devs; break; case VAX_BTYP_43: case VAX_BTYP_46: case VAX_BTYP_49: +#ifdef VAX43 vsbus_devs = ka43_devs; +#endif break; default: |