Better 4/100 support.

This commit is contained in:
pk 1995-03-01 21:09:19 +00:00
parent b199d3272d
commit c897fc5127
8 changed files with 57 additions and 25 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC,v 1.4 1995/01/25 05:35:07 cgd Exp $
# $NetBSD: GENERIC,v 1.5 1995/03/01 21:11:43 pk Exp $
# Kernel for Theo's wimpy sparcstation IPC
@ -31,6 +31,7 @@ options KERNFS # kernel data-structure filesystem
#options UMAPFS # uid/gid remapping filesystem
#options LFS # Log-based filesystem (still experimental)
#options PORTAL # portal filesystem (still experimental)
options CD9660 # ISO 9660 + Rock Ridge file system
# Networking options
options INET
@ -46,7 +47,7 @@ options LKM
# Options for SPARCstation hardware
options COMPAT_SUNOS # compatibility with SunOS binaries
config netbsd root nfs swap nfs
config netbsd swap generic
mainbus0 at root
cpu0 at mainbus0
@ -61,15 +62,19 @@ auxreg0 at mainbus0
clock0 at mainbus0
clock0 at obio0 addr 0xf2000000
oclock0 at obio0 addr 0xf3000000
oclock0 at obio0 addr 0x03000000 # 4/100
memreg0 at mainbus0
memreg0 at obio0 addr 0xf4000000
memreg0 at obio0 addr 0x04000000 # 4/100
timer0 at mainbus0
timer0 at obio0 addr 0xef000000
zs0 at mainbus0
zs0 at obio0 addr 0xf1000000 level 12 flags 0x103
zs0 at obio0 addr 0x01000000 level 12 flags 0x103 # 4/100
zs1 at mainbus0
zs1 at obio0 addr 0xf0000000 level 12 flags 0x103
zs1 at obio0 addr 0x00000000 level 12 flags 0x103 # 4/100
zs2 at obio0 addr 0xe0000000 level 12 flags 0x103
# FSBE/S or sun4m
@ -92,6 +97,7 @@ le* at sbus? slot ? offset ?
le0 at obio0 addr 0xf9000000 level 6
ie0 at obio0 addr 0xf6000000 level 6
ie0 at obio0 addr 0x06000000 level 6 # 4/100
ie1 at vmes0 addr 0xffe88000 level 5 vect 0x75
ie2 at vmes0 addr 0xff31ff02 level 5 vect 0x76
ie3 at vmes0 addr 0xff35ff02 level 5 vect 0x77

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC_SCSI3,v 1.4 1995/01/25 05:35:08 cgd Exp $
# $NetBSD: GENERIC_SCSI3,v 1.5 1995/03/01 21:11:46 pk Exp $
# Kernel for Theo's wimpy sparcstation IPC
@ -31,6 +31,7 @@ options KERNFS # kernel data-structure filesystem
#options UMAPFS # uid/gid remapping filesystem
#options LFS # Log-based filesystem (still experimental)
#options PORTAL # portal filesystem (still experimental)
options CD9660 # ISO 9660 + Rock Ridge file system
# Networking options
options INET
@ -46,7 +47,7 @@ options LKM
# Options for SPARCstation hardware
options COMPAT_SUNOS # compatibility with SunOS binaries
config netbsd root nfs swap nfs
config netbsd swap generic
mainbus0 at root
cpu0 at mainbus0
@ -61,15 +62,19 @@ auxreg0 at mainbus0
clock0 at mainbus0
clock0 at obio0 addr 0xf2000000
oclock0 at obio0 addr 0xf3000000
oclock0 at obio0 addr 0x03000000 # 4/100
memreg0 at mainbus0
memreg0 at obio0 addr 0xf4000000
memreg0 at obio0 addr 0x04000000 # 4/100
timer0 at mainbus0
timer0 at obio0 addr 0xef000000
zs0 at mainbus0
zs0 at obio0 addr 0xf1000000 level 12 flags 0x103
zs0 at obio0 addr 0x01000000 level 12 flags 0x103 # 4/100
zs1 at mainbus0
zs1 at obio0 addr 0xf0000000 level 12 flags 0x103
zs1 at obio0 addr 0x00000000 level 12 flags 0x103 # 4/100
zs2 at obio0 addr 0xe0000000 level 12 flags 0x103
# FSBE/S or sun4m
@ -92,6 +97,7 @@ le* at sbus? slot ? offset ?
le0 at obio0 addr 0xf9000000 level 6
ie0 at obio0 addr 0xf6000000 level 6
ie0 at obio0 addr 0x06000000 level 6 # 4/100
ie1 at vmes0 addr 0xffe88000 level 5 vect 0x75
ie2 at vmes0 addr 0xff31ff02 level 5 vect 0x76
ie3 at vmes0 addr 0xff35ff02 level 5 vect 0x77

