- Continue on branch merge, incrementally.

- Catch up filename changes escaped to be fixed.
This commit is contained in:
nisimura 1999-05-26 04:23:58 +00:00
parent 12b6c6d04f
commit d7a56fd7fa
10 changed files with 118 additions and 104 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: autoconf.h,v 1.12 1999/04/24 08:01:09 simonb Exp $ */
/* $NetBSD: autoconf.h,v 1.13 1999/05/26 04:23:58 nisimura Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@ -32,8 +32,8 @@
*/
struct confargs {
char *ca_name; /* device name */
int ca_slot; /* CPU "slot" number */
const char *ca_name; /* device name */
int ca_slot; /* CPU "slot" number */
};
typedef void *intr_arg_t; /* pointer to some softc */

View File

@ -1,4 +1,4 @@
/* $NetBSD: dec_3100.c,v 1.11 1999/05/25 04:17:57 nisimura Exp $ */
/* $NetBSD: dec_3100.c,v 1.12 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -89,7 +89,6 @@
#include <pmax/pmax/clockreg.h>
#include <pmax/pmax/turbochannel.h>
#include <pmax/pmax/pmaxtype.h>
#include <pmax/pmax/machdep.h> /* XXXjrs replace with vectors */
#include <pmax/pmax/kn01.h>
@ -106,22 +105,23 @@ void dec_3100_bus_reset __P((void));
void dec_3100_enable_intr
__P ((u_int slotno, int (*handler) __P((intr_arg_t sc)),
intr_arg_t sc, int onoff));
int dec_3100_intr __P((u_int mask, u_int pc,
u_int statusReg, u_int causeReg));
int dec_3100_intr __P((unsigned, unsigned, unsigned, unsigned));
void dec_3100_cons_init __P((void));
void dec_3100_device_register __P((struct device *, void *));
static void dec_3100_errintr __P((void));
void
dec_3100_intr_establish __P((void* cookie, int level,
void dec_3100_intr_establish __P((void* cookie, int level,
int (*handler) __P((intr_arg_t)), intr_arg_t arg));
void dec_3100_intr_disestablish __P((struct ibus_attach_args *ia));
extern unsigned nullclkread __P((void));
extern unsigned (*clkread) __P((void));
extern volatile struct chiptime *mcclock_addr; /* XXX */
extern char cpu_model[];
/*
* Fill in platform struct.
*/
@ -149,8 +149,7 @@ dec_3100_os_init()
*/
mips_hardware_intr = dec_3100_intr;
tc_enable_interrupt = dec_3100_enable_intr; /*XXX*/
mcclock_addr = (volatile struct chiptime *)
MIPS_PHYS_TO_KSEG1(KN01_SYS_CLOCK);
mcclock_addr = (void *)MIPS_PHYS_TO_KSEG1(KN01_SYS_CLOCK);
/* no high resolution timer circuit; possibly never called */
clkread = nullclkread;
@ -220,31 +219,32 @@ dec_3100_enable_intr(slotno, handler, sc, on)
* Handle pmax (DECstation 2100/3100) interrupts.
*/
int
dec_3100_intr(mask, pc, statusReg, causeReg)
dec_3100_intr(mask, pc, status, cause)
unsigned mask;
unsigned pc;
unsigned statusReg;
unsigned causeReg;
unsigned status;
unsigned cause;
{
volatile struct chiptime *c =
(volatile struct chiptime *)MIPS_PHYS_TO_KSEG1(KN01_SYS_CLOCK);
struct clockframe cf;
int temp;
/* handle clock interrupts ASAP */
if (mask & MIPS_INT_MASK_3) {
temp = c->regc; /* XXX clear interrupt bits */
struct clockframe cf;
struct chiptime *clk;
volatile int temp;
clk = (void *)MIPS_PHYS_TO_KSEG1(KN01_SYS_CLOCK);
temp = clk->regc; /* XXX clear interrupt bits */
cf.pc = pc;
cf.sr = statusReg;
cf.sr = status;
hardclock(&cf);
intrcnt[HARDCLOCK]++;
/* keep clock interrupts enabled when we return */
causeReg &= ~MIPS_INT_MASK_3;
cause &= ~MIPS_INT_MASK_3;
}
/* If clock interrupts were enabled, re-enable them ASAP. */
_splset(MIPS_SR_INT_IE | (statusReg & MIPS_INT_MASK_3));
_splset(MIPS_SR_INT_IE | (status & MIPS_INT_MASK_3));
#if NSII > 0
if (mask & MIPS_INT_MASK_0) {
@ -277,7 +277,7 @@ dec_3100_intr(mask, pc, statusReg, causeReg)
dec_3100_errintr();
intrcnt[ERROR_INTR]++;
}
return(MIPS_SR_INT_IE | (statusReg & ~causeReg & MIPS_HARD_INT_MASK));
return (MIPS_SR_INT_IE | (status & ~cause & MIPS_HARD_INT_MASK));
}
void

View File

@ -1,4 +1,4 @@
/* $NetBSD: dec_3max.c,v 1.12 1999/05/25 04:17:57 nisimura Exp $ */
/* $NetBSD: dec_3max.c,v 1.13 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -73,7 +73,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: dec_3max.c,v 1.12 1999/05/25 04:17:57 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: dec_3max.c,v 1.13 1999/05/26 04:23:59 nisimura Exp $");
#include <sys/types.h>
#include <sys/systm.h>
@ -92,7 +92,6 @@ __KERNEL_RCSID(0, "$NetBSD: dec_3max.c,v 1.12 1999/05/25 04:17:57 nisimura Exp $
#include <pmax/pmax/clockreg.h>
#include <pmax/pmax/turbochannel.h>
#include <pmax/pmax/pmaxtype.h>
#include <pmax/pmax/machdep.h> /* XXXjrs replace with vectors */
#include <pmax/pmax/kn02.h>
#include <pmax/pmax/memc.h>
@ -107,8 +106,7 @@ void dec_3max_bus_reset __P((void));
void dec_3max_enable_intr
__P ((u_int slotno, int (*handler) __P((intr_arg_t sc)),
intr_arg_t sc, int onoff));
int dec_3max_intr __P((u_int mask, u_int pc,
u_int statusReg, u_int causeReg));
int dec_3max_intr __P((unsigned, unsigned, unsigned, unsigned));
void dec_3max_cons_init __P((void));
void dec_3max_device_register __P((struct device *, void *));
@ -117,6 +115,9 @@ static void dec_3max_errintr __P((void));
extern unsigned nullclkread __P((void));
extern unsigned (*clkread) __P((void));
extern volatile struct chiptime *mcclock_addr; /* XXX */
extern char cpu_model[];
/*
* Fill in platform struct.
*/
@ -250,22 +251,22 @@ dec_3max_enable_intr(slotno, handler, sc, on)
* Returns spl value.
*/
int
dec_3max_intr(mask, pc, statusReg, causeReg)
dec_3max_intr(mask, pc, status, cause)
unsigned mask;
unsigned pc;
unsigned statusReg;
unsigned causeReg;
unsigned status;
unsigned cause;
{
unsigned i, m;
volatile struct chiptime *c =
(volatile struct chiptime *) MIPS_PHYS_TO_KSEG1(KN02_SYS_CLOCK);
unsigned csr;
int temp;
struct clockframe cf;
static int warned = 0;
unsigned i, m;
unsigned csr;
/* handle clock interrupts ASAP */
if (mask & MIPS_INT_MASK_1) {
struct clockframe cf;
struct chiptime *clk;
volatile int temp;
csr = *(unsigned *)MIPS_PHYS_TO_KSEG1(KN02_SYS_CSR);
if ((csr & KN02_CSR_PSWARN) && !warned) {
warned = 1;
@ -275,18 +276,20 @@ dec_3max_intr(mask, pc, statusReg, causeReg)
printf("WARNING: power supply is OK again\n");
}
temp = c->regc; /* XXX clear interrupt bits */
clk = (void *)MIPS_PHYS_TO_KSEG1(KN02_SYS_CLOCK);
temp = clk->regc; /* XXX clear interrupt bits */
cf.pc = pc;
cf.sr = statusReg;
cf.sr = status;
hardclock(&cf);
intrcnt[HARDCLOCK]++;
/* keep clock interrupts enabled when we return */
causeReg &= ~MIPS_INT_MASK_1;
cause &= ~MIPS_INT_MASK_1;
}
/* If clock interrups were enabled, re-enable them ASAP. */
_splset(MIPS_SR_INT_IE | (statusReg & MIPS_INT_MASK_1));
_splset(MIPS_SR_INT_IE | (status & MIPS_INT_MASK_1));
if (mask & MIPS_INT_MASK_0) {
static int intr_map[8] = { SLOT0_INTR, SLOT1_INTR, SLOT2_INTR,
@ -321,7 +324,7 @@ dec_3max_intr(mask, pc, statusReg, causeReg)
dec_3max_errintr();
}
return(MIPS_SR_INT_IE | (statusReg & ~causeReg & MIPS_HARD_INT_MASK));
return (MIPS_SR_INT_IE | (status & ~cause & MIPS_HARD_INT_MASK));
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: dec_3maxplus.c,v 1.19 1999/05/25 07:37:08 nisimura Exp $ */
/* $NetBSD: dec_3maxplus.c,v 1.20 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -73,7 +73,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: dec_3maxplus.c,v 1.19 1999/05/25 07:37:08 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: dec_3maxplus.c,v 1.20 1999/05/26 04:23:59 nisimura Exp $");
#include <sys/types.h>
#include <sys/systm.h>
@ -97,7 +97,6 @@ __KERNEL_RCSID(0, "$NetBSD: dec_3maxplus.c,v 1.19 1999/05/25 07:37:08 nisimura E
#include <pmax/pmax/clockreg.h>
#include <pmax/pmax/turbochannel.h>
#include <pmax/pmax/pmaxtype.h>
#include <pmax/pmax/machdep.h> /* XXXjrs replace with vectors */
#include <pmax/pmax/kn03.h>
#include <pmax/pmax/memc.h>
@ -117,15 +116,21 @@ void dec_3maxplus_device_register __P((struct device *, void *));
static void dec_3maxplus_errintr __P ((void));
void kn03_wbflush __P((void));
unsigned kn03_clkread __P((void));
extern unsigned (*clkread) __P((void));
/*
* Local declarations
*/
u_long kn03_tc3_imask;
static unsigned latched_cycle_cnt;
void kn03_wbflush __P((void));
unsigned kn03_clkread __P((void));
extern unsigned (*clkread) __P((void));
extern void prom_haltbutton __P((void));
extern volatile struct chiptime *mcclock_addr; /* XXX */
extern char cpu_model[];
/*
* Fill in platform struct.
@ -327,7 +332,7 @@ dec_3maxplus_intr(mask, pc, status, cause)
unsigned cause;
{
static int user_warned = 0;
u_int32_t old_buscycle;
unsigned old_buscycle;
if (mask & MIPS_INT_MASK_4)
prom_haltbutton();

View File

@ -1,4 +1,4 @@
/* $NetBSD: dec_3min.c,v 1.17 1999/05/25 07:37:08 nisimura Exp $ */
/* $NetBSD: dec_3min.c,v 1.18 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -73,7 +73,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: dec_3min.c,v 1.17 1999/05/25 07:37:08 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: dec_3min.c,v 1.18 1999/05/26 04:23:59 nisimura Exp $");
#include <sys/types.h>
@ -99,8 +99,6 @@ __KERNEL_RCSID(0, "$NetBSD: dec_3min.c,v 1.17 1999/05/25 07:37:08 nisimura Exp $
#include <pmax/pmax/turbochannel.h>
#include <pmax/pmax/pmaxtype.h>
#include <pmax/pmax/machdep.h> /* XXXjrs replace with vectors */
#include <pmax/pmax/kmin.h> /* 3min baseboard addresses */
#include <pmax/pmax/memc.h> /* 3min/maxine memory errors */
@ -128,9 +126,21 @@ void dec_3min_mcclock_cpuspeed __P((volatile struct chiptime *mcclock_addr,
int clockmask));
u_long kmin_tc3_imask;
static unsigned latched_cycle_cnt;
void kn02ba_wbflush __P((void));
unsigned kn02ba_clkread __P((void));
extern unsigned (*clkread) __P((void));
extern void prom_haltbutton __P((void));
extern volatile struct chiptime *mcclock_addr; /* XXX */
extern char cpu_model[];
extern int physmem_boardmax;
#ifdef MIPS3
extern u_int32_t mips3_cycle_count __P((void));
#endif
/*
* Fill in platform struct.
@ -392,7 +402,6 @@ dec_3min_intr(cpumask, pc, status, cause)
struct clockframe cf;
struct chiptime *clk;
volatile int temp;
extern u_int32_t mips3_cycle_count __P((void));
clk = (void *)(ioasic_base + IOASIC_SLOT_8_START);
temp = clk->regc; /* XXX clear interrupt bits */
@ -545,20 +554,13 @@ unsigned
kn02ba_clkread()
{
#ifdef MIPS3
extern u_int32_t mips3_cycle_count __P((void));
extern u_long latched_cycle_cnt;
if (CPUISMIPS3) {
u_int32_t mips3_cycles;
mips3_cycles = mips3_cycle_count() - latched_cycle_cnt;
#if 0
/* XXX divides take 78 cycles: approximate with * 41/2048 */
return (mips3_cycles / cpu_mhz);
#else
return((mips3_cycles >> 6) + (mips3_cycles >> 8) +
(mips3_cycles >> 11));
#endif
}
#endif
return 0;

View File

@ -1,4 +1,4 @@
/* $NetBSD: dec_5100.c,v 1.7 1999/05/25 04:17:57 nisimura Exp $ */
/* $NetBSD: dec_5100.c,v 1.8 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -57,8 +57,6 @@
#include <pmax/pmax/turbochannel.h>
#include <pmax/pmax/pmaxtype.h>
#include <pmax/pmax/machdep.h> /* XXXjrs replace with vectors */
#include <pmax/pmax/kn01.h> /* common definitions */
#include <pmax/pmax/kn230.h>
#include <pmax/ibus/ibusvar.h>
@ -74,9 +72,7 @@ void dec_5100_bus_reset __P((void));
void dec_5100_enable_intr
__P ((u_int slotno, int (*handler) __P((intr_arg_t sc)),
intr_arg_t sc, int onoff));
int dec_5100_intr __P((u_int mask, u_int pc,
u_int statusReg, u_int causeReg));
int dec_5100_intr __P((unsigned, unsigned, unsigned, unsigned));
void dec_5100_cons_init __P((void));
void dec_5100_device_register __P((struct device *, void *));
@ -90,6 +86,10 @@ extern void kn230_wbflush __P((void));
extern unsigned nullclkread __P((void));
extern unsigned (*clkread) __P((void));
extern void prom_haltbutton __P((void));
extern volatile struct chiptime *mcclock_addr; /* XXX */
extern char cpu_model[];
/*
@ -115,15 +115,14 @@ dec_5100_os_init()
{
/* set correct wbflush routine for this motherboard */
mips_set_wbflush(kn230_wbflush);
mips_set_wbflush(kn230_wbflush);
/*
* Set up interrupt handling and I/O addresses.
*/
mips_hardware_intr = dec_5100_intr;
tc_enable_interrupt = dec_5100_enable_intr; /*XXX*/
mcclock_addr = (volatile struct chiptime *)
MIPS_PHYS_TO_KSEG1(KN01_SYS_CLOCK);
mcclock_addr = (void *)MIPS_PHYS_TO_KSEG1(KN01_SYS_CLOCK);
/* no high resolution timer circuit; possibly never called */
clkread = nullclkread;
@ -220,16 +219,12 @@ dec_5100_intr_disestablish(struct ibus_attach_args *ia)
* Handle mipsmate (DECstation 5100) interrupts.
*/
int
dec_5100_intr(mask, pc, statusReg, causeReg)
dec_5100_intr(mask, pc, status, cause)
unsigned mask;
unsigned pc;
unsigned statusReg;
unsigned causeReg;
unsigned status;
unsigned cause;
{
volatile struct chiptime *c =
(volatile struct chiptime *)MIPS_PHYS_TO_KSEG1(KN01_SYS_CLOCK);
struct clockframe cf;
int temp;
u_int icsr;
if (mask & MIPS_INT_MASK_4) {
@ -240,22 +235,28 @@ dec_5100_intr(mask, pc, statusReg, causeReg)
#endif
}
icsr = *((volatile u_int *)MIPS_PHYS_TO_KSEG1(KN230_SYS_ICSR));
icsr = *(volatile u_int *)MIPS_PHYS_TO_KSEG1(KN230_SYS_ICSR);
/* handle clock interrupts ASAP */
if (mask & MIPS_INT_MASK_2) {
temp = c->regc; /* XXX clear interrupt bits */
struct clockframe cf;
struct chiptime *clk;
volatile int temp;
clk = (void *)MIPS_PHYS_TO_KSEG1(KN01_SYS_CLOCK);
temp = clk->regc; /* XXX clear interrupt bits */
cf.pc = pc;
cf.sr = statusReg;
cf.sr = status;
hardclock(&cf);
intrcnt[HARDCLOCK]++;
/* keep clock interrupts enabled when we return */
causeReg &= ~MIPS_INT_MASK_2;
cause &= ~MIPS_INT_MASK_2;
}
/* If clock interrupts were enabled, re-enable them ASAP. */
_splset(MIPS_SR_INT_IE | (statusReg & MIPS_INT_MASK_2));
_splset(MIPS_SR_INT_IE | (status & MIPS_INT_MASK_2));
#define CALLINTR(slot, icnt) \
if (tc_slot_info[slot].intr) { \
@ -288,8 +289,7 @@ dec_5100_intr(mask, pc, statusReg, causeReg)
intrcnt[ERROR_INTR]++;
}
return ((statusReg & ~causeReg & MIPS_HARD_INT_MASK) |
MIPS_SR_INT_IE);
return (MIPS_SR_INT_IE | (status & ~cause & MIPS_HARD_INT_MASK));
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: dec_maxine.c,v 1.13 1999/05/25 07:37:08 nisimura Exp $ */
/* $NetBSD: dec_maxine.c,v 1.14 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -73,7 +73,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: dec_maxine.c,v 1.13 1999/05/25 07:37:08 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: dec_maxine.c,v 1.14 1999/05/26 04:23:59 nisimura Exp $");
#include <sys/types.h>
#include <sys/systm.h>
@ -97,7 +97,6 @@ __KERNEL_RCSID(0, "$NetBSD: dec_maxine.c,v 1.13 1999/05/25 07:37:08 nisimura Exp
#include <pmax/pmax/clockreg.h>
#include <pmax/pmax/turbochannel.h>
#include <pmax/pmax/pmaxtype.h>
#include <pmax/pmax/machdep.h> /* XXXjrs replace with vectors */
#include <pmax/pmax/maxine.h> /* baseboard addresses (constants) */
#include <pmax/pmax/memc.h> /* 3min/maxine memory errors */
@ -117,17 +116,21 @@ int dec_maxine_intr __P((unsigned, unsigned, unsigned, unsigned));
void dec_maxine_device_register __P((struct device *, void *));
void dec_maxine_cons_init __P((void));
void kn02ca_wbflush __P((void));
unsigned kn02ca_clkread __P((void));
extern unsigned (*clkread) __P((void));
/*
* local declarations
*/
u_long xine_tc3_imask;
static unsigned latched_cycle_cnt;
void kn02ca_wbflush __P((void));
unsigned kn02ca_clkread __P((void));
extern unsigned (*clkread) __P((void));
extern void prom_haltbutton __P((void));
extern volatile struct chiptime *mcclock_addr; /* XXX */
extern char cpu_model[];
/*
* Fill in platform struct.
*/

View File

@ -1,4 +1,4 @@
/* $NetBSD: mainbus.c,v 1.30 1999/03/25 01:17:53 simonb Exp $ */
/* $NetBSD: mainbus.c,v 1.31 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@ -32,6 +32,7 @@
#include <sys/systm.h>
#include <sys/device.h>
#include <machine/sysconf.h>
#include <machine/autoconf.h>
#include <pmax/pmax/pmaxtype.h>
@ -102,7 +103,7 @@ mbattach(parent, self, aux)
#endif /* NTC */
if (systype == DS_PMAX || systype == DS_MIPSMATE) {
nca.ca_name = "baseboard";
nca.ca_name = platform.iobus;
nca.ca_slot = 0;
config_found(self, &nca, mbprint);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: memc_3max.c,v 1.7 1999/05/20 14:14:39 nisimura Exp $ */
/* $NetBSD: memc_3max.c,v 1.8 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -32,7 +32,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: memc_3max.c,v 1.7 1999/05/20 14:14:39 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: memc_3max.c,v 1.8 1999/05/26 04:23:59 nisimura Exp $");
#include <sys/types.h>
#include <sys/systm.h>
@ -40,7 +40,7 @@ __KERNEL_RCSID(0, "$NetBSD: memc_3max.c,v 1.7 1999/05/20 14:14:39 nisimura Exp $
#include <machine/locore.h> /* wbflush() */
#include <pmax/pmax/kn02.h> /* error-register defs copied into kn03.h */
#include <pmax/pmax/dec_3max_subr.h>
#include <pmax/pmax/memc.h>
/*
* the 3max and 3maxplus have compatible memory subsystems;

View File

@ -1,4 +1,4 @@
/* $NetBSD: memc_3min.c,v 1.4 1999/05/20 14:15:57 nisimura Exp $ */
/* $NetBSD: memc_3min.c,v 1.5 1999/05/26 04:23:59 nisimura Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -45,7 +45,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: memc_3min.c,v 1.4 1999/05/20 14:15:57 nisimura Exp $");
__KERNEL_RCSID(0, "$NetBSD: memc_3min.c,v 1.5 1999/05/26 04:23:59 nisimura Exp $");
/*
* Motherboard memory error contoller used in both
@ -58,7 +58,7 @@ __KERNEL_RCSID(0, "$NetBSD: memc_3min.c,v 1.4 1999/05/20 14:15:57 nisimura Exp $
#include <mips/cpuregs.h>
#include <pmax/pmax/kmin.h>
#include <pmax/pmax/dec_kn02_subr.h>
#include <pmax/pmax/memc.h>
/* forward declarations */