Buggfixes for VS 4000/VLC. Basic support for VS4000/90 and MV4000/300.

From Michael Kukat.
This commit is contained in:
ragge 1999-03-26 22:04:07 +00:00
parent e84fe91c51
commit dbc385934b
7 changed files with 67 additions and 27 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC,v 1.44 1999/03/13 15:16:47 ragge Exp $ # $NetBSD: GENERIC,v 1.45 1999/03/26 22:04:07 ragge Exp $
# #
# GENERIC VAX configuration file; all supported devices. # GENERIC VAX configuration file; all supported devices.
# #
@ -12,10 +12,12 @@ options "VAX780"
options "VAX750" options "VAX750"
options "VAX630" # MV II options "VAX630" # MV II
options "VAX650" # MV III, 3600, 3800, 3900 options "VAX650" # MV III, 3600, 3800, 3900
options "VAX670" # VAX 4000/300
options "VAX410" # VS 2000 options "VAX410" # VS 2000
options "VAX43" # VS 3100/76 options "VAX43" # VS 3100/76
options "VAX46" # VS 4000/60 options "VAX46" # VS 4000/60
options "VAX48" # VS 4000 VLC options "VAX48" # VS 4000 VLC
options "VAX49" # VS 4000/90
# Max users on system; this is just a hint # Max users on system; this is just a hint
maxusers 8 maxusers 8
@ -48,10 +50,12 @@ file-system CD9660
options QUOTA options QUOTA
#options FFS_EI # FFS Endian Independant support #options FFS_EI # FFS Endian Independant support
options NFSSERVER options NFSSERVER
options NFS_BOOT_BOOTP,NFS_BOOT_DHCP # Use bootp <> dhcp
options NFS_BOOT_BOOTPARAM # Use the Sun way for netbooting. options NFS_BOOT_BOOTPARAM # Use the Sun way for netbooting.
# WS console uses VT100 terminal emulation # WS console uses VT100 terminal emulation
options WSEMUL_VT100 options WSEMUL_VT100
options WSDISPLAY_DEFAULTSCREENS=8
# System V shared memory & semaphores support. # System V shared memory & semaphores support.
options SYSVMSG options SYSVMSG

View File

@ -1,4 +1,4 @@
# $NetBSD: files.vax,v 1.47 1999/03/13 15:16:47 ragge Exp $ # $NetBSD: files.vax,v 1.48 1999/03/26 22:04:07 ragge Exp $
# #
# new style config file for vax architecture # new style config file for vax architecture
# #
@ -306,11 +306,11 @@ file arch/vax/uba/dh.c dh needs-flag
# These are general files needed for compilation. # These are general files needed for compilation.
file dev/cons.c file dev/cons.c
file dev/cninit.c file dev/cninit.c
file dev/clock_subr.c vax8200|vax410|vax43|vax630|vax46|vax48 file dev/clock_subr.c vax8200|vax410|vax43|vax630|vax46|vax48|vax49
file arch/vax/vax/locore.c file arch/vax/vax/locore.c
file arch/vax/vax/mem.c file arch/vax/vax/mem.c
file arch/vax/vax/clock.c file arch/vax/vax/clock.c
file arch/vax/vax/gencons.c vax8600|vax8200|vax780|vax750|vax630|vax650 file arch/vax/vax/gencons.c vax8600|vax8200|vax780|vax750|vax630|vax650|vax670
file arch/vax/vax/pmap.c file arch/vax/vax/pmap.c
file arch/vax/vax/machdep.c file arch/vax/vax/machdep.c
file arch/vax/vax/ka750.c vax750 file arch/vax/vax/ka750.c vax750
@ -327,7 +327,7 @@ file arch/vax/vax/ka43.c vax43
file arch/vax/vax/ka46.c vax46 file arch/vax/vax/ka46.c vax46
file arch/vax/vax/ka48.c vax48 file arch/vax/vax/ka48.c vax48
file arch/vax/vax/emulate.s vax630|vax650|vax410 file arch/vax/vax/emulate.s vax630|vax650|vax410
file arch/vax/vax/ka650.c vax650 file arch/vax/vax/ka650.c vax650|vax670
file arch/vax/vax/scb.c file arch/vax/vax/scb.c
file arch/vax/vax/conf.c file arch/vax/vax/conf.c
file arch/vax/vax/urem.s file arch/vax/vax/urem.s