View File

@ -1,4 +1,4 @@
# $NetBSD: files.sparc.newconf,v 1.24 1995/02/22 21:32:34 pk Exp $
# $NetBSD: files.sparc.newconf,v 1.25 1995/03/01 21:11:50 pk Exp $
# @(#)files.sparc 8.1 (Berkeley) 7/19/93
# sparc-specific configuration info
@ -10,9 +10,9 @@ maxusers 2 8 64
device mainbus at root {}
device obio at mainbus { [addr = 0], [level = -1] }
device vmel at mainbus { [addr = 0], [level = -1], [vect = -1] }
device vmes at mainbus { [addr = 0], [level = -1], [vect = -1] }
device obio at mainbus { [addr = -1], [level = -1] }
device vmel at mainbus { [addr = -1], [level = -1], [vect = -1] }
device vmes at mainbus { [addr = -1], [level = -1], [vect = -1] }
file arch/sparc/dev/obio.c obio vmel vmes
device audio at mainbus

View File

@ -1,4 +1,4 @@
/* $NetBSD: dma.c,v 1.8 1995/02/01 12:37:21 pk Exp $ */
/* $NetBSD: dma.c,v 1.9 1995/03/01 21:09:19 pk Exp $ */
/*
* Copyright (c) 1994 Peter Galbavy. All rights reserved.
@ -97,9 +97,6 @@ dmamatch(parent, vcf, aux)
return (0);
if (ca->ca_bustype == BUS_SBUS)
return (1);
if (cputyp == CPU_SUN4 && ca->ca_bustype == BUS_OBIO &&
cpumod == SUN4_100)
return 0; /* see 4/110 comment in cpu.c */
ra->ra_len = NBPG;
return (probeget(ra->ra_vaddr, 1) != -1);
}
@ -355,7 +352,7 @@ dmaintr(sc)
*sc->sc_dmalen -= trans;
*sc->sc_dmaaddr += trans;
if (*sc->sc_dmalen ||
if (*sc->sc_dmalen == 0 ||
sc->sc_esp->sc_phase != sc->sc_esp->sc_prevphase)
return 0;

View File

@ -1,4 +1,4 @@
/* $NetBSD: esp.c,v 1.18 1995/02/01 12:37:24 pk Exp $ */
/* $NetBSD: esp.c,v 1.19 1995/03/01 21:09:27 pk Exp $ */
/*
* Copyright (c) 1994 Peter Galbavy
@ -226,9 +226,6 @@ espmatch(parent, vcf, aux)
return (0);
if (ca->ca_bustype == BUS_SBUS)
return (1);
if (cputyp == CPU_SUN4 && ca->ca_bustype == BUS_OBIO &&
cpumod == SUN4_100)
return 0; /* see 4/110 comment in cpu.c */
ra->ra_len = NBPG;
return (probeget(ra->ra_vaddr, 1) != -1);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: obio.c,v 1.11 1995/02/01 12:37:26 pk Exp $ */
/* $NetBSD: obio.c,v 1.12 1995/03/01 21:09:35 pk Exp $ */
/*
* Copyright (c) 1993, 1994 Theo de Raadt
@ -131,6 +131,19 @@ busattach(parent, self, args, bustype)
for (cf = cfdata; cf->cf_driver; cf++) {
if (cf->cf_fstate == FSTATE_FOUND)
continue;
if (bustype == BUS_OBIO && cputyp == CPU_SUN4) {
/*
* On the 4/100 obio addresses must be mapped at
* 0x0YYYYYYY, but alias higher up (we avoid the
* alias condition because it causes pmap difficulties)
* XXX: We also assume that 4/[23]00 obio addresses
* must be 0xZYYYYYYY, where (Z != 0)
*/
if (cpumod==SUN4_100 && (cf->cf_loc[0] & 0xf0000000))
continue;
if (cpumod!=SUN4_100 && !(cf->cf_loc[0] & 0xf0000000))
continue;
}
for (p = cf->cf_parents; *p >= 0; p++)
if (self->dv_cfdata == &cfdata[*p]) {
oca.ca_ra.ra_iospace = -1;
@ -138,7 +151,7 @@ busattach(parent, self, args, bustype)
oca.ca_ra.ra_len = 0;
oca.ca_ra.ra_nreg = 1;
tmp = NULL;
if (oca.ca_ra.ra_paddr)
if (oca.ca_ra.ra_paddr != (void *)-1)
tmp = bus_tmp(oca.ca_ra.ra_paddr,
bustype);
oca.ca_ra.ra_vaddr = tmp;
@ -149,7 +162,11 @@ busattach(parent, self, args, bustype)
oca.ca_ra.ra_intr[0].int_vec = -1;
oca.ca_ra.ra_nintr = 1;
oca.ca_ra.ra_name = cf->cf_driver->cd_name;
oca.ca_ra.ra_bp = ca->ca_ra.ra_bp;
if (ca->ca_ra.ra_bp != NULL &&
strcmp(ca->ca_ra.ra_bp->name, "sbus") == 0)
oca.ca_ra.ra_bp = ca->ca_ra.ra_bp + 1;
else
oca.ca_ra.ra_bp = NULL;
oca.ca_bustype = bustype;
if ((*cf->cf_driver->cd_match)(self, cf, &oca) == 0)

View File

@ -1,4 +1,4 @@
/* $NetBSD: zs.c,v 1.23 1995/02/01 12:37:29 pk Exp $ */
/* $NetBSD: zs.c,v 1.24 1995/03/01 21:09:40 pk Exp $ */
/*
* Copyright (c) 1992, 1993
@ -216,9 +216,6 @@ zsmatch(parent, vcf, aux)
return (0);
if (ca->ca_bustype==BUS_MAIN && cputyp!=CPU_SUN4)
return (getpropint(ra->ra_node, "slave", -2) == cf->cf_unit);
if (cf->cf_unit == 2 && cputyp == CPU_SUN4 &&
ca->ca_bustype == BUS_OBIO && cpumod == SUN4_100)
return 0; /* see 4/110 comment in cpu.c */
ra->ra_len = NBPG;
return (probeget(ra->ra_vaddr, 1) != -1);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: autoconf.c,v 1.23 1995/02/16 21:42:50 pk Exp $ */
/* $NetBSD: autoconf.c,v 1.24 1995/03/01 21:18:57 pk Exp $ */
/*
* Copyright (c) 1992, 1993
@ -394,6 +394,18 @@ configure()
for (cf = cfdata; memregcf==NULL && cf->cf_driver; cf++) {
if (cf->cf_driver != &memregcd)
continue;
/*
* On the 4/100 obio addresses must be mapped at
* 0x0YYYYYYY, but alias higher up (we avoid the
* alias condition because it causes pmap difficulties)
* XXX: We also assume that 4/[23]00 obio addresses
* must be 0xZYYYYYYY, where (Z != 0)
* make sure we get the correct memreg cfdriver!
*/
if (cpumod==SUN4_100 && (cf->cf_loc[0] & 0xf0000000))
continue;
if (cpumod!=SUN4_100 && !(cf->cf_loc[0] & 0xf0000000))
continue;
for (p = cf->cf_parents; memregcf==NULL && *p >= 0; p++)
if (cfdata[*p].cf_driver == &obiocd)
memregcf = cf;