Module Name: src
Committed By: matt
Date: Tue Sep 8 17:24:09 UTC 2009
Modified Files:
src/sys/arch/pmax/include [matt-nb5-mips64]: loadfile_machdep.h
tc_machdep.h
src/sys/arch/pmax/pmax [matt-nb5-mips64]: dec_3maxplus.c dec_3min.c
dec_maxine.c machdep.c machdep.h memc.h memc_3max.c memc_3min.c
src/sys/arch/pmax/tc [matt-nb5-mips64]: asc_ioasic.c
Added Files:
src/sys/arch/pmax/conf [matt-nb5-mips64]: GENERIC64 INSTALL64 RAMDISK64
std.pmax64
Log Message:
Enable building LP64 kernels for 3min, maxine, and 3maxplus.
Fix various LP64 bugs.
XXX still invoked via O32 call args
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1.2.1 src/sys/arch/pmax/conf/GENERIC64 \
src/sys/arch/pmax/conf/INSTALL64 src/sys/arch/pmax/conf/RAMDISK64 \
src/sys/arch/pmax/conf/std.pmax64
cvs rdiff -u -r1.6 -r1.6.18.1 src/sys/arch/pmax/include/loadfile_machdep.h
cvs rdiff -u -r1.17 -r1.17.154.1 src/sys/arch/pmax/include/tc_machdep.h
cvs rdiff -u -r1.58 -r1.58.28.1 src/sys/arch/pmax/pmax/dec_3maxplus.c
cvs rdiff -u -r1.60 -r1.60.22.1 src/sys/arch/pmax/pmax/dec_3min.c
cvs rdiff -u -r1.52 -r1.52.28.1 src/sys/arch/pmax/pmax/dec_maxine.c
cvs rdiff -u -r1.223.8.1.2.1 -r1.223.8.1.2.2 src/sys/arch/pmax/pmax/machdep.c
cvs rdiff -u -r1.11 -r1.11.96.1 src/sys/arch/pmax/pmax/machdep.h
cvs rdiff -u -r1.3 -r1.3.154.1 src/sys/arch/pmax/pmax/memc.h
cvs rdiff -u -r1.13 -r1.13.130.1 src/sys/arch/pmax/pmax/memc_3max.c
cvs rdiff -u -r1.10 -r1.10.96.1 src/sys/arch/pmax/pmax/memc_3min.c
cvs rdiff -u -r1.20 -r1.20.18.1 src/sys/arch/pmax/tc/asc_ioasic.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/pmax/include/loadfile_machdep.h
diff -u src/sys/arch/pmax/include/loadfile_machdep.h:1.6 src/sys/arch/pmax/include/loadfile_machdep.h:1.6.18.1
--- src/sys/arch/pmax/include/loadfile_machdep.h:1.6 Mon Apr 28 20:23:31 2008
+++ src/sys/arch/pmax/include/loadfile_machdep.h Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: loadfile_machdep.h,v 1.6 2008/04/28 20:23:31 martin Exp $ */
+/* $NetBSD: loadfile_machdep.h,v 1.6.18.1 2009/09/08 17:24:09 matt Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -35,6 +35,7 @@
#define BOOT_AOUT
#define BOOT_ECOFF
#define BOOT_ELF32
+#define BOOT_ELF64
#define LOAD_KERNEL (LOAD_ALL & ~LOAD_TEXTA)
#define COUNT_KERNEL (COUNT_ALL & ~COUNT_TEXTA)
Index: src/sys/arch/pmax/include/tc_machdep.h
diff -u src/sys/arch/pmax/include/tc_machdep.h:1.17 src/sys/arch/pmax/include/tc_machdep.h:1.17.154.1
--- src/sys/arch/pmax/include/tc_machdep.h:1.17 Tue Feb 29 04:41:59 2000
+++ src/sys/arch/pmax/include/tc_machdep.h Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: tc_machdep.h,v 1.17 2000/02/29 04:41:59 nisimura Exp $ */
+/* $NetBSD: tc_machdep.h,v 1.17.154.1 2009/09/08 17:24:09 matt Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@@ -62,14 +62,14 @@
#include <mips/cpuregs.h> /* defines MIPS_PHYS_TO_KSEG1 */
-typedef int32_t tc_addr_t;
+typedef paddr_t tc_addr_t;
typedef int32_t tc_offset_t;
#define tc_mb() wbflush()
#define tc_wmb() wbflush()
#define tc_syncbus() wbflush() /* XXX how to do this on a DECstation ? */
-#define tc_badaddr(tcaddr) badaddr((void *)(tcaddr), sizeof (u_int32_t))
+#define tc_badaddr(tcaddr) badaddr((void *)(tcaddr), sizeof (uint32_t))
#define TC_DENSE_TO_SPARSE(addr) (addr)
Index: src/sys/arch/pmax/pmax/dec_3maxplus.c
diff -u src/sys/arch/pmax/pmax/dec_3maxplus.c:1.58 src/sys/arch/pmax/pmax/dec_3maxplus.c:1.58.28.1
--- src/sys/arch/pmax/pmax/dec_3maxplus.c:1.58 Thu Jan 3 23:02:24 2008
+++ src/sys/arch/pmax/pmax/dec_3maxplus.c Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: dec_3maxplus.c,v 1.58 2008/01/03 23:02:24 joerg Exp $ */
+/* $NetBSD: dec_3maxplus.c,v 1.58.28.1 2009/09/08 17:24:09 matt Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@@ -106,7 +106,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: dec_3maxplus.c,v 1.58 2008/01/03 23:02:24 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dec_3maxplus.c,v 1.58.28.1 2009/09/08 17:24:09 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -147,7 +147,7 @@
/*
* Local declarations
*/
-static u_int32_t kn03_tc3_imask;
+static uint32_t kn03_tc3_imask;
static unsigned latched_cycle_cnt;
static const int dec_3maxplus_ipl2spl_table[] = {
@@ -167,7 +167,7 @@
void
dec_3maxplus_init()
{
- u_int32_t prodtype;
+ uint32_t prodtype;
platform.iobus = "tcbus";
platform.bus_reset = dec_3maxplus_bus_reset;
@@ -179,7 +179,7 @@
platform.tc_init = dec_3maxplus_tc_init;
/* clear any memory errors */
- *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRADR) = 0;
+ *(uint32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRADR) = 0;
kn03_wbflush();
ioasic_base = MIPS_PHYS_TO_KSEG1(KN03_SYS_ASIC);
@@ -189,24 +189,24 @@
/* calibrate cpu_mhz value */
mc_cpuspeed(ioasic_base+IOASIC_SLOT_8_START, MIPS_INT_MASK_1);
- *(u_int32_t *)(ioasic_base + IOASIC_LANCE_DECODE) = 0x3;
- *(u_int32_t *)(ioasic_base + IOASIC_SCSI_DECODE) = 0xe;
+ *(uint32_t *)(ioasic_base + IOASIC_LANCE_DECODE) = 0x3;
+ *(uint32_t *)(ioasic_base + IOASIC_SCSI_DECODE) = 0xe;
#if 0
- *(u_int32_t *)(ioasic_base + IOASIC_SCC0_DECODE) = (0x10|4);
- *(u_int32_t *)(ioasic_base + IOASIC_SCC1_DECODE) = (0x10|6);
- *(u_int32_t *)(ioasic_base + IOASIC_CSR) = 0x00000f00;
+ *(uint32_t *)(ioasic_base + IOASIC_SCC0_DECODE) = (0x10|4);
+ *(uint32_t *)(ioasic_base + IOASIC_SCC1_DECODE) = (0x10|6);
+ *(uint32_t *)(ioasic_base + IOASIC_CSR) = 0x00000f00;
#endif
/* XXX hard-reset LANCE */
- *(u_int32_t *)(ioasic_base + IOASIC_CSR) |= 0x100;
+ *(uint32_t *)(ioasic_base + IOASIC_CSR) |= 0x100;
/* sanitize interrupt mask */
kn03_tc3_imask = KN03_INTR_PSWARN;
- *(u_int32_t *)(ioasic_base + IOASIC_INTR) = 0;
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK) = kn03_tc3_imask;
+ *(uint32_t *)(ioasic_base + IOASIC_INTR) = 0;
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK) = kn03_tc3_imask;
kn03_wbflush();
- prodtype = *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KN03_REG_INTR);
+ prodtype = *(uint32_t *)MIPS_PHYS_TO_KSEG1(KN03_REG_INTR);
prodtype &= KN03_INTR_PROD_JUMPER;
/* the bit persists even if INTR register is assigned value 0 */
if (prodtype)
@@ -227,10 +227,10 @@
* Reset interrupts, clear any errors from newconf probes
*/
- *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRADR) = 0;
+ *(uint32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRADR) = 0;
kn03_wbflush();
- *(u_int32_t *)(ioasic_base + IOASIC_INTR) = 0;
+ *(uint32_t *)(ioasic_base + IOASIC_INTR) = 0;
kn03_wbflush();
}
@@ -272,7 +272,7 @@
{
unsigned mask;
- switch ((int)cookie) {
+ switch ((uintptr_t)cookie) {
case SYS_DEV_OPT0:
mask = KN03_INTR_TC_0;
break;
@@ -303,10 +303,10 @@
}
kn03_tc3_imask |= mask;
- intrtab[(int)cookie].ih_func = handler;
- intrtab[(int)cookie].ih_arg = arg;
+ intrtab[(uintptr_t)cookie].ih_func = handler;
+ intrtab[(uintptr_t)cookie].ih_arg = arg;
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK) = kn03_tc3_imask;
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK) = kn03_tc3_imask;
kn03_wbflush();
}
@@ -367,12 +367,12 @@
#endif
if (ipending & MIPS_INT_MASK_0) {
int ifound;
- u_int32_t imsk, intr, can_serve, xxxintr;
+ uint32_t imsk, intr, can_serve, xxxintr;
do {
ifound = 0;
- imsk = *(u_int32_t *)(ioasic_base + IOASIC_IMSK);
- intr = *(u_int32_t *)(ioasic_base + IOASIC_INTR);
+ imsk = *(uint32_t *)(ioasic_base + IOASIC_IMSK);
+ intr = *(uint32_t *)(ioasic_base + IOASIC_INTR);
can_serve = intr & imsk;
CHECKINTR(SYS_DEV_SCC0, IOASIC_INTR_SCC_0);
@@ -414,7 +414,7 @@
xxxintr = can_serve & (ERRORS | PTRLOAD);
if (xxxintr) {
ifound = 1;
- *(u_int32_t *)(ioasic_base + IOASIC_INTR)
+ *(uint32_t *)(ioasic_base + IOASIC_INTR)
= intr &~ xxxintr;
}
} while (ifound);
@@ -435,14 +435,15 @@
static void
dec_3maxplus_errintr()
{
- u_int32_t erradr, errsyn, csr;
+ uint32_t erradr, csr;
+ vaddr_t errsyn;
/* Fetch error address, ECC chk/syn bits, clear interrupt */
- erradr = *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRADR);
+ erradr = *(uint32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRADR);
errsyn = MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRSYN);
- *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRADR) = 0;
+ *(uint32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_ERRADR) = 0;
kn03_wbflush();
- csr = *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_CSR);
+ csr = *(uint32_t *)MIPS_PHYS_TO_KSEG1(KN03_SYS_CSR);
/* Send to kn02/kn03 memory subsystem handler */
dec_mtasic_err(erradr, errsyn, csr & KN03_CSR_BNK32M);
@@ -462,7 +463,7 @@
static unsigned
dec_3maxplus_get_timecount(struct timecounter *tc)
{
- return *(u_int32_t*)(ioasic_base + IOASIC_CTR);
+ return *(uint32_t*)(ioasic_base + IOASIC_CTR);
}
static void
Index: src/sys/arch/pmax/pmax/dec_3min.c
diff -u src/sys/arch/pmax/pmax/dec_3min.c:1.60 src/sys/arch/pmax/pmax/dec_3min.c:1.60.22.1
--- src/sys/arch/pmax/pmax/dec_3min.c:1.60 Sat Mar 15 08:50:08 2008
+++ src/sys/arch/pmax/pmax/dec_3min.c Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: dec_3min.c,v 1.60 2008/03/15 08:50:08 tsutsui Exp $ */
+/* $NetBSD: dec_3min.c,v 1.60.22.1 2009/09/08 17:24:09 matt Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@@ -106,7 +106,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: dec_3min.c,v 1.60 2008/03/15 08:50:08 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dec_3min.c,v 1.60.22.1 2009/09/08 17:24:09 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -147,7 +147,7 @@
/*
* Local declarations.
*/
-static u_int32_t kmin_tc3_imask;
+static uint32_t kmin_tc3_imask;
static const int dec_3min_ipl2spl_table[] = {
[IPL_NONE] = 0,
@@ -176,7 +176,7 @@
platform.tc_init = dec_3min_tc_init;
/* clear any memory errors */
- *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_TIMEOUT) = 0;
+ *(uint32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_TIMEOUT) = 0;
kn02ba_wbflush();
ioasic_base = MIPS_PHYS_TO_KSEG1(KMIN_SYS_ASIC);
@@ -184,22 +184,22 @@
ipl2spl_table = dec_3min_ipl2spl_table;
/* enable posting of MIPS_INT_MASK_3 to CAUSE register */
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK) = KMIN_INTR_CLOCK;
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK) = KMIN_INTR_CLOCK;
/* calibrate cpu_mhz value */
mc_cpuspeed(ioasic_base+IOASIC_SLOT_8_START, MIPS_INT_MASK_3);
- *(u_int32_t *)(ioasic_base + IOASIC_LANCE_DECODE) = 0x3;
- *(u_int32_t *)(ioasic_base + IOASIC_SCSI_DECODE) = 0xe;
+ *(uint32_t *)(ioasic_base + IOASIC_LANCE_DECODE) = 0x3;
+ *(uint32_t *)(ioasic_base + IOASIC_SCSI_DECODE) = 0xe;
#if 0
- *(u_int32_t *)(ioasic_base + IOASIC_SCC0_DECODE) = (0x10|4);
- *(u_int32_t *)(ioasic_base + IOASIC_SCC1_DECODE) = (0x10|6);
- *(u_int32_t *)(ioasic_base + IOASIC_CSR) = 0x00000f00;
+ *(uint32_t *)(ioasic_base + IOASIC_SCC0_DECODE) = (0x10|4);
+ *(uint32_t *)(ioasic_base + IOASIC_SCC1_DECODE) = (0x10|6);
+ *(uint32_t *)(ioasic_base + IOASIC_CSR) = 0x00000f00;
#endif
/* sanitize interrupt mask */
kmin_tc3_imask = (KMIN_INTR_CLOCK|KMIN_INTR_PSWARN|KMIN_INTR_TIMEOUT);
- *(u_int32_t *)(ioasic_base + IOASIC_INTR) = 0;
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK) = kmin_tc3_imask;
+ *(uint32_t *)(ioasic_base + IOASIC_INTR) = 0;
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK) = kmin_tc3_imask;
/*
* The kmin memory hardware seems to wrap memory addresses
@@ -228,10 +228,10 @@
* Reset interrupts, clear any errors from newconf probes
*/
- *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_TIMEOUT) = 0;
+ *(uint32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_TIMEOUT) = 0;
kn02ba_wbflush();
- *(u_int32_t *)(ioasic_base + IOASIC_INTR) = 0;
+ *(uint32_t *)(ioasic_base + IOASIC_INTR) = 0;
kn02ba_wbflush();
}
@@ -273,7 +273,7 @@
{
unsigned mask;
- switch ((int)cookie) {
+ switch ((uintptr_t)cookie) {
/* slots 0-2 don't interrupt through the IOASIC. */
case SYS_DEV_OPT0:
mask = MIPS_INT_MASK_0;
@@ -300,14 +300,14 @@
break;
default:
#ifdef DIAGNOSTIC
- printf("warning: enabling unknown intr %x\n", (int)cookie);
+ printf("warning: enabling unknown intr %p\n", cookie);
#endif
return;
}
#if defined(DEBUG)
- printf("3MIN: imask %x, enabling slot %d, dev %p handler %p\n",
- kmin_tc3_imask, (int)cookie, dev, handler);
+ printf("3MIN: imask %x, enabling slot %p, dev %p handler %p\n",
+ kmin_tc3_imask, cookie, dev, handler);
#endif
/*
@@ -320,10 +320,10 @@
*/
/* Set the interrupt handler and argument ... */
- intrtab[(int)cookie].ih_func = handler;
- intrtab[(int)cookie].ih_arg = arg;
+ intrtab[(uintptr_t)cookie].ih_func = handler;
+ intrtab[(uintptr_t)cookie].ih_arg = arg;
/* ... and set the relevant mask */
- switch ((int)cookie) {
+ switch ((uintptr_t)cookie) {
case SYS_DEV_OPT0:
case SYS_DEV_OPT1:
case SYS_DEV_OPT2:
@@ -340,7 +340,7 @@
break;
}
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK) = kmin_tc3_imask;
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK) = kmin_tc3_imask;
kn02ba_wbflush();
}
@@ -362,10 +362,10 @@
{
static int user_warned = 0;
static int intr_depth = 0;
- u_int32_t old_mask;
+ uint32_t old_mask;
intr_depth++;
- old_mask = *(u_int32_t *)(ioasic_base + IOASIC_IMSK);
+ old_mask = *(uint32_t *)(ioasic_base + IOASIC_IMSK);
if (ipending & MIPS_INT_MASK_4)
prom_haltbutton();
@@ -373,11 +373,11 @@
if (ipending & MIPS_INT_MASK_3) {
/* NB: status & MIPS_INT_MASK3 must also be set */
/* masked interrupts are still observable */
- u_int32_t intr, imsk, can_serve, turnoff;
+ uint32_t intr, imsk, can_serve, turnoff;
turnoff = 0;
- intr = *(u_int32_t *)(ioasic_base + IOASIC_INTR);
- imsk = *(u_int32_t *)(ioasic_base + IOASIC_IMSK);
+ intr = *(uint32_t *)(ioasic_base + IOASIC_INTR);
+ imsk = *(uint32_t *)(ioasic_base + IOASIC_IMSK);
can_serve = intr & imsk;
if (intr & IOASIC_INTR_SCSI_PTR_LOAD) {
@@ -394,7 +394,7 @@
turnoff |= IOASIC_INTR_LANCE_READ_E;
if (turnoff)
- *(u_int32_t *)(ioasic_base + IOASIC_INTR) = ~turnoff;
+ *(uint32_t *)(ioasic_base + IOASIC_INTR) = ~turnoff;
if (intr & KMIN_INTR_TIMEOUT) {
kn02ba_errintr();
@@ -416,7 +416,7 @@
/* If clock interrupts were enabled, re-enable them ASAP. */
if (old_mask & KMIN_INTR_CLOCK) {
/* ioctl interrupt mask to splclock and higher */
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK)
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK)
= old_mask &
~(KMIN_INTR_SCC_0|KMIN_INTR_SCC_1 |
IOASIC_INTR_LANCE|IOASIC_INTR_SCSI);
@@ -474,7 +474,7 @@
/* restore entry state */
splhigh();
intr_depth--;
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK) = old_mask;
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK) = old_mask;
_splset(MIPS_SR_INT_IE | (status & ~cause & MIPS_HARD_INT_MASK));
}
Index: src/sys/arch/pmax/pmax/dec_maxine.c
diff -u src/sys/arch/pmax/pmax/dec_maxine.c:1.52 src/sys/arch/pmax/pmax/dec_maxine.c:1.52.28.1
--- src/sys/arch/pmax/pmax/dec_maxine.c:1.52 Thu Jan 3 23:02:25 2008
+++ src/sys/arch/pmax/pmax/dec_maxine.c Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: dec_maxine.c,v 1.52 2008/01/03 23:02:25 joerg Exp $ */
+/* $NetBSD: dec_maxine.c,v 1.52.28.1 2009/09/08 17:24:09 matt Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@@ -106,7 +106,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: dec_maxine.c,v 1.52 2008/01/03 23:02:25 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dec_maxine.c,v 1.52.28.1 2009/09/08 17:24:09 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -145,7 +145,7 @@
/*
* local declarations
*/
-static u_int32_t xine_tc3_imask;
+static uint32_t xine_tc3_imask;
static const int dec_maxine_ipl2spl_table[] = {
[IPL_NONE] = 0,
@@ -174,7 +174,7 @@
/* MAXINE has 1 microsec. free-running high resolution timer */
/* clear any memory errors */
- *(u_int32_t *)MIPS_PHYS_TO_KSEG1(XINE_REG_TIMEOUT) = 0;
+ *(uint32_t *)MIPS_PHYS_TO_KSEG1(XINE_REG_TIMEOUT) = 0;
kn02ca_wbflush();
ioasic_base = MIPS_PHYS_TO_KSEG1(XINE_SYS_ASIC);
@@ -184,19 +184,19 @@
/* calibrate cpu_mhz value */
mc_cpuspeed(ioasic_base+IOASIC_SLOT_8_START, MIPS_INT_MASK_1);
- *(u_int32_t *)(ioasic_base + IOASIC_LANCE_DECODE) = 0x3;
- *(u_int32_t *)(ioasic_base + IOASIC_SCSI_DECODE) = 0xe;
+ *(uint32_t *)(ioasic_base + IOASIC_LANCE_DECODE) = 0x3;
+ *(uint32_t *)(ioasic_base + IOASIC_SCSI_DECODE) = 0xe;
#if 0
- *(u_int32_t *)(ioasic_base + IOASIC_SCC0_DECODE) = (0x10|4);
- *(u_int32_t *)(ioasic_base + IOASIC_DTOP_DECODE) = 10;
- *(u_int32_t *)(ioasic_base + IOASIC_FLOPPY_DECODE) = 13;
- *(u_int32_t *)(ioasic_base + IOASIC_CSR) = 0x00001fc1;
+ *(uint32_t *)(ioasic_base + IOASIC_SCC0_DECODE) = (0x10|4);
+ *(uint32_t *)(ioasic_base + IOASIC_DTOP_DECODE) = 10;
+ *(uint32_t *)(ioasic_base + IOASIC_FLOPPY_DECODE) = 13;
+ *(uint32_t *)(ioasic_base + IOASIC_CSR) = 0x00001fc1;
#endif
/* sanitize interrupt mask */
xine_tc3_imask = 0;
- *(u_int32_t *)(ioasic_base + IOASIC_INTR) = 0;
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK) = xine_tc3_imask;
+ *(uint32_t *)(ioasic_base + IOASIC_INTR) = 0;
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK) = xine_tc3_imask;
kn02ca_wbflush();
sprintf(cpu_model, "Personal DECstation 5000/%d (MAXINE)", cpu_mhz);
@@ -212,10 +212,10 @@
* Reset interrupts, clear any errors from newconf probes
*/
- *(u_int32_t *)MIPS_PHYS_TO_KSEG1(XINE_REG_TIMEOUT) = 0;
+ *(uint32_t *)MIPS_PHYS_TO_KSEG1(XINE_REG_TIMEOUT) = 0;
kn02ca_wbflush();
- *(u_int32_t *)(ioasic_base + IOASIC_INTR) = 0;
+ *(uint32_t *)(ioasic_base + IOASIC_INTR) = 0;
kn02ca_wbflush();
}
@@ -265,7 +265,7 @@
{
unsigned mask;
- switch ((int)cookie) {
+ switch ((uintptr_t)cookie) {
case SYS_DEV_OPT0:
mask = XINE_INTR_TC_0;
break;
@@ -294,16 +294,16 @@
break;
default:
#ifdef DIAGNOSTIC
- printf("warning: enabling unknown intr %x\n", (int)cookie);
+ printf("warning: enabling unknown intr %p\n", cookie);
#endif
return;
}
xine_tc3_imask |= mask;
- intrtab[(int)cookie].ih_func = handler;
- intrtab[(int)cookie].ih_arg = arg;
+ intrtab[(uintptr_t)cookie].ih_func = handler;
+ intrtab[(uintptr_t)cookie].ih_arg = arg;
- *(u_int32_t *)(ioasic_base + IOASIC_IMSK) = xine_tc3_imask;
+ *(uint32_t *)(ioasic_base + IOASIC_IMSK) = xine_tc3_imask;
kn02ca_wbflush();
}
@@ -345,12 +345,12 @@
if (ipending & MIPS_INT_MASK_3) {
int ifound;
- u_int32_t imsk, intr, can_serve, xxxintr;
+ uint32_t imsk, intr, can_serve, xxxintr;
do {
ifound = 0;
- intr = *(u_int32_t *)(ioasic_base + IOASIC_INTR);
- imsk = *(u_int32_t *)(ioasic_base + IOASIC_IMSK);
+ intr = *(uint32_t *)(ioasic_base + IOASIC_INTR);
+ imsk = *(uint32_t *)(ioasic_base + IOASIC_IMSK);
can_serve = intr & imsk;
CHECKINTR(SYS_DEV_DTOP, XINE_INTR_DTOP);
@@ -386,7 +386,7 @@
xxxintr = can_serve & (ERRORS | PTRLOAD);
if (xxxintr) {
ifound = 1;
- *(u_int32_t *)(ioasic_base + IOASIC_INTR)
+ *(uint32_t *)(ioasic_base + IOASIC_INTR)
= intr &~ xxxintr;
}
} while (ifound);
@@ -410,7 +410,7 @@
static uint32_t
dec_maxine_get_timecount(struct timecounter *tc)
{
- return *(u_int32_t *)MIPS_PHYS_TO_KSEG1(XINE_REG_FCTR);
+ return *(uint32_t *)MIPS_PHYS_TO_KSEG1(XINE_REG_FCTR);
}
static void
Index: src/sys/arch/pmax/pmax/machdep.c
diff -u src/sys/arch/pmax/pmax/machdep.c:1.223.8.1.2.1 src/sys/arch/pmax/pmax/machdep.c:1.223.8.1.2.2
--- src/sys/arch/pmax/pmax/machdep.c:1.223.8.1.2.1 Mon Sep 7 23:46:46 2009
+++ src/sys/arch/pmax/pmax/machdep.c Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.223.8.1.2.1 2009/09/07 23:46:46 matt Exp $ */
+/* $NetBSD: machdep.c,v 1.223.8.1.2.2 2009/09/08 17:24:09 matt Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.223.8.1.2.1 2009/09/07 23:46:46 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.223.8.1.2.2 2009/09/08 17:24:09 matt Exp $");
#include "fs_mfs.h"
#include "opt_ddb.h"
@@ -123,7 +123,7 @@
#include "opt_dec_3maxplus.h"
#include "ksyms.h"
-unsigned ssir; /* simulated interrupt register */
+unsigned int ssir; /* simulated interrupt register */
/* Our exported CPU info; we can have only one. */
struct cpu_info cpu_info_store;
@@ -136,7 +136,7 @@
char *bootinfo = NULL; /* pointer to bootinfo structure */
int cpuspeed = 30; /* approx # instr per usec. */
int physmem; /* max supported memory, changes to actual */
-int physmem_boardmax; /* {model,SIMM}-specific bound on physmem */
+intptr_t physmem_boardmax; /* {model,SIMM}-specific bound on physmem */
int mem_cluster_cnt;
phys_ram_seg_t mem_clusters[VM_PHYSSEG_MAX];
@@ -158,7 +158,7 @@
*/
int safepri = MIPS3_PSL_LOWIPL; /* XXX */
-void mach_init __P((int, char *[], int, int, u_int, char *)); /* XXX */
+void mach_init __P((int, char *[], int, intptr_t, u_int, char *)); /* XXX */
/* Motherboard or system-specific initialization vector */
static void unimpl_bus_reset __P((void));
@@ -192,7 +192,8 @@
mach_init(argc, argv, code, cv, bim, bip)
int argc;
char *argv[];
- int code, cv;
+ int code;
+ intptr_t cv;
u_int bim;
char *bip;
{
@@ -230,8 +231,8 @@
/* Was it a valid bootinfo symtab info? */
if (bi_syms != NULL) {
- ssym = (void *)bi_syms->ssym;
- esym = (void *)bi_syms->esym;
+ ssym = (void *)(intptr_t)bi_syms->ssym;
+ esym = (void *)(intptr_t)bi_syms->esym;
kernend = (void *)mips_round_page(esym);
memset(edata, 0, end - edata);
} else
@@ -346,7 +347,7 @@
lwp0.l_md.md_regs = (struct frame *)(kernend + USPACE) - 1;
memset(lwp0.l_addr, 0, USPACE);
#ifdef _LP64
- lwp0.l_md.md_regs->f_regs[_R_SR] = MIPS_SR_KX;
+ lwp0.l_md.md_regs->f_regs[_L_SR] = MIPS_SR_KX;
#endif
lwp0.l_addr->u_pcb.pcb_context.val[_L_SR] =
#ifdef _LP64
Index: src/sys/arch/pmax/pmax/machdep.h
diff -u src/sys/arch/pmax/pmax/machdep.h:1.11 src/sys/arch/pmax/pmax/machdep.h:1.11.96.1
--- src/sys/arch/pmax/pmax/machdep.h:1.11 Sun Dec 11 12:18:39 2005
+++ src/sys/arch/pmax/pmax/machdep.h Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.h,v 1.11 2005/12/11 12:18:39 christos Exp $ */
+/* $NetBSD: machdep.h,v 1.11.96.1 2009/09/08 17:24:09 matt Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@@ -31,15 +31,15 @@
*/
/* max memory for a model */
-extern int physmem_boardmax; /* {model,simm}-specific bound on physmem */
+extern intptr_t physmem_boardmax; /* {model,simm}-specific bound on physmem */
struct memmap;
/* PROM callback routines - see pmax/promcall.c */
-void prom_findcons __P((int *, int *, int *));
-void prom_halt __P((int, char *)) __attribute__((__noreturn__));
-void prom_haltbutton __P((void));
-int prom_scsiid __P((int));
-char *prom_getenv __P((const char *));
-int prom_systype __P((void));
-int prom_getbitmap __P((struct memmap *));
+void prom_findcons(int *, int *, int *);
+void prom_halt(int, char *) __dead;
+void prom_haltbutton(void);
+int prom_scsiid(int);
+char *prom_getenv(const char *);
+int prom_systype(void);
+int prom_getbitmap(struct memmap *);
Index: src/sys/arch/pmax/pmax/memc.h
diff -u src/sys/arch/pmax/pmax/memc.h:1.3 src/sys/arch/pmax/pmax/memc.h:1.3.154.1
--- src/sys/arch/pmax/pmax/memc.h:1.3 Sat Jan 8 01:02:39 2000
+++ src/sys/arch/pmax/pmax/memc.h Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: memc.h,v 1.3 2000/01/08 01:02:39 simonb Exp $ */
+/* $NetBSD: memc.h,v 1.3.154.1 2009/09/08 17:24:09 matt Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@@ -35,8 +35,7 @@
#ifndef __PMAX_MEMC_H
#define __PMAX_MEMC_H
-void dec_mtasic_err __P((u_int32_t erradr, u_int32_t errsyn,
- u_int32_t bnk32m));
-void kn02ba_errintr __P((void));
+void dec_mtasic_err(u_int32_t erradr, vaddr_t errsyn, uint32_t bnk32m);
+void kn02ba_errintr(void);
#endif
Index: src/sys/arch/pmax/pmax/memc_3max.c
diff -u src/sys/arch/pmax/pmax/memc_3max.c:1.13 src/sys/arch/pmax/pmax/memc_3max.c:1.13.130.1
--- src/sys/arch/pmax/pmax/memc_3max.c:1.13 Sun Sep 29 15:11:14 2002
+++ src/sys/arch/pmax/pmax/memc_3max.c Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: memc_3max.c,v 1.13 2002/09/29 15:11:14 wiz Exp $ */
+/* $NetBSD: memc_3max.c,v 1.13.130.1 2009/09/08 17:24:09 matt 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.13 2002/09/29 15:11:14 wiz Exp $");
+__KERNEL_RCSID(0, "$NetBSD: memc_3max.c,v 1.13.130.1 2009/09/08 17:24:09 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -49,10 +49,9 @@
void
-dec_mtasic_err(erradr, errsyn, bnk32m)
- u_int32_t erradr, errsyn, bnk32m;
+dec_mtasic_err(uint32_t erradr, vaddr_t errsyn, uint32_t bnk32m)
{
- u_int32_t physadr;
+ uint32_t physadr;
int module;
if (!(erradr & KN02_ERR_VALID))
@@ -80,8 +79,8 @@
}
printf("\n");
if (erradr & KN02_ERR_ECCERR) {
- u_int32_t errsyn_value = *(u_int32_t *)errsyn;
- *(u_int32_t *)errsyn = 0;
+ uint32_t errsyn_value = *(uint32_t *)errsyn;
+ *(uint32_t *)errsyn = 0;
wbflush();
printf(" ECC 0x%08x\n", errsyn_value);
Index: src/sys/arch/pmax/pmax/memc_3min.c
diff -u src/sys/arch/pmax/pmax/memc_3min.c:1.10 src/sys/arch/pmax/pmax/memc_3min.c:1.10.96.1
--- src/sys/arch/pmax/pmax/memc_3min.c:1.10 Sun Dec 11 12:18:39 2005
+++ src/sys/arch/pmax/pmax/memc_3min.c Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: memc_3min.c,v 1.10 2005/12/11 12:18:39 christos Exp $ */
+/* $NetBSD: memc_3min.c,v 1.10.96.1 2009/09/08 17:24:09 matt Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -79,7 +79,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: memc_3min.c,v 1.10 2005/12/11 12:18:39 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: memc_3min.c,v 1.10.96.1 2009/09/08 17:24:09 matt Exp $");
/*
* Motherboard memory error contoller used in both
@@ -100,17 +100,19 @@
* XXX check for clean user pages, replace frame, and reload ?
*/
void
-kn02ba_errintr()
+kn02ba_errintr(void)
{
- int mer, adr, siz, err;
- static int errintr_cnt = 0;
-
- siz = *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_MSR);
- mer = *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_MER);
- adr = *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_AER);
+ paddr_t err, adr;
+ size_t siz;
+ uint32_t mer;
+ static unsigned int errintr_cnt = 0;
+
+ siz = *(uint32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_MSR);
+ mer = *(uint32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_MER);
+ adr = *(uint32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_AER);
/* clear interrupt bit */
- *(u_int32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_TIMEOUT) = 0;
+ *(uint32_t *)MIPS_PHYS_TO_KSEG1(KMIN_REG_TIMEOUT) = 0;
err = 0; /* XXX gcc */
switch (mer & KMIN_MER_LASTBYTE) {
@@ -126,6 +128,7 @@
err |= (adr & KMIN_AER_ADDR_MASK);
errintr_cnt++;
- printf("(%d)Bad memory chip at phys %x [%x %x %x]\n",
- errintr_cnt, err, mer, siz, adr);
+ printf("(%u)Bad memory chip at phys %#"PRIxPADDR
+ " [%x %zx %#"PRIxPADDR"]\n",
+ errintr_cnt, err, mer, siz, adr);
}
Index: src/sys/arch/pmax/tc/asc_ioasic.c
diff -u src/sys/arch/pmax/tc/asc_ioasic.c:1.20 src/sys/arch/pmax/tc/asc_ioasic.c:1.20.18.1
--- src/sys/arch/pmax/tc/asc_ioasic.c:1.20 Mon Apr 28 20:23:31 2008
+++ src/sys/arch/pmax/tc/asc_ioasic.c Tue Sep 8 17:24:09 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: asc_ioasic.c,v 1.20 2008/04/28 20:23:31 martin Exp $ */
+/* $NetBSD: asc_ioasic.c,v 1.20.18.1 2009/09/08 17:24:09 matt Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: asc_ioasic.c,v 1.20 2008/04/28 20:23:31 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: asc_ioasic.c,v 1.20.18.1 2009/09/08 17:24:09 matt Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -304,7 +304,7 @@
asc_ioasic_intr(struct ncr53c9x_softc *sc)
{
struct asc_softc *asc = (struct asc_softc *)sc;
- int trans, resid;
+ ssize_t trans, resid;
u_int tcl, tcm, ssr, scr, intr;
if ((asc->sc_flags & ASC_DMAACTIVE) == 0)
@@ -352,7 +352,7 @@
trans = asc->sc_dmasize - resid;
if (trans < 0) { /* transferred < 0 ? */
- printf("ioasic_intr: xfer (%d) > req (%d)\n",
+ printf("ioasic_intr: xfer (%zd) > req (%zu)\n",
trans, asc->sc_dmasize);
trans = asc->sc_dmasize;
}
Added files:
Index: src/sys/arch/pmax/conf/GENERIC64
diff -u /dev/null src/sys/arch/pmax/conf/GENERIC64:1.1.2.1
--- /dev/null Tue Sep 8 17:24:10 2009
+++ src/sys/arch/pmax/conf/GENERIC64 Tue Sep 8 17:24:08 2009
@@ -0,0 +1,309 @@
+# $NetBSD: GENERIC64,v 1.1.2.1 2009/09/08 17:24:08 matt Exp $
+#
+# GENERIC machine description file
+#
+# This machine description file is used to generate the default NetBSD
+# kernel. The generic kernel does not include all options, subsystems
+# and device drivers, but should be useful for most applications.
+#
+# The machine description file can be customised for your specific
+# machine to reduce the kernel size and improve its performance.
+#
+# For further information on compiling NetBSD kernels, see the config(8)
+# man page.
+#
+# For further information on hardware support for this architecture, see
+# the intro(4) man page. For further information about kernel options
+# for this architecture, see the options(4) man page. For an explanation
+# of each device driver in this file see the section 4 man page for the
+# device.
+
+include "arch/pmax/conf/std.pmax64"
+
+options INCLUDE_CONFIG_FILE # embed config file in kernel binary
+
+#ident "GENERIC-$Revision: 1.1.2.1 $"
+
+maxusers 64
+
+options MIPS3 # R4000/R4400 CPUs
+
+# Support for specific models of DECstation
+options DEC_3MIN # DECstation 5000/1xx (kn02ba), 5000/150 (kn04)
+options DEC_MAXINE # Personal DECstation 5000/xx (kn02ca)
+options DEC_3MAXPLUS # DECstation 5000/240 (kn03), 5000/260 (kn05)
+
+# Standard system options
+options DDB # in-kernel debugger
+#options DDB_HISTORY_SIZE=100 # enable history editing in DDB
+options DDB_ONPANIC=0 # don't enter debugger on panic
+#options DIAGNOSTIC # extra kernel debugging checks
+#options DEBUG # extra kernel debugging support
+options COMPAT_43 # compatibility with 4.3BSD binaries
+options KTRACE # system call tracing support
+
+options SYSVMSG # System V-like message queues
+options SYSVSEM # System V-like semaphores
+options SYSVSHM # System V-like memory sharing
+options P1003_1B_SEMAPHORE # p1003.1b semaphore support
+
+options LKM # loadable kernel modules
+
+options USERCONF # userconf(4) support
+#options PIPE_SOCKETPAIR # smaller, but slower pipe(2)
+options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel
+
+# Enable experimental buffer queue strategy for better responsiveness under
+# high disk I/O load. Use it with caution - it's not proven to be stable yet.
+#options BUFQ_READPRIO
+#options BUFQ_PRIOCSCAN
+
+#options SCSIVERBOSE # Verbose SCSI errors
+#options TCVERBOSE # recognize "unknown" TC devices
+
+# Old 4.4BSD/pmax kgdb options
+#options KGDB # support for kernel gdb
+#options KGDB_DEVRATE=19200 # kernel gdb port rate (default 9600)
+#options KGDB_DEV="15*256+0" # device for kernel gdb
+
+options NTP # network time protocol
+
+
+# Filesystem options
+file-system FFS # fast filesystem with user and group quotas
+file-system MFS # memory-based filesystem
+file-system NFS # Sun NFS-compatible filesystem (client)
+file-system LFS # Log-based filesystem (still experimental)
+file-system CD9660 # ISO 9660 + Rock Ridge file system
+file-system FDESC # /dev/fd
+file-system KERNFS # /kern (kernel informational filesystem)
+file-system NULLFS # loopback file system
+file-system OVERLAY # overlay file system
+file-system PORTAL # portal filesystem (still experimental)
+file-system PROCFS # /proc
+file-system UMAPFS # NULLFS + uid and gid remapping
+file-system UNION
+file-system PTYFS # /dev/pts/N support
+#file-system TMPFS # Efficient memory file-system
+#file-system UDF # experimental - OSTA UDF CD/DVD file-system
+
+options NFSSERVER # Sun NFS-compatible filesystem (server)
+options QUOTA # UFS quotas
+#options FFS_EI # FFS Endian Independant support
+options SOFTDEP # FFS soft updates support.
+options WAPBL # File system journaling support - Experimental
+#options FFS_NO_SNAPSHOT # No FFS snapshot support
+#options UFS_DIRHASH # UFS Large Directory Hashing - Experimental
+
+# Networking options
+options INET # Internet protocols
+options INET6 # IPV6
+#options IPSEC # IP security
+#options IPSEC_ESP # IP security (encryption part; define w/IPSEC)
+#options IPSEC_NAT_T # IPsec NAT traversal (NAT-T)
+#options IPSEC_DEBUG # debug for IP security
+options GATEWAY # IP packet forwarding
+#options MROUTING # Multicast routing support
+#options PIM # Protocol Independent Multicast
+#options ISO # OSI networking
+#options TPIP # TPIP
+#options EON # OSI tunneling over IP
+options NETATALK # AppleTalk networking protocols
+options PPP_BSDCOMP # BSD-Compress compression support for PPP
+options PPP_DEFLATE # Deflate compression support for PPP
+options PPP_FILTER # Active filter support for PPP (requires bpf)
+options PFIL_HOOKS # pfil(9) packet filter hooks
+options IPFILTER_LOG # ipmon(8) log support
+options IPFILTER_LOOKUP # ippool(8) support
+#options IPFILTER_DEFAULT_BLOCK # block all packets by default
+#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG
+
+#options ALTQ # Manipulate network interfaces' output queues
+#options ALTQ_BLUE # Stochastic Fair Blue
+#options ALTQ_CBQ # Class-Based Queueing
+#options ALTQ_CDNR # Diffserv Traffic Conditioner
+#options ALTQ_FIFOQ # First-In First-Out Queue
+#options ALTQ_FLOWVALVE # RED/flow-valve (red-penalty-box)
+#options ALTQ_HFSC # Hierarchical Fair Service Curve
+#options ALTQ_LOCALQ # Local queueing discipline
+#options ALTQ_PRIQ # Priority Queueing
+#options ALTQ_RED # Random Early Detection
+#options ALTQ_RIO # RED with IN/OUT
+#options ALTQ_WFQ # Weighted Fair Queueing
+
+# NetBSD backwards compatibility
+#options COMPAT_10 # NetBSD 1.0, (needed for X on 386?)
+#options COMPAT_11 # NetBSD 1.1, EXEC_ELF_NOTELESS
+options COMPAT_12 # NetBSD 1.2 reboot(), EXEC_ELF_NOTELESS
+options COMPAT_13 # NetBSD 1.3
+options COMPAT_14 # NetBSD 1.4
+options COMPAT_15 # NetBSD 1.5
+options COMPAT_16 # NetBSD 1.6
+options COMPAT_20 # NetBSD 2.0
+options COMPAT_30 # NetBSD 3.0
+options COMPAT_40 # NetBSD 4.0 compatibility.
+#options TCP_COMPAT_42 # 4.2BSD TCP/IP bug compat. Not recommended.
+options COMPAT_BSDPTY # /dev/[pt]ty?? ptys.
+
+# Workstation console options
+options FONT_BOLD8x16
+options FONT_GALLANT12x22
+
+options WSEMUL_VT100
+options WS_KERNEL_FG=WSCOL_GREEN
+options WS_KERNEL_BG=WSCOL_BLACK
+
+# Disable kernel security levels. Needed for X with a PX or PXG.
+#options INSECURE
+
+# pmax specific
+#options COMPAT_ULTRIX # Ultrix compatibility
+#options EXEC_AOUT # Old NetBSD/pmax a.out compatibility
+#options EXEC_ECOFF # Ultrix RISC binaries are ECOFF format
+options HZ=256 # RTC rate required
+
+options NFS_BOOT_DHCP # superset of BOOTP
+
+config netbsd root on ? type ?
+#config nfsnetbsd root on ? type nfs
+
+
+mainbus0 at root
+cpu* at mainbus0
+
+## Peripheral Bus Support (for devices to attach to)
+## ----------------------------------------------------------------------------
+
+# TURBOchannel bus support
+tc* at mainbus0
+
+# 3MIN, 3MAX+ and MAXINE have IOASIC in system slot
+ioasic0 at tc?
+mcclock* at ioasic? offset ? # DS1287 RTC
+le* at ioasic? offset ? # LANCE
+dt* at ioasic? offset ? # MAXINE kbd and mouse
+bba* at ioasic? offset ? # MAXINE baseboard audio
+#fdc at ioasic? offset ? # MAXINE floppy disk (not supported)
+zsc0 at ioasic? offset 0x100000 # Z85C30
+zsc1 at ioasic? offset 0x180000 # Z85C30
+asc* at ioasic? offset ? # NCR53C94 SCSI with IOASIC
+
+zstty* at zsc? channel ? # serial ports on B/A channels
+lkkbd* at zsc1 channel ? # keyboard port on A channels
+vsms* at zsc0 channel ? # mouse port on A channels
+
+audio* at bba?
+
+dtkbd* at dt? addr ?
+dtms* at dt? addr ?
+
+# TURBOchannel devices
+mfb* at tc? slot ? offset ? # PMAG-A MX Monochrome Framebuffer
+cfb* at tc? slot ? offset ? # PMAG-B CX Color Framebuffer
+tfb* at tc? slot ? offset ? # PMAG-RO TX True Color Framebuffer
+sfb* at tc? slot ? offset ? # PMAGB-B HX Smart Framebuffer
+px* at tc? slot ? offset ? # PMAG-C 2D accelerator
+pxg* at tc? slot ? offset ? # PMAG-D,E,F 3D accelerator
+#sfbp* at tc? slot ? offset ? # PMAGD HX+ Smart Framebuffer
+xcfb* at tc? slot ? offset ? # PMAG-DV Color Framebuffer at MAXINE
+asc* at tc? slot ? offset ? # PMAZ-A single channel SCSI
+le* at tc? slot ? offset ? # PMAD-A LANCE
+fta* at tc? slot ? offset ? # PMAF-F FDDI
+tcds* at tc? slot ? offset ? # PMAZB/PMAZC dual channel SCSI
+asc* at tcds? chip ?
+
+# Workstation console
+
+wskbd* at lkkbd? console ?
+wskbd* at dtkbd? console ?
+wsmouse* at vsms?
+wsmouse* at dtms?
+
+wsdisplay* at mfb?
+wsdisplay* at cfb?
+wsdisplay* at px?
+wsdisplay* at pxg?
+wsdisplay* at sfb?
+#wsdisplay* at sfbp?
+wsdisplay* at tfb?
+wsdisplay* at xcfb?
+
+
+#########################################################################
+# SCSI configuration #
+#########################################################################
+
+scsibus* at asc?
+
+sd* at scsibus? target ? lun ? # SCSI disks
+st* at scsibus? target ? lun ? # SCSI tapes
+cd* at scsibus? target ? lun ? # SCSI CD-ROMs
+ch* at scsibus? target ? lun ? # SCSI changer devices
+ss* at scsibus? target ? lun ? # SCSI scanners
+uk* at scsibus? target ? lun ? # unknown SCSI
+
+#########################################################################
+# Pseudo-devices #
+#########################################################################
+
+#
+# accept filters
+pseudo-device accf_data # "dataready" accept filter
+pseudo-device accf_http # "httpready" accept filter
+
+pseudo-device loop 1 # network loopback
+pseudo-device sl # serial-line IP ports
+pseudo-device ppp # serial-line IP ports
+pseudo-device pppoe # PPP over Ethernet (RFC 2516)
+pseudo-device pty # pseudo-terminals
+pseudo-device bpfilter # packet filter ports
+#pseudo-device carp # Common Address Redundancy Protocol
+pseudo-device ipfilter # IP filter, NAT
+#pseudo-device gre # generic L3 over IP tunnel
+pseudo-device gif # IPv[46] over IPv[46] tunnel (RFC1933)
+#pseudo-device faith # IPv[46] tcp relay translation i/f
+pseudo-device stf # 6to4 IPv6 over IPv4 encapsulation
+pseudo-device vlan # IEEE 802.1q encapsulation
+pseudo-device bridge # simple inter-network bridging
+#options BRIDGE_IPF # bridge uses IP/IPv6 pfil hooks too
+pseudo-device agr # IEEE 802.3ad link aggregation
+
+pseudo-device vnd # virtual disk ick
+#options VND_COMPRESSION # compressed vnd(4)
+pseudo-device ccd 4 # concatenated disks
+#pseudo-device cgd 4 # cryptographic disk devices
+pseudo-device raid 8 # RAIDframe disk driver
+options RAID_AUTOCONFIG # auto-configuration of RAID components
+# Options to enable various other RAIDframe RAID types.
+#options RF_INCLUDE_EVENODD=1
+#options RF_INCLUDE_RAID5_RS=1
+#options RF_INCLUDE_PARITYLOGGING=1
+#options RF_INCLUDE_CHAINDECLUSTER=1
+#options RF_INCLUDE_INTERDECLUSTER=1
+#options RF_INCLUDE_PARITY_DECLUSTERING=1
+#options RF_INCLUDE_PARITY_DECLUSTERING_DS=1
+pseudo-device fss 4 # file system snapshot device
+
+pseudo-device rnd # /dev/random and in-kernel generator
+pseudo-device clockctl # user control of clock subsystem
+pseudo-device ksyms # /dev/ksyms
+#pseudo-device pf # PF packet filter
+#pseudo-device pflog # PF log if
+pseudo-device wsfont # wsfont control device
+pseudo-device wsmux # wsmux control device
+
+# Veriexec
+#
+# a pseudo device needed for veriexec
+#pseudo-device veriexec 1
+#
+# Uncomment the fingerprint methods below that are desired. Note that
+# removing fingerprint methods will have almost no impact on the kernel
+# code size.
+#
+#options VERIFIED_EXEC_FP_RMD160
+#options VERIFIED_EXEC_FP_SHA256
+#options VERIFIED_EXEC_FP_SHA384
+#options VERIFIED_EXEC_FP_SHA512
+#options VERIFIED_EXEC_FP_SHA1
+#options VERIFIED_EXEC_FP_MD5
Index: src/sys/arch/pmax/conf/INSTALL64
diff -u /dev/null src/sys/arch/pmax/conf/INSTALL64:1.1.2.1
--- /dev/null Tue Sep 8 17:24:10 2009
+++ src/sys/arch/pmax/conf/INSTALL64 Tue Sep 8 17:24:08 2009
@@ -0,0 +1,158 @@
+# $NetBSD: INSTALL64,v 1.1.2.1 2009/09/08 17:24:08 matt Exp $
+#
+# Distribution install kernel (any model)
+# netbsd: cut-down kernel for miniroots.
+# nfsnetbsd: root on NFS to boot diskless for installation,
+# disk drivers for labelling disks and installation on local disk.
+#
+# Kernel must be under 1Mbyte to net-boot on 3100s with old PROMs.
+#
+#
+include "arch/pmax/conf/std.pmax64"
+
+#options INCLUDE_CONFIG_FILE # embed config file in kernel binary
+
+makeoptions COPTS="-Os -mmemcpy" # Optimise for space. Implies -O2
+
+maxusers 8
+
+# CPU options
+options MIPS3 # R4000/R4400 support
+
+
+# Support for specific models of DECstation
+options DEC_MAXINE # kn02ca: 5000/xx (Personal DECstation)
+options DEC_3MIN # 5000/1xx (kn02ba), 5000/150 (kn04)
+options DEC_3MAXPLUS # 5000/240 (kn03), 5000/260 (kn05)
+
+# Standard system options
+#options DIAGNOSTIC # extra kernel debugging checks
+#options DEBUG # extra kernel debugging support
+#options KTRACE # system call tracing support
+#options LKM # loadable kernel modules
+options USERCONF # userconf(4) support
+options PIPE_SOCKETPAIR # smaller, but slower pipe(2)
+#options SYSCTL_INCLUDE_DESCR # Include sysctl descriptions in kernel
+
+#options NTP # network time protocol
+
+
+# File systems
+file-system FFS # BSD fast filesystem
+file-system NFS # Sun NFS-compatible filesystem (client)
+file-system CD9660 # ISO 9660 + Rock Ridge file system
+file-system KERNFS # kernel data-structure filesystem
+#file-system PTYFS # /dev/pts/N support
+
+# Filesystem options
+#options NFS_V2_ONLY # Exclude NFS3 code to save space
+options FFS_NO_SNAPSHOT # No FFS snapshot support
+options WAPBL # File system journaling support - Experimental
+
+
+# Networking options
+options INET # Internet protocols
+#options TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG
+
+
+# Workstation console options
+options FONT_BOLD8x16 # Font for fb devices
+options FONT_GALLANT12x22
+
+options WSEMUL_VT100
+options WS_KERNEL_FG=WSCOL_GREEN
+options WS_KERNEL_BG=WSCOL_BLACK
+
+# Disable kernel security levels. Needed for X with a PX or PXG.
+#options INSECURE
+
+# pmax specific
+options HZ=256 # RTC rate required
+
+options NFS_BOOT_DHCP # superset of BOOTP
+
+config netbsd root on ? type ?
+config nfsnetbsd root on ? type nfs
+
+mainbus0 at root
+cpu* at mainbus0
+
+## Peripheral Bus Support (for devices to attach to)
+## ----------------------------------------------------------------------------
+
+# TURBOchannel bus support
+tc* at mainbus0
+
+# 3MIN, 3MAX+ and MAXINE have IOASIC in system slot
+ioasic0 at tc?
+mcclock* at ioasic? offset ? # DS1287 RTC
+le* at ioasic? offset ? # LANCE
+dt* at ioasic? offset ? # MAXINE kbd and mouse
+#bba* at ioasic? offset ? # MAXINE baseboard audio
+#fdc at ioasic? offset ? # MAXINE floppy disk (not supported)
+zsc0 at ioasic? offset 0x100000 # Z85C30
+zsc1 at ioasic? offset 0x180000 # Z85C30
+asc* at ioasic? offset ? # NCR53C94 SCSI with IOASIC
+
+zstty* at zsc? channel ? # serial ports on B/A channels
+lkkbd* at zsc1 channel ? # keyboard port on A channels
+#vsms* at zsc0 channel ? # mouse port on A channels
+
+#audio* at bba?
+
+dtkbd* at dt? addr ?
+#dtms* at dt? addr ?
+
+# TURBOchannel devices
+mfb* at tc? slot ? offset ? # PMAG-A MX Monochrome Framebuffer
+cfb* at tc? slot ? offset ? # PMAG-B CX Color Framebuffer
+tfb* at tc? slot ? offset ? # PMAG-RO TX True Color Framebuffer
+sfb* at tc? slot ? offset ? # PMAGB-B HX Smart Framebuffer
+px* at tc? slot ? offset ? # PMAG-C 2D accelerator
+pxg* at tc? slot ? offset ? # PMAG-D,E,F 3D accelerator
+#sfbp* at tc? slot ? offset ? # PMAGD HX+ Smart Framebuffer
+xcfb* at tc? slot ? offset ? # PMAG-DV Color Framebuffer at MAXINE
+asc* at tc? slot ? offset ? # PMAZ-A single channel SCSI
+le* at tc? slot ? offset ? # PMAD-A LANCE
+fta* at tc? slot ? offset ? # PMAF-F FDDI
+tcds* at tc? slot ? offset ? # PMAZB/PMAZC dual channel SCSI
+asc* at tcds? chip ?
+
+# Workstation console
+
+wskbd* at lkkbd? console ?
+wskbd* at dtkbd? console ?
+#wsmouse* at vsms?
+#wsmouse* at dtms?
+
+wsdisplay* at mfb?
+wsdisplay* at cfb?
+wsdisplay* at px?
+wsdisplay* at pxg?
+wsdisplay* at sfb?
+#wsdisplay* at sfbp?
+wsdisplay* at tfb?
+wsdisplay* at xcfb?
+
+
+#########################################################################
+# SCSI configuration #
+#########################################################################
+
+scsibus* at asc?
+sd* at scsibus? target ? lun ? # SCSI disks
+st* at scsibus? target ? lun ? # SCSI tapes
+cd* at scsibus? target ? lun ? # SCSI CD-ROMs
+
+#########################################################################
+# Pseudo-devices #
+#########################################################################
+
+pseudo-device pty 2 # pseudo-terminals (Sysinst needs two)
+pseudo-device bpfilter # packet filter ports
+pseudo-device loop
+pseudo-device ccd 4 # concatenated disks
+#pseudo-device fss 4 # file system snapshot device
+pseudo-device rnd # /dev/random and in-kernel generator
+#pseudo-device wsfont # wsfont control device
+pseudo-device wsmux # wsmux control device
Index: src/sys/arch/pmax/conf/RAMDISK64
diff -u /dev/null src/sys/arch/pmax/conf/RAMDISK64:1.1.2.1
--- /dev/null Tue Sep 8 17:24:10 2009
+++ src/sys/arch/pmax/conf/RAMDISK64 Tue Sep 8 17:24:08 2009
@@ -0,0 +1,25 @@
+# $NetBSD: RAMDISK64,v 1.1.2.1 2009/09/08 17:24:08 matt Exp $
+#
+# Install kernel with ramdisk added.
+# The ramdisk is be too big to netboot directly via ECOFF on some machines,
+# so keep it otherise identical to INSTALL.
+#
+
+# Pull in standard `install' config
+include "arch/pmax/conf/INSTALL64"
+
+
+# Enable the hooks used for initializing the root memory-disk.
+options MEMORY_DISK_HOOKS
+options MEMORY_DISK_IS_ROOT # force root on memory disk
+options MEMORY_DISK_SERVER=0 # no userspace memory disk support
+options MEMORY_DISK_ROOT_SIZE=6600 # size of memory disk, in blocks (3300kB)
+#options MEMORY_DISK_ROOT_SIZE=2880 # 1.44M, same as a floppy
+
+# File systems: need MFS
+file-system MFS # memory file system
+
+# Extra Pseudo-Devices
+
+# disk/mass storage pseudo-devices
+pseudo-device md 1 # memory disk device (ramdisk)
Index: src/sys/arch/pmax/conf/std.pmax64
diff -u /dev/null src/sys/arch/pmax/conf/std.pmax64:1.1.2.1
--- /dev/null Tue Sep 8 17:24:10 2009
+++ src/sys/arch/pmax/conf/std.pmax64 Tue Sep 8 17:24:08 2009
@@ -0,0 +1,14 @@
+# $NetBSD: std.pmax64,v 1.1.2.1 2009/09/08 17:24:08 matt Exp $
+# standard, required pmax info
+
+machine pmax mips
+include "conf/std" # MI standard options
+makeoptions MACHINE_ARCH="mips64el"
+
+# Standard exec-package options
+options EXEC_ELF64
+#options EXEC_ELF32 # 32-bit ELF support (native format)
+options EXEC_SCRIPT # exec of #! scripts
+
+makeoptions DEFTEXTADDR="0x80030000"
+makeoptions LP64="yes"