View File

@ -1,4 +1,4 @@
/* $NetBSD: clock.c,v 1.26 1999/03/09 12:57:58 ragge Exp $ */ /* $NetBSD: clock.c,v 1.27 1999/03/26 22:04:07 ragge Exp $ */
/* /*
* Copyright (c) 1995 Ludd, University of Lule}, Sweden. * Copyright (c) 1995 Ludd, University of Lule}, Sweden.
* All rights reserved. * All rights reserved.
@ -153,7 +153,7 @@ delay(i)
asm ("1: sobgtr %0, 1b" : : "r" (dep_call->cpu_vups * i)); asm ("1: sobgtr %0, 1b" : : "r" (dep_call->cpu_vups * i));
} }
#if VAX750 || VAX780 || VAX8200 || VAX8600 || VAX8800 || VAX48 #if VAX750 || VAX780 || VAX8200 || VAX8600 || VAX8800 || VAX48 || VAX49
/* /*
* On most VAXen there are a microsecond clock that should * On most VAXen there are a microsecond clock that should
* be used for interval interrupts. Have a generic version here. * be used for interval interrupts. Have a generic version here.

View File

@ -1,4 +1,4 @@
/* $NetBSD: conf.c,v 1.40 1999/03/09 12:57:58 ragge Exp $ */ /* $NetBSD: conf.c,v 1.41 1999/03/26 22:04:07 ragge Exp $ */
/*- /*-
* Copyright (c) 1982, 1986 The Regents of the University of California. * Copyright (c) 1982, 1986 The Regents of the University of California.
@ -177,7 +177,7 @@ struct consdev constab[]={
#else #else
#define NGEN 0 #define NGEN 0
#endif #endif
#if VAX410 || VAX43 || VAX48 #if VAX410 || VAX43 || VAX46 || VAX48 || VAX49
cons_init(dz), /* DZ11-like serial console on VAXstations */ cons_init(dz), /* DZ11-like serial console on VAXstations */
#endif #endif
#if VAX650 || VAX630 #if VAX650 || VAX630

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.c,v 1.34 1999/03/09 12:57:58 ragge Exp $ */ /* $NetBSD: locore.c,v 1.35 1999/03/26 22:04:07 ragge Exp $ */
/* /*
* Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden. * Copyright (c) 1994, 1998 Ludd, University of Lule}, Sweden.
* All rights reserved. * All rights reserved.
@ -139,12 +139,13 @@ start()
vax_boardtype = (vax_cputype<<24) | ((vax_siedata>>24)&0xFF); vax_boardtype = (vax_cputype<<24) | ((vax_siedata>>24)&0xFF);
switch (vax_boardtype) { switch (vax_boardtype) {
#if VAX410 || VAX43 || VAX46 || VAX48 #if VAX410 || VAX43 || VAX46 || VAX48 || VAX49
case VAX_BTYP_420: /* They are very similar */ case VAX_BTYP_420: /* They are very similar */
case VAX_BTYP_410: case VAX_BTYP_410:
case VAX_BTYP_43: case VAX_BTYP_43:
case VAX_BTYP_46: case VAX_BTYP_46:
case VAX_BTYP_48: case VAX_BTYP_48:
case VAX_BTYP_49:
vax_confdata = *(int *)(0x20020000); vax_confdata = *(int *)(0x20020000);
vax_bustype = VAX_VSBUS | VAX_CPUBUS; vax_bustype = VAX_VSBUS | VAX_CPUBUS;
#if VAX410 #if VAX410
@ -164,8 +165,17 @@ start()
if (vax_boardtype == VAX_BTYP_48) if (vax_boardtype == VAX_BTYP_48)
dep_call = &ka48_calls; dep_call = &ka48_calls;
#endif #endif
strcpy(cpu_model, (vax_confdata & 0x80 ? #if VAX49
"MicroVAX " : "VAXstation ")); if (vax_boardtype == VAX_BTYP_49)
dep_call = &ka48_calls;
#endif
if ((dep_call == &ka410_calls ||
dep_call == &ka43_calls) &&
(vax_confdata & 0x80))
strcpy(cpu_model, "MicroVAX ");
else
strcpy(cpu_model, "VAXstation ");
switch (vax_boardtype) { switch (vax_boardtype) {
#if VAX410 #if VAX410
case VAX_BTYP_410: case VAX_BTYP_410:
@ -184,7 +194,12 @@ start()
#endif #endif
#if VAX48 #if VAX48
case VAX_BTYP_48: case VAX_BTYP_48:
strcpy(cpu_model, "VAXstation 4000 VLC"); strcat(cpu_model, "4000 VLC");
break;
#endif
#if VAX49
case VAX_BTYP_49:
strcat(cpu_model, "4000/90");
break; break;
#endif #endif
default: default:
@ -242,6 +257,13 @@ start()
break; break;
} }
break; break;
#endif
#if VAX670
case VAX_BTYP_670:
dep_call = &ka650_calls;
vax_bustype = VAX_UNIBUS | VAX_CPUBUS;
strcpy(cpu_model,"VAX 4000/300");
break;
#endif #endif
default: default:
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: dz_vsbus.c,v 1.9 1999/03/13 15:16:48 ragge Exp $ */ /* $NetBSD: dz_vsbus.c,v 1.10 1999/03/26 22:04:07 ragge Exp $ */
/* /*
* Copyright (c) 1998 Ludd, University of Lule}, Sweden. * Copyright (c) 1998 Ludd, University of Lule}, Sweden.
* All rights reserved. * All rights reserved.
@ -178,28 +178,38 @@ dzcnprobe(cndev)
struct consdev *cndev; struct consdev *cndev;
{ {
extern vaddr_t iospace; extern vaddr_t iospace;
int pri = CN_NORMAL, min = 0;
switch (vax_boardtype) { switch (vax_boardtype) {
case VAX_BTYP_410: case VAX_BTYP_410:
case VAX_BTYP_420: case VAX_BTYP_420:
case VAX_BTYP_43: case VAX_BTYP_43:
case VAX_BTYP_46:
case VAX_BTYP_48:
if (vax_confdata & 0x20) { if (vax_confdata & 0x20) {
cndev->cn_dev = makedev(DZMAJOR, 3); min = 3;
cndev->cn_pri = CN_REMOTE; pri = CN_REMOTE;
} else {
cndev->cn_dev = makedev(DZMAJOR, 0);
cndev->cn_pri = CN_NORMAL;
} }
dz_regs = iospace; break;
ioaccess(iospace, 0x200A0000, 1);
case VAX_BTYP_46:
/* if (vax_confdata & 0x100) */
min = 3;
break;
case VAX_BTYP_49:
case VAX_BTYP_48:
min = 3;
break; break;
default: default:
cndev->cn_pri = CN_DEAD; pri = CN_DEAD;
break; break;
} }
cndev->cn_pri = pri;
if (pri != CN_DEAD) {
cndev->cn_dev = makedev(DZMAJOR, min);
dz_regs = iospace;
ioaccess(iospace, 0x200A0000, 1);
}
} }
void void

View File

@ -1,4 +1,4 @@
/* $NetBSD: ncr.c,v 1.18 1999/03/13 15:16:48 ragge Exp $ */ /* $NetBSD: ncr.c,v 1.19 1999/03/26 22:04:07 ragge Exp $ */
/*- /*-
* Copyright (c) 1996 The NetBSD Foundation, Inc. * Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -126,7 +126,11 @@ si_match(parent, cf, aux)
struct vsbus_attach_args *va = aux; struct vsbus_attach_args *va = aux;
volatile char *si_csr = (char *) va->va_addr; volatile char *si_csr = (char *) va->va_addr;
si_csr[4] = 0xcf; /* This is the way Linux autoprobes the interrupt MK-990321 */
si_csr[12] = 0;
si_csr[16] = 0x80;
si_csr[0] = 0x80;
si_csr[4] = 5; /* 0xcf */
DELAY(100000); DELAY(100000);
va->va_ivec = si_intr; va->va_ivec = si_intr;
return 1; return 1;