Module Name: src
Committed By: matt
Date: Thu Sep 10 01:51:32 UTC 2009
Modified Files:
src/sys/arch/sgimips/conf [matt-nb5-mips64]: GENERIC32_IP3x
src/sys/arch/sgimips/dev [matt-nb5-mips64]: int.c
src/sys/arch/sgimips/hpc [matt-nb5-mips64]: hpcdma.c if_sq.c wdsc.c
src/sys/arch/sgimips/include [matt-nb5-mips64]: loadfile_machdep.h
src/sys/arch/sgimips/mace [matt-nb5-mips64]: if_mec.c mace.c
src/sys/arch/sgimips/sgimips [matt-nb5-mips64]: bus.c machdep.c
src/sys/arch/sgimips/stand [matt-nb5-mips64]: Makefile.booters
src/sys/arch/sgimips/stand/boot [matt-nb5-mips64]: Makefile
Added Files:
src/sys/arch/sgimips/conf [matt-nb5-mips64]: GENERIC64_IP2x
GENERIC64_IP3x INSTALL64_IP2x INSTALL64_IP3x std.sgimips64
Log Message:
Add preliminary LP64 support for sgimips
To generate a diff of this commit:
cvs rdiff -u -r1.76.4.1 -r1.76.4.1.4.1 \
src/sys/arch/sgimips/conf/GENERIC32_IP3x
cvs rdiff -u -r0 -r1.1.2.1 src/sys/arch/sgimips/conf/GENERIC64_IP2x \
src/sys/arch/sgimips/conf/GENERIC64_IP3x \
src/sys/arch/sgimips/conf/INSTALL64_IP2x \
src/sys/arch/sgimips/conf/INSTALL64_IP3x \
src/sys/arch/sgimips/conf/std.sgimips64
cvs rdiff -u -r1.19 -r1.19.12.1 src/sys/arch/sgimips/dev/int.c
cvs rdiff -u -r1.16 -r1.16.16.1 src/sys/arch/sgimips/hpc/hpcdma.c
cvs rdiff -u -r1.33 -r1.33.62.1 src/sys/arch/sgimips/hpc/if_sq.c
cvs rdiff -u -r1.25 -r1.25.14.1 src/sys/arch/sgimips/hpc/wdsc.c
cvs rdiff -u -r1.6 -r1.6.18.1 src/sys/arch/sgimips/include/loadfile_machdep.h
cvs rdiff -u -r1.33 -r1.33.12.1 src/sys/arch/sgimips/mace/if_mec.c
cvs rdiff -u -r1.15 -r1.15.12.1 src/sys/arch/sgimips/mace/mace.c
cvs rdiff -u -r1.55 -r1.55.16.1 src/sys/arch/sgimips/sgimips/bus.c
cvs rdiff -u -r1.121.8.1 -r1.121.8.2 src/sys/arch/sgimips/sgimips/machdep.c
cvs rdiff -u -r1.15 -r1.15.22.1 src/sys/arch/sgimips/stand/Makefile.booters
cvs rdiff -u -r1.13 -r1.13.22.1 src/sys/arch/sgimips/stand/boot/Makefile
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/sgimips/conf/GENERIC32_IP3x
diff -u src/sys/arch/sgimips/conf/GENERIC32_IP3x:1.76.4.1 src/sys/arch/sgimips/conf/GENERIC32_IP3x:1.76.4.1.4.1
--- src/sys/arch/sgimips/conf/GENERIC32_IP3x:1.76.4.1 Sat Dec 27 03:50:52 2008
+++ src/sys/arch/sgimips/conf/GENERIC32_IP3x Thu Sep 10 01:51:31 2009
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC32_IP3x,v 1.76.4.1 2008/12/27 03:50:52 snj Exp $
+# $NetBSD: GENERIC32_IP3x,v 1.76.4.1.4.1 2009/09/10 01:51:31 matt Exp $
#
# GENERIC32_IP3x machine description file
#
@@ -28,7 +28,7 @@
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
-#ident "GENERIC32_IP3x-$Revision: 1.76.4.1 $"
+#ident "GENERIC32_IP3x-$Revision: 1.76.4.1.4.1 $"
maxusers 32
@@ -36,7 +36,7 @@
options MIPS3 # MIPS3 support
options ENABLE_MIPS4_CACHE_R10K # enable R10000 cache ops
#options BLINK # blinkenlitzen
-makeoptions CPUFLAGS="-march=mips3 -mabi=32 -mtune=vr5000"
+makeoptions CPUFLAGS="-march=mips3 -mtune=vr5000"
# Standard system options
#options INSECURE # disable kernel security levels
Index: src/sys/arch/sgimips/dev/int.c
diff -u src/sys/arch/sgimips/dev/int.c:1.19 src/sys/arch/sgimips/dev/int.c:1.19.12.1
--- src/sys/arch/sgimips/dev/int.c:1.19 Sat Aug 23 17:25:54 2008
+++ src/sys/arch/sgimips/dev/int.c Thu Sep 10 01:51:31 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: int.c,v 1.19 2008/08/23 17:25:54 tsutsui Exp $ */
+/* $NetBSD: int.c,v 1.19.12.1 2009/09/10 01:51:31 matt Exp $ */
/*
* Copyright (c) 2004 Christopher SEKIYA
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: int.c,v 1.19 2008/08/23 17:25:54 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: int.c,v 1.19.12.1 2009/09/10 01:51:31 matt Exp $");
#include "opt_cputype.h"
@@ -207,7 +207,7 @@
int intnum;
uint32_t mstat;
uint32_t mmask;
- int which = (int)arg;
+ int which = (intptr_t)arg;
struct sgimips_intrhand *ih;
ret = 0;
Index: src/sys/arch/sgimips/hpc/hpcdma.c
diff -u src/sys/arch/sgimips/hpc/hpcdma.c:1.16 src/sys/arch/sgimips/hpc/hpcdma.c:1.16.16.1
--- src/sys/arch/sgimips/hpc/hpcdma.c:1.16 Sat May 10 15:31:05 2008
+++ src/sys/arch/sgimips/hpc/hpcdma.c Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: hpcdma.c,v 1.16 2008/05/10 15:31:05 martin Exp $ */
+/* $NetBSD: hpcdma.c,v 1.16.16.1 2009/09/10 01:51:32 matt Exp $ */
/*
* Copyright (c) 2001 Wayne Knowles
@@ -44,7 +44,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hpcdma.c,v 1.16 2008/05/10 15:31:05 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpcdma.c,v 1.16.16.1 2009/09/10 01:51:32 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -139,13 +139,13 @@
if (sc->hpc->revision == 3) {
hva->hpc3_hdd_bufptr = segp->ds_addr;
hva->hpc3_hdd_ctl = segp->ds_len;
- hva->hdd_descptr = (u_int32_t) ++hpa;
+ hva->hdd_descptr = (uintptr_t) ++hpa;
} else /* HPC 1/1.5 */ {
/* there doesn't seem to be any good way of doing this
via an abstraction layer */
hva->hpc1_hdd_bufptr = segp->ds_addr;
hva->hpc1_hdd_ctl = segp->ds_len;
- hva->hdd_descptr = (u_int32_t) ++hpa;
+ hva->hdd_descptr = (uintptr_t) ++hpa;
}
++hva; ++segp;
}
@@ -172,7 +172,7 @@
/* Load DMA Descriptor list */
bus_space_write_4(sc->sc_bst, sc->sc_bsh, sc->hpc->scsi0_ndbp,
- (u_int32_t)sc->sc_desc_pa);
+ (uintptr_t)sc->sc_desc_pa);
}
void
Index: src/sys/arch/sgimips/hpc/if_sq.c
diff -u src/sys/arch/sgimips/hpc/if_sq.c:1.33 src/sys/arch/sgimips/hpc/if_sq.c:1.33.62.1
--- src/sys/arch/sgimips/hpc/if_sq.c:1.33 Sun Mar 4 06:00:39 2007
+++ src/sys/arch/sgimips/hpc/if_sq.c Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_sq.c,v 1.33 2007/03/04 06:00:39 christos Exp $ */
+/* $NetBSD: if_sq.c,v 1.33.62.1 2009/09/10 01:51:32 matt Exp $ */
/*
* Copyright (c) 2001 Rafal K. Boni
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sq.c,v 1.33 2007/03/04 06:00:39 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sq.c,v 1.33.62.1 2009/09/10 01:51:32 matt Exp $");
#include "bpfilter.h"
@@ -118,7 +118,7 @@
static void sq_txring_hpc3(struct sq_softc *);
static void sq_reset(struct sq_softc *);
static int sq_add_rxbuf(struct sq_softc *, int);
-static void sq_dump_buffer(u_int32_t addr, u_int32_t len);
+static void sq_dump_buffer(paddr_t addr, psize_t len);
static void sq_trace_dump(struct sq_softc *);
static void enaddr_aton(const char*, u_int8_t*);
@@ -151,7 +151,7 @@
struct hpc_attach_args *ha = aux;
if (strcmp(ha->ha_name, cf->cf_name) == 0) {
- uint32_t reset, txstat;
+ vaddr_t reset, txstat;
reset = MIPS_PHYS_TO_KSEG1(ha->ha_sh +
ha->ha_dmaoff + ha->hpc_regs->enetr_reset);
@@ -1323,7 +1323,7 @@
}
void
-sq_dump_buffer(u_int32_t addr, u_int32_t len)
+sq_dump_buffer(paddr_t addr, psize_t len)
{
u_int i;
u_char* physaddr = (char*) MIPS_PHYS_TO_KSEG1((void *)addr);
Index: src/sys/arch/sgimips/hpc/wdsc.c
diff -u src/sys/arch/sgimips/hpc/wdsc.c:1.25 src/sys/arch/sgimips/hpc/wdsc.c:1.25.14.1
--- src/sys/arch/sgimips/hpc/wdsc.c:1.25 Sat May 10 15:31:05 2008
+++ src/sys/arch/sgimips/hpc/wdsc.c Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: wdsc.c,v 1.25 2008/05/10 15:31:05 martin Exp $ */
+/* $NetBSD: wdsc.c,v 1.25.14.1 2009/09/10 01:51:32 matt Exp $ */
/*
* Copyright (c) 2001 Wayne Knowles
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdsc.c,v 1.25 2008/05/10 15:31:05 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdsc.c,v 1.25.14.1 2009/09/10 01:51:32 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -100,7 +100,7 @@
struct hpc_attach_args *haa = auxp;
if (strcmp(haa->ha_name, cf->cf_name) == 0) {
- uint32_t reset, asr, reg;
+ vaddr_t reset, asr, reg;
reset = MIPS_PHYS_TO_KSEG1(haa->ha_sh + haa->ha_dmaoff +
haa->hpc_regs->scsi0_ctl);
Index: src/sys/arch/sgimips/include/loadfile_machdep.h
diff -u src/sys/arch/sgimips/include/loadfile_machdep.h:1.6 src/sys/arch/sgimips/include/loadfile_machdep.h:1.6.18.1
--- src/sys/arch/sgimips/include/loadfile_machdep.h:1.6 Mon Apr 28 20:23:34 2008
+++ src/sys/arch/sgimips/include/loadfile_machdep.h Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: loadfile_machdep.h,v 1.6 2008/04/28 20:23:34 martin Exp $ */
+/* $NetBSD: loadfile_machdep.h,v 1.6.18.1 2009/09/10 01:51:32 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/sgimips/mace/if_mec.c
diff -u src/sys/arch/sgimips/mace/if_mec.c:1.33 src/sys/arch/sgimips/mace/if_mec.c:1.33.12.1
--- src/sys/arch/sgimips/mace/if_mec.c:1.33 Sat Aug 23 18:44:51 2008
+++ src/sys/arch/sgimips/mace/if_mec.c Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_mec.c,v 1.33 2008/08/23 18:44:51 tsutsui Exp $ */
+/* $NetBSD: if_mec.c,v 1.33.12.1 2009/09/10 01:51:32 matt Exp $ */
/*-
* Copyright (c) 2004, 2008 Izumi Tsutsui. All rights reserved.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_mec.c,v 1.33 2008/08/23 18:44:51 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_mec.c,v 1.33.12.1 2009/09/10 01:51:32 matt Exp $");
#include "opt_ddb.h"
#include "bpfilter.h"
@@ -1704,7 +1704,7 @@
MEC_RXSTAT_INVALID |
MEC_RXSTAT_CRCERROR |
MEC_RXSTAT_VIOLATION)) {
- printf("%s: mec_rxintr: status = 0x%016llx\n",
+ printf("%s: mec_rxintr: status = 0x%016"PRIx64"\n",
device_xname(sc->sc_dev), rxstat);
goto dropit;
}
@@ -1815,7 +1815,7 @@
ifp->if_collisions += col;
if ((txstat & MEC_TXSTAT_SUCCESS) == 0) {
- printf("%s: TX error: txstat = 0x%016llx\n",
+ printf("%s: TX error: txstat = 0x%016"PRIx64"\n",
device_xname(sc->sc_dev), txstat);
ifp->if_oerrors++;
} else
Index: src/sys/arch/sgimips/mace/mace.c
diff -u src/sys/arch/sgimips/mace/mace.c:1.15 src/sys/arch/sgimips/mace/mace.c:1.15.12.1
--- src/sys/arch/sgimips/mace/mace.c:1.15 Sat Aug 23 17:43:36 2008
+++ src/sys/arch/sgimips/mace/mace.c Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: mace.c,v 1.15 2008/08/23 17:43:36 tsutsui Exp $ */
+/* $NetBSD: mace.c,v 1.15.12.1 2009/09/10 01:51:32 matt Exp $ */
/*
* Copyright (c) 2003 Christopher Sekiya
@@ -45,7 +45,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mace.c,v 1.15 2008/08/23 17:43:36 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mace.c,v 1.15.12.1 2009/09/10 01:51:32 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -146,9 +146,9 @@
aprint_normal("\n");
- aprint_debug("%s: isa sts %llx\n", self->dv_xname,
+ aprint_debug("%s: isa sts %#"PRIx64"\n", self->dv_xname,
bus_space_read_8(sc->iot, sc->ioh, MACE_ISA_INT_STATUS));
- aprint_debug("%s: isa msk %llx\n", self->dv_xname,
+ aprint_debug("%s: isa msk %#"PRIx64"\n", self->dv_xname,
bus_space_read_8(sc->iot, sc->ioh, MACE_ISA_INT_MASK));
/*
Index: src/sys/arch/sgimips/sgimips/bus.c
diff -u src/sys/arch/sgimips/sgimips/bus.c:1.55 src/sys/arch/sgimips/sgimips/bus.c:1.55.16.1
--- src/sys/arch/sgimips/sgimips/bus.c:1.55 Wed Jun 4 12:41:41 2008
+++ src/sys/arch/sgimips/sgimips/bus.c Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: bus.c,v 1.55 2008/06/04 12:41:41 ad Exp $ */
+/* $NetBSD: bus.c,v 1.55.16.1 2009/09/10 01:51:32 matt Exp $ */
/*
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bus.c,v 1.55 2008/06/04 12:41:41 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus.c,v 1.55.16.1 2009/09/10 01:51:32 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1087,6 +1087,16 @@
high = avail_end - PAGE_SIZE;
+#if defined(_MIPS_PADDR_T_64BIT) || defined(_LP64)
+ /*
+ * Limit dma to low 4GB if HPC
+ */
+ if (t == (bus_dma_tag_t) SGIMIPS_BUS_SPACE_HPC) {
+ if ((uint32_t) high != (uint64_t) high)
+ high = trunc_page(0xffffffff);
+ }
+#endif
+
/*
* Allocate pages from the VM system.
*/
Index: src/sys/arch/sgimips/sgimips/machdep.c
diff -u src/sys/arch/sgimips/sgimips/machdep.c:1.121.8.1 src/sys/arch/sgimips/sgimips/machdep.c:1.121.8.2
--- src/sys/arch/sgimips/sgimips/machdep.c:1.121.8.1 Mon Sep 7 23:46:46 2009
+++ src/sys/arch/sgimips/sgimips/machdep.c Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.121.8.1 2009/09/07 23:46:46 matt Exp $ */
+/* $NetBSD: machdep.c,v 1.121.8.2 2009/09/10 01:51:32 matt Exp $ */
/*
* Copyright (c) 2000 Soren S. Jorvang
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.121.8.1 2009/09/07 23:46:46 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.121.8.2 2009/09/10 01:51:32 matt Exp $");
#include "opt_ddb.h"
#include "opt_kgdb.h"
@@ -177,7 +177,7 @@
extern void mips3_clock_intr(u_int32_t, u_int32_t, u_int32_t, u_int32_t);
#endif
-void mach_init(int, char **, u_int, void *);
+void mach_init(int, char **, uintptr_t, void *);
void sgimips_count_cpus(struct arcbios_component *,
struct arcbios_treewalk_context *);
@@ -232,18 +232,14 @@
static uint8_t bi_buf[BOOTINFO_SIZE]; /* buffer to store bootinfo data */
static const char *bootinfo_msg = NULL;
-#if defined(_LP64)
-#define ARCS_VECTOR 0xa800000000001000
-#else
-#define ARCS_VECTOR (MIPS_PHYS_TO_KSEG0(0x00001000))
-#endif
+#define ARCS_VECTOR MIPS_PHYS_TO_KSEG0(0x00001000)
/*
* Do all the stuff that locore normally does before calling main().
* Process arguments passed to us by the ARCS firmware.
*/
void
-mach_init(int argc, char *argv[], u_int magic, void *bip)
+mach_init(int argc, char *argv[], uintptr_t magic, void *bip)
{
paddr_t first, last;
int firstpfn, lastpfn;
@@ -701,7 +697,7 @@
#endif
proc0paddr->u_pcb.pcb_context.val[_L_SR] =
#ifdef _LP64
- MIPS_SR_KZ |
+ MIPS_SR_KX |
#endif
MIPS_INT_MASK | MIPS_SR_INT_IE; /* SR */
}
Index: src/sys/arch/sgimips/stand/Makefile.booters
diff -u src/sys/arch/sgimips/stand/Makefile.booters:1.15 src/sys/arch/sgimips/stand/Makefile.booters:1.15.22.1
--- src/sys/arch/sgimips/stand/Makefile.booters:1.15 Fri Mar 28 16:41:37 2008
+++ src/sys/arch/sgimips/stand/Makefile.booters Thu Sep 10 01:51:32 2009
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.booters,v 1.15 2008/03/28 16:41:37 tsutsui Exp $
+# $NetBSD: Makefile.booters,v 1.15.22.1 2009/09/10 01:51:32 matt Exp $
.include <bsd.sys.mk> # for HOST_SH
@@ -20,9 +20,13 @@
CPPFLAGS+= -nostdinc -D_STANDALONE -DNO_ABICALLS -I${.OBJDIR} -I${S}
# compiler flags for smallest code size
CFLAGS= -ffreestanding -Os -Wall -Werror -mno-abicalls -msoft-float -G 1024
-CFLAGS+= -Wall -Werror
-CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
-CFLAGS+= -Wno-pointer-sign
+.if ${MACHINE_ARCH} == "mips64eb"
+CPUFLAGS+= -mabi=n32
+LDFLAGS+= -mabi=n32
+.endif
+CWARNFLAGS+= -Wall -Werror
+CWARNFLAGS+= -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
+CWARNFLAGS+= -Wno-pointer-sign
LDBUG= -T $S/arch/mips/conf/stand.ldscript
NETBSD_VERS!= ${HOST_SH} ${.CURDIR}/../../../../conf/osrelease.sh
CPPFLAGS+= -DNETBSD_VERS='"${NETBSD_VERS}"'
Index: src/sys/arch/sgimips/stand/boot/Makefile
diff -u src/sys/arch/sgimips/stand/boot/Makefile:1.13 src/sys/arch/sgimips/stand/boot/Makefile:1.13.22.1
--- src/sys/arch/sgimips/stand/boot/Makefile:1.13 Sat Feb 23 05:42:51 2008
+++ src/sys/arch/sgimips/stand/boot/Makefile Thu Sep 10 01:51:32 2009
@@ -1,6 +1,5 @@
-# $NetBSD: Makefile,v 1.13 2008/02/23 05:42:51 tsutsui Exp $
+# $NetBSD: Makefile,v 1.13.22.1 2009/09/10 01:51:32 matt Exp $
-PROG= aoutboot
# Don't strip the ECOFF'ed version on install -- strip gets confused by that,
# and it's already stripped since it's a copy of the stripped ELF one.
@@ -10,27 +9,33 @@
SRCS= start.S boot.c bootinfo.c conf.c devopen.c putchar.c getchar.c \
getopt.c disk.c
+PROG= aoutboot
${PROG}: ip2xboot ip3xboot
+.if ${MACHINE_ARCH} == "mipseb"
${OBJCOPY} --impure -O ecoff-bigmips \
- -R .pdr -R .mdebug.abi32 -R .comment -R .ident \
- ip2xboot aoutboot
+ -R .pdr -R .mdebug.nabi32 R .mdebug.abi32 \
+ -R .comment -R .ident \
+ ip2xboot ${.TARGET}
+.else
+ touch ${.TARGET}
+.endif
# XXX Temporary hack to install the ELF version, too.
FILES+= ip2xboot ip3xboot
CLEANFILES+= ip2xboot ip2xboot.elf ip3xboot ip3xboot.elf
-CLEANFILES+= boot.map
+CLEANFILES+= ip2xboot.map ip3xboot.map
.include "../Makefile.booters"
ip3xboot: ${OBJS} ${LIBS}
- ${LD} -Map boot.map -N -x -Ttext ${LOAD_ADDRESS_IP32} ${LDBUG} \
+ ${LD} -Map ${.TARGET}.map -N -x -Ttext ${LOAD_ADDRESS_IP32} ${LDBUG} \
-e start -o ${.TARGET}.elf ${OBJS} ${LIBS}
@${STRIP} -s ${.TARGET}.elf -o ${.TARGET}
@${SIZE} ${.TARGET}
ip2xboot: ${OBJS} ${LIBS}
- ${LD} -Map boot.map -N -x -Ttext ${LOAD_ADDRESS} ${LDBUG} \
+ ${LD} -Map ${.TARGET}.map -N -x -Ttext ${LOAD_ADDRESS} ${LDBUG} \
-e start -o ${.TARGET}.elf ${OBJS} ${LIBS}
@${STRIP} -s ${.TARGET}.elf -o ${.TARGET}
@${SIZE} ${.TARGET}
Added files:
Index: src/sys/arch/sgimips/conf/GENERIC64_IP2x
diff -u /dev/null src/sys/arch/sgimips/conf/GENERIC64_IP2x:1.1.2.1
--- /dev/null Thu Sep 10 01:51:33 2009
+++ src/sys/arch/sgimips/conf/GENERIC64_IP2x Thu Sep 10 01:51:31 2009
@@ -0,0 +1,51 @@
+# $NetBSD: GENERIC64_IP2x,v 1.1.2.1 2009/09/10 01:51:31 matt Exp $
+#
+# GENERIC32_IP2x 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.
+#
+#
+# Currently this config file supports Indigo R4k, Indigo2 and Indy
+# (IP20, IP22 and IP24, respectively).
+#
+
+include "arch/sgimips/conf/GENERIC32_IP2x"
+include "arch/sgimips/conf/std.sgimips64"
+
+no makeoptions TEXTADDR # entry point
+makeoptions TEXTADDR=0xffffffff88069000 # entry point
+
+#ident "GENERIC64-IP2x-$Revision: 1.1.2.1 $"
+
+no makeoptions WANT_ECOFF
+makeoptions WANT_ECOFF="no" # Create an ECOFF kernel in addition
+ # to an ELF kernel -- required for
+ # netbooting Indigo (IP20) and some
+ # Indigo2 (IP22) machines
+
+# Compatibility options
+#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_IRIX # binary compatibility with IRIX
+#options COMPAT_LINUX # binary compatibility with Linux
+#options COMPAT_ULTRIX # binary compatibility with Ultrix
+#options COMPAT_BSDPTY # /dev/[pt]ty?? ptys.
Index: src/sys/arch/sgimips/conf/GENERIC64_IP3x
diff -u /dev/null src/sys/arch/sgimips/conf/GENERIC64_IP3x:1.1.2.1
--- /dev/null Thu Sep 10 01:51:33 2009
+++ src/sys/arch/sgimips/conf/GENERIC64_IP3x Thu Sep 10 01:51:31 2009
@@ -0,0 +1,44 @@
+# $NetBSD: GENERIC64_IP3x,v 1.1.2.1 2009/09/10 01:51:31 matt Exp $
+#
+# GENERIC32_IP3x 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.
+#
+#
+# Currently this config file supports O2 (IP32).
+#
+
+include "arch/sgimips/conf/GENERIC32_IP3x"
+include "arch/sgimips/conf/std.sgimips64"
+
+no makeoptions TEXTADDR
+makeoptions TEXTADDR="0xffffffff80069000" # entry point
+
+#ident "GENERIC64_IP3x-$Revision: 1.1.2.1 $"
+
+# Compatibility options
+#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_IRIX # binary compatibility with IRIX
+#options COMPAT_LINUX # binary compatibility with Linux
+#options COMPAT_ULTRIX # binary compatibility with Ultrix
+#options COMPAT_BSDPTY # /dev/[pt]ty?? ptys.
Index: src/sys/arch/sgimips/conf/INSTALL64_IP2x
diff -u /dev/null src/sys/arch/sgimips/conf/INSTALL64_IP2x:1.1.2.1
--- /dev/null Thu Sep 10 01:51:33 2009
+++ src/sys/arch/sgimips/conf/INSTALL64_IP2x Thu Sep 10 01:51:31 2009
@@ -0,0 +1,14 @@
+#
+# sgimips install kernel with ramdisk added.
+#
+
+# Pull in standard `install' config
+include "arch/sgimips/conf/GENERIC64_IP2x"
+
+makeoptions COPTS="-Os"
+
+# 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=6144# size of memory disk, in blocks (3MB)
Index: src/sys/arch/sgimips/conf/INSTALL64_IP3x
diff -u /dev/null src/sys/arch/sgimips/conf/INSTALL64_IP3x:1.1.2.1
--- /dev/null Thu Sep 10 01:51:33 2009
+++ src/sys/arch/sgimips/conf/INSTALL64_IP3x Thu Sep 10 01:51:31 2009
@@ -0,0 +1,14 @@
+#
+# sgimips install kernel with ramdisk added.
+#
+
+# Pull in standard `install' config
+include "arch/sgimips/conf/GENERIC64_IP3x"
+
+makeoptions COPTS="-Os"
+
+# 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=8192# size of memory disk, in blocks (4MB)
Index: src/sys/arch/sgimips/conf/std.sgimips64
diff -u /dev/null src/sys/arch/sgimips/conf/std.sgimips64:1.1.2.1
--- /dev/null Thu Sep 10 01:51:33 2009
+++ src/sys/arch/sgimips/conf/std.sgimips64 Thu Sep 10 01:51:31 2009
@@ -0,0 +1,8 @@
+# $NetBSD: std.sgimips64,v 1.1.2.1 2009/09/10 01:51:31 matt Exp $
+
+no makeoptions MACHINE_ARCH
+makeoptions MACHINE_ARCH="mips64eb"
+makeoptions LP64="yes"
+
+no options EXEC_ELF32
+options EXEC_ELF64 # exec ELF64 binaries