diff --git a/sys/arch/vax/boot/boot/autoconf.c b/sys/arch/vax/boot/boot/autoconf.c index 09710dcd5d95..eec5d475f531 100644 --- a/sys/arch/vax/boot/boot/autoconf.c +++ b/sys/arch/vax/boot/boot/autoconf.c @@ -1,4 +1,4 @@ -/* $NetBSD: autoconf.c,v 1.16 2002/02/24 01:04:24 matt Exp $ */ +/* $NetBSD: autoconf.c,v 1.17 2002/05/24 21:40:59 ragge Exp $ */ /* * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -164,7 +164,8 @@ scbinit() } scb_vec[0xc0/4].hoppaddr = rtimer; - mtpr(-10000, PR_NICR); /* Load in count register */ + if (vax_boardtype != VAX_BTYP_VXT) + mtpr(-10000, PR_NICR); /* Load in count register */ mtpr(0x800000d1, PR_ICCS); /* Start clock and enable interrupt */ mtpr(20, PR_IPL); diff --git a/sys/arch/vax/boot/boot/consio.c b/sys/arch/vax/boot/boot/consio.c index bc1cd437df78..42683802b4d4 100644 --- a/sys/arch/vax/boot/boot/consio.c +++ b/sys/arch/vax/boot/boot/consio.c @@ -1,4 +1,4 @@ -/* $NetBSD: consio.c,v 1.12 2001/05/04 14:13:50 ragge Exp $ */ +/* $NetBSD: consio.c,v 1.13 2002/05/24 21:40:59 ragge Exp $ */ /* * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -80,6 +80,10 @@ void ka53_rom_putchar(int c); int ka53_rom_getchar(void); int ka53_rom_testchar(void); +void vxt_putchar(int c); +int vxt_getchar(void); +int vxt_testchar(void); + void putchar(int); int getchar(void); int testkey(void); @@ -145,6 +149,12 @@ consinit(void) rom_getc = 0x20040044; /* 537133124 */ break; + case VAX_BTYP_VXT: + put_fp = vxt_putchar; + get_fp = vxt_getchar; + test_fp = vxt_testchar; + break; + case VAX_BTYP_630: ka630_consinit(); break; @@ -265,3 +275,34 @@ void ka53_consinit(void) get_fp = ka53_rom_getchar; test_fp = ka53_rom_testchar; } + +static volatile int *vxtregs = (int *)0x200A0000; + +#define CH_SR 1 +#define CH_DAT 3 +#define SR_TX_RDY 0x04 +#define SR_RX_RDY 0x01 + +void +vxt_putchar(int c) +{ + while ((vxtregs[CH_SR] & SR_TX_RDY) == 0) + ; + vxtregs[CH_DAT] = c; +} + +int +vxt_getchar(void) +{ + while ((vxtregs[CH_SR] & SR_RX_RDY) == 0) + ; + return vxtregs[CH_DAT]; +} + +int +vxt_testchar(void) +{ + if ((vxtregs[CH_SR] & SR_RX_RDY) == 0) + return 0; + return vxtregs[CH_DAT]; +} diff --git a/sys/arch/vax/boot/boot/devopen.c b/sys/arch/vax/boot/boot/devopen.c index 8f18f083512e..2b53fd5203ab 100644 --- a/sys/arch/vax/boot/boot/devopen.c +++ b/sys/arch/vax/boot/boot/devopen.c @@ -1,4 +1,4 @@ -/* $NetBSD: devopen.c,v 1.9 2001/05/01 13:08:09 ragge Exp $ */ +/* $NetBSD: devopen.c,v 1.10 2002/05/24 21:40:59 ragge Exp $ */ /* * Copyright (c) 1997 Ludd, University of Lule}, Sweden. * All rights reserved. @@ -175,6 +175,10 @@ devopen(f, fname, file) csrbase = 0x20000000; break; + case VAX_BTYP_VXT: + nexaddr = 0; + csrbase = bootrpb.csrphy; + break; default: nexaddr = 0; /* No map regs */ csrbase = 0x20000000; diff --git a/sys/arch/vax/boot/boot/if_ze.c b/sys/arch/vax/boot/boot/if_ze.c index f3db40925b09..ab0d55eb1e55 100644 --- a/sys/arch/vax/boot/boot/if_ze.c +++ b/sys/arch/vax/boot/boot/if_ze.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_ze.c,v 1.10 2000/05/20 13:30:03 ragge Exp $ */ +/* $NetBSD: if_ze.c,v 1.11 2002/05/24 21:40:59 ragge Exp $ */ /* * Copyright (c) 1998 James R. Maynard III. All rights reserved. * @@ -97,8 +97,11 @@ zeopen(struct open_file *f, int adapt, int ctlr, int unit, int part) } /* Get our Ethernet address */ - if (vax_boardtype == VAX_BTYP_49) { - nisa_rom = (u_long *)0x27800000; + if (vax_boardtype == VAX_BTYP_49 || vax_boardtype == VAX_BTYP_VXT) { + if (vax_boardtype == VAX_BTYP_VXT) + nisa_rom = (u_long *)0x20040028; /* XXX */ + else + nisa_rom = (u_long *)0x27800000; for (i=0; i