Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch Merge from matt-nb5-mips64



details:   https://anonhg.NetBSD.org/src/rev/27064c6eec10
branches:  trunk
changeset: 749985:27064c6eec10
user:      matt <matt%NetBSD.org@localhost>
date:      Mon Dec 14 00:45:59 2009 +0000

description:
Merge from matt-nb5-mips64
Merge mips-specific arch files.

diffstat:

 sys/arch/algor/algor/bus_dma.c                     |    10 +-
 sys/arch/algor/algor/interrupt.c                   |     6 +-
 sys/arch/algor/algor/machdep.c                     |    42 +-
 sys/arch/algor/algor/pmon.c                        |    21 +-
 sys/arch/algor/conf/P5064-64                       |    12 +
 sys/arch/algor/conf/std.algor64                    |    13 +
 sys/arch/algor/include/elf_machdep.h               |    13 +-
 sys/arch/algor/include/netbsd32_machdep.h          |     3 +
 sys/arch/algor/include/param.h                     |    32 +-
 sys/arch/algor/include/vmparam.h                   |     4 +-
 sys/arch/arc/arc/interrupt.c                       |     6 +-
 sys/arch/cobalt/cobalt/bus.c                       |    12 +-
 sys/arch/cobalt/cobalt/interrupt.c                 |     6 +-
 sys/arch/cobalt/cobalt/machdep.c                   |    15 +-
 sys/arch/cobalt/include/elf_machdep.h              |     4 +-
 sys/arch/cobalt/include/param.h                    |    32 +-
 sys/arch/cobalt/include/vmparam.h                  |     5 +-
 sys/arch/evbmips/adm5120/machdep.c                 |    12 +-
 sys/arch/evbmips/alchemy/machdep.c                 |    12 +-
 sys/arch/evbmips/atheros/machdep.c                 |    12 +-
 sys/arch/evbmips/conf/ALCHEMY                      |     6 +-
 sys/arch/evbmips/conf/INSTALL_MALTA                |    14 +
 sys/arch/evbmips/conf/INSTALL_MALTA32              |    14 +
 sys/arch/evbmips/conf/INSTALL_MALTA64              |    14 +
 sys/arch/evbmips/conf/MALTA                        |     8 +-
 sys/arch/evbmips/conf/MALTA32                      |    11 +
 sys/arch/evbmips/conf/MALTA64                      |    13 +
 sys/arch/evbmips/conf/XLS6ATX_7A                   |   194 +
 sys/arch/evbmips/conf/XLS6ATX_7A64                 |     9 +
 sys/arch/evbmips/conf/files.rmixl                  |    84 +
 sys/arch/evbmips/conf/std.malta                    |     3 +-
 sys/arch/evbmips/conf/std.rmixl                    |    21 +
 sys/arch/evbmips/evbmips/interrupt.c               |     6 +-
 sys/arch/evbmips/include/elf_machdep.h             |    10 +-
 sys/arch/evbmips/include/intr.h                    |     3 +-
 sys/arch/evbmips/include/netbsd32_machdep.h        |     3 +
 sys/arch/evbmips/include/param.h                   |    39 +-
 sys/arch/evbmips/include/vmparam.h                 |     7 +-
 sys/arch/evbmips/include/yamon.h                   |     4 +-
 sys/arch/evbmips/malta/machdep.c                   |    26 +-
 sys/arch/evbmips/rmixl/autoconf.c                  |   114 +
 sys/arch/evbmips/rmixl/cpu.c                       |    70 +
 sys/arch/evbmips/rmixl/machdep.c                   |   915 +++++++
 sys/arch/ews4800mips/ews4800mips/interrupt.c       |     8 +-
 sys/arch/ews4800mips/ews4800mips/machdep.c         |    12 +-
 sys/arch/ews4800mips/ews4800mips/sbd.c             |    10 +-
 sys/arch/ews4800mips/include/elf_machdep.h         |     4 +-
 sys/arch/ews4800mips/include/param.h               |    32 +-
 sys/arch/ews4800mips/include/sbdvar.h              |     6 +-
 sys/arch/ews4800mips/include/vmparam.h             |     5 +-
 sys/arch/ews4800mips/sbd/sbdio.c                   |     8 +-
 sys/arch/hpcmips/hpcmips/bus_dma.c                 |    10 +-
 sys/arch/hpcmips/hpcmips/cpu.c                     |     6 +-
 sys/arch/hpcmips/hpcmips/interrupt.c               |     6 +-
 sys/arch/hpcmips/hpcmips/machdep.c                 |    41 +-
 sys/arch/hpcmips/include/elf_machdep.h             |    10 +-
 sys/arch/hpcmips/include/param.h                   |    33 +-
 sys/arch/hpcmips/include/sysconf.h                 |     4 +-
 sys/arch/hpcmips/include/vmparam.h                 |     5 +-
 sys/arch/mips/conf/Makefile.mips                   |    21 +-
 sys/arch/mips/conf/files.mips                      |     9 +-
 sys/arch/mips/conf/files.rmixl                     |    29 +
 sys/arch/mips/include/ansi.h                       |     9 +-
 sys/arch/mips/include/asm.h                        |   376 ++-
 sys/arch/mips/include/bus_space.h                  |    11 +-
 sys/arch/mips/include/cdefs.h                      |    36 +-
 sys/arch/mips/include/cpu.h                        |   139 +-
 sys/arch/mips/include/cpuregs.h                    |   101 +-
 sys/arch/mips/include/elf_machdep.h                |    94 +-
 sys/arch/mips/include/endian_machdep.h             |    24 +-
 sys/arch/mips/include/int_fmtio.h                  |    65 +-
 sys/arch/mips/include/int_types.h                  |     4 +-
 sys/arch/mips/include/isa_machdep.h                |     4 +-
 sys/arch/mips/include/locore.h                     |   184 +-
 sys/arch/mips/include/mcontext.h                   |    61 +-
 sys/arch/mips/include/mips3_pte.h                  |     6 +-
 sys/arch/mips/include/mips_param.h                 |    65 +-
 sys/arch/mips/include/netbsd32_machdep.h           |    85 +
 sys/arch/mips/include/pcb.h                        |    10 +-
 sys/arch/mips/include/pci_machdep.h                |     7 +-
 sys/arch/mips/include/pmap.h                       |    22 +-
 sys/arch/mips/include/proc.h                       |    10 +-
 sys/arch/mips/include/psl.h                        |    12 +-
 sys/arch/mips/include/reg.h                        |     8 +-
 sys/arch/mips/include/regnum.h                     |    84 +-
 sys/arch/mips/include/setjmp.h                     |    10 +-
 sys/arch/mips/include/signal.h                     |    65 +-
 sys/arch/mips/include/stdarg.h                     |    10 +-
 sys/arch/mips/include/types.h                      |    93 +-
 sys/arch/mips/include/vmparam.h                    |    64 +-
 sys/arch/mips/mips/bus_dma.c                       |    48 +-
 sys/arch/mips/mips/bus_space_alignstride_chipdep.c |   284 +-
 sys/arch/mips/mips/cache_mipsNN.c                  |    26 +-
 sys/arch/mips/mips/cache_r3k_subr.S                |     4 +-
 sys/arch/mips/mips/cache_r5k_subr.S                |    15 +-
 sys/arch/mips/mips/compat_13_machdep.c             |    26 +-
 sys/arch/mips/mips/compat_16_machdep.c             |    52 +-
 sys/arch/mips/mips/copy.S                          |   477 ++-
 sys/arch/mips/mips/cpu_exec.c                      |   235 +-
 sys/arch/mips/mips/db_disasm.c                     |    10 +-
 sys/arch/mips/mips/db_interface.c                  |   248 +-
 sys/arch/mips/mips/db_trace.c                      |    35 +-
 sys/arch/mips/mips/fp.S                            |  2559 ++++++++++---------
 sys/arch/mips/mips/genassym.cf                     |    50 +-
 sys/arch/mips/mips/lock_stubs.S                    |   140 +-
 sys/arch/mips/mips/locore.S                        |   444 ++-
 sys/arch/mips/mips/locore_mips1.S                  |     6 +-
 sys/arch/mips/mips/locore_mips3.S                  |   102 +-
 sys/arch/mips/mips/mem.c                           |    14 +-
 sys/arch/mips/mips/mipsX_subr.S                    |   705 +++--
 sys/arch/mips/mips/mips_emul.c                     |   475 ++-
 sys/arch/mips/mips/mips_fputrap.c                  |     6 +-
 sys/arch/mips/mips/mips_machdep.c                  |   868 ++++--
 sys/arch/mips/mips/mips_mcclock_loop.S             |    56 +-
 sys/arch/mips/mips/netbsd32_machdep.c              |   326 ++
 sys/arch/mips/mips/pmap.c                          |   233 +-
 sys/arch/mips/mips/process_machdep.c               |    38 +-
 sys/arch/mips/mips/sig_machdep.c                   |    20 +-
 sys/arch/mips/mips/syscall.c                       |   473 +--
 sys/arch/mips/mips/trap.c                          |   172 +-
 sys/arch/mips/mips/vm_machdep.c                    |    76 +-
 sys/arch/mips/rmi/rmixl_com.c                      |   321 ++
 sys/arch/mips/rmi/rmixl_comvar.h                   |    45 +
 sys/arch/mips/rmi/rmixl_firmware.h                 |   131 +
 sys/arch/mips/rmi/rmixl_intr.c                     |   703 +++++
 sys/arch/mips/rmi/rmixl_mainbus.c                  |    90 +
 sys/arch/mips/rmi/rmixl_obio.c                     |   345 ++
 sys/arch/mips/rmi/rmixl_obio_space.c               |    62 +
 sys/arch/mips/rmi/rmixl_obiovar.h                  |    31 +
 sys/arch/mips/rmi/rmixl_pcie.c                     |  1153 +++++++++
 sys/arch/mips/rmi/rmixl_pcie_cfg_space.c           |    65 +
 sys/arch/mips/rmi/rmixl_pcie_ecfg_space.c          |    65 +
 sys/arch/mips/rmi/rmixl_pcie_io_space.c            |    63 +
 sys/arch/mips/rmi/rmixl_pcie_mem_space.c           |    63 +
 sys/arch/mips/rmi/rmixl_pcievar.h                  |    37 +
 sys/arch/mips/rmi/rmixl_subr.S                     |    35 +
 sys/arch/mips/rmi/rmixlreg.h                       |   520 ++++
 sys/arch/mips/rmi/rmixlvar.h                       |   140 +
 sys/arch/mips/sibyte/dev/sbgbus.c                  |     8 +-
 sys/arch/mips/sibyte/dev/sbjcn.c                   |     8 +-
 sys/arch/mips/sibyte/dev/sbmac.c                   |    14 +-
 sys/arch/mips/sibyte/dev/sbobio.c                  |     8 +-
 sys/arch/mips/sibyte/dev/sbscn.c                   |    12 +-
 sys/arch/mips/sibyte/dev/sbtimer.c                 |    23 +-
 sys/arch/mips/sibyte/dev/sbwdog.c                  |     8 +-
 sys/arch/mipsco/include/elf_machdep.h              |     5 +-
 sys/arch/mipsco/include/param.h                    |    32 +-
 sys/arch/mipsco/include/vmparam.h                  |     5 +-
 sys/arch/mipsco/mipsco/interrupt.c                 |     6 +-
 sys/arch/newsmips/apbus/dmac3.c                    |     6 +-
 sys/arch/newsmips/include/elf_machdep.h            |    10 +-
 sys/arch/newsmips/include/param.h                  |    32 +-
 sys/arch/newsmips/include/vmparam.h                |     5 +-
 sys/arch/newsmips/newsmips/bus.c                   |    12 +-
 sys/arch/newsmips/newsmips/machdep.c               |    14 +-
 sys/arch/pmax/conf/GENERIC64                       |   308 ++
 sys/arch/pmax/conf/INSTALL64                       |   158 +
 sys/arch/pmax/conf/Makefile.pmax.inc               |     4 +-
 sys/arch/pmax/conf/RAMDISK64                       |    25 +
 sys/arch/pmax/conf/std.pmax64                      |    15 +
 sys/arch/pmax/include/dec_prom.h                   |    70 +-
 sys/arch/pmax/include/elf_machdep.h                |    13 +-
 sys/arch/pmax/include/loadfile_machdep.h           |     3 +-
 sys/arch/pmax/include/netbsd32_machdep.h           |     3 +
 sys/arch/pmax/include/param.h                      |    32 +-
 sys/arch/pmax/include/tc_machdep.h                 |     6 +-
 sys/arch/pmax/include/vmparam.h                    |     4 +-
 sys/arch/pmax/pmax/bus_dma.c                       |    12 +-
 sys/arch/pmax/pmax/dec_3maxplus.c                  |    13 +-
 sys/arch/pmax/pmax/dec_3min.c                      |    18 +-
 sys/arch/pmax/pmax/dec_maxine.c                    |    12 +-
 sys/arch/pmax/pmax/interrupt.c                     |     9 +-
 sys/arch/pmax/pmax/machdep.c                       |    67 +-
 sys/arch/pmax/pmax/machdep.h                       |     6 +-
 sys/arch/pmax/pmax/memc.h                          |     4 +-
 sys/arch/pmax/pmax/memc_3max.c                     |     6 +-
 sys/arch/pmax/pmax/memc_3min.c                     |    17 +-
 sys/arch/pmax/pmax/promcall.c                      |     4 +-
 sys/arch/pmax/stand/common/callvec.c               |    65 +-
 sys/arch/pmax/stand/common/printf.S                |    25 +-
 sys/arch/pmax/stand/common/startprog.S             |    33 +-
 sys/arch/pmax/tc/asc_ioasic.c                      |     8 +-
 sys/arch/sbmips/conf/GENERIC64                     |    10 +
 sys/arch/sbmips/conf/std.sbmips                    |    12 +-
 sys/arch/sbmips/include/autoconf.h                 |    39 +-
 sys/arch/sbmips/include/elf_machdep.h              |    10 +-
 sys/arch/sbmips/include/loadfile_machdep.h         |     3 +-
 sys/arch/sbmips/include/netbsd32_machdep.h         |     3 +
 sys/arch/sbmips/include/param.h                    |    39 +-
 sys/arch/sbmips/include/systemsw.h                 |     6 +-
 sys/arch/sbmips/include/vmparam.h                  |     5 +-
 sys/arch/sbmips/sbmips/cpu.c                       |     6 +-
 sys/arch/sbmips/sbmips/rtc.c                       |     8 +-
 sys/arch/sbmips/sbmips/sb1250_icu.c                |    18 +-
 sys/arch/sbmips/sbmips/systemsw.c                  |    10 +-
 sys/arch/sgimips/conf/GENERIC32_IP3x               |     6 +-
 sys/arch/sgimips/conf/GENERIC64_IP2x               |    51 +
 sys/arch/sgimips/conf/GENERIC64_IP3x               |    44 +
 sys/arch/sgimips/conf/INSTALL64_IP2x               |    14 +
 sys/arch/sgimips/conf/INSTALL64_IP3x               |    14 +
 sys/arch/sgimips/conf/std.sgimips64                |     8 +
 sys/arch/sgimips/dev/int.c                         |     6 +-
 sys/arch/sgimips/hpc/hpc.c                         |     6 +-
 sys/arch/sgimips/hpc/hpcdma.c                      |    10 +-
 sys/arch/sgimips/hpc/if_sq.c                       |    12 +-
 sys/arch/sgimips/hpc/wdsc.c                        |     6 +-
 sys/arch/sgimips/include/elf_machdep.h             |     4 +-
 sys/arch/sgimips/include/loadfile_machdep.h        |     3 +-
 sys/arch/sgimips/include/netbsd32_machdep.h        |     3 +
 sys/arch/sgimips/include/param.h                   |    33 +-
 sys/arch/sgimips/include/vmparam.h                 |     5 +-
 sys/arch/sgimips/mace/if_mec.c                     |    10 +-
 sys/arch/sgimips/mace/mace.c                       |    12 +-
 sys/arch/sgimips/sgimips/bus.c                     |    12 +-
 sys/arch/sgimips/sgimips/cpu.c                     |     6 +-
 sys/arch/sgimips/sgimips/machdep.c                 |    22 +-
 sys/arch/sgimips/stand/Makefile.booters            |    12 +-
 sys/arch/sgimips/stand/boot/Makefile               |    19 +-
 218 files changed, 13124 insertions(+), 4381 deletions(-)

diffs (truncated from 26707 to 300 lines):

diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/algor/bus_dma.c
--- a/sys/arch/algor/algor/bus_dma.c    Mon Dec 14 00:43:58 2009 +0000
+++ b/sys/arch/algor/algor/bus_dma.c    Mon Dec 14 00:45:59 2009 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: bus_dma.c,v 1.21 2009/08/21 03:45:10 thorpej Exp $     */
+/*     $NetBSD: bus_dma.c,v 1.22 2009/12/14 00:45:59 matt Exp $        */
 
 /*-
  * Copyright (c) 1997, 1998, 2001 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
 
 #include <sys/cdefs.h>                 /* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.21 2009/08/21 03:45:10 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.22 2009/12/14 00:45:59 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -125,6 +125,7 @@
 {
        bus_size_t sgsize;
        bus_addr_t curaddr, lastaddr, baddr, bmask;
+       paddr_t pa;
        vaddr_t vaddr = (vaddr_t)buf;
        int seg;
 
@@ -137,9 +138,10 @@
                 */
                if (!VMSPACE_IS_KERNEL_P(vm))
                        (void) pmap_extract(vm_map_pmap(&vm->vm_map),
-                           vaddr, &curaddr);
+                           vaddr, &pa);
                else
-                       curaddr = kvtophys(vaddr);
+                       pa = kvtophys(vaddr);
+               curaddr = pa;
 
                /*
                 * If we're beyond the current DMA window, indicate
diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/algor/interrupt.c
--- a/sys/arch/algor/algor/interrupt.c  Mon Dec 14 00:43:58 2009 +0000
+++ b/sys/arch/algor/algor/interrupt.c  Mon Dec 14 00:45:59 2009 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: interrupt.c,v 1.13 2008/04/28 20:23:10 martin Exp $    */
+/*     $NetBSD: interrupt.c,v 1.14 2009/12/14 00:45:59 matt Exp $      */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: interrupt.c,v 1.13 2008/04/28 20:23:10 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: interrupt.c,v 1.14 2009/12/14 00:45:59 matt Exp $");
 
 #include "opt_algor_p4032.h"
 #include "opt_algor_p5064.h" 
@@ -109,7 +109,7 @@
 }
 
 void
-cpu_intr(u_int32_t status, u_int32_t cause, u_int32_t pc, u_int32_t ipending)
+cpu_intr(u_int32_t status, u_int32_t cause, vaddr_t pc, u_int32_t ipending)
 {
        struct clockframe cf;
        struct cpu_info *ci;
diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/algor/machdep.c
--- a/sys/arch/algor/algor/machdep.c    Mon Dec 14 00:43:58 2009 +0000
+++ b/sys/arch/algor/algor/machdep.c    Mon Dec 14 00:45:59 2009 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: machdep.c,v 1.43 2009/11/27 03:23:03 rmind Exp $       */
+/*     $NetBSD: machdep.c,v 1.44 2009/12/14 00:45:59 matt Exp $        */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -106,7 +106,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.43 2009/11/27 03:23:03 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.44 2009/12/14 00:45:59 matt Exp $");
 
 #include "opt_algor_p4032.h"
 #include "opt_algor_p5064.h" 
@@ -209,11 +209,9 @@
        vaddr_t kernstart, kernend;
        paddr_t kernstartpfn, kernendpfn, pfn0, pfn1;
        vsize_t size;
-       struct pcb *pcb0;
-       vaddr_t v;
        const char *cp;
        char *cp0;
-       int i;
+       size_t i;
 
        /* Disable interrupts. */
        (void) splhigh();
@@ -403,7 +401,12 @@
        led_display('b', 'o', 'p', 't');
        boothowto = 0;
        if (argc > 1) {
-               for (cp = argv[1]; cp != NULL && *cp != '\0'; cp++) {
+#ifdef _LP64
+               cp = (void *)(intptr_t)((int32_t *)argv)[1];
+#else
+               cp = argv[1];
+#endif
+               for (; cp != NULL && *cp != '\0'; cp++) {
                        switch (*cp) {
 #if defined(KGDB) || defined(DDB)
                        case 'd':       /* break into kernel debugger */
@@ -472,11 +475,11 @@
         * it's already in bytes, not megabytes.
         */
        if (size < 1024) {
-               printf("Memory size: 0x%08lx (0x%08lx)\n", size * 1024 * 1024,
-                   size);
+               printf("Memory size: %#"PRIxVSIZE" (%"PRIxVSIZE")\n",
+                   size * 1024 * 1024, size);
                size *= 1024 * 1024;
        } else
-               printf("Memory size: 0x%08lx\n", size);
+               printf("Memory size: %#"PRIxVSIZE"\n", size);
 
        mem_clusters[mem_cluster_cnt].start = PAGE_SIZE;
        mem_clusters[mem_cluster_cnt].size =
@@ -507,7 +510,7 @@
                         * within the segment.
                         */
 #if 1
-                       printf("Cluster %d contains kernel\n", i);
+                       printf("Cluster %zu contains kernel\n", i);
 #endif
                        if (pfn0 < kernstartpfn) {
                                /*
@@ -515,7 +518,8 @@
                                 */
 #if 1
                                printf("Loading chunk before kernel: "
-                                   "0x%lx / 0x%lx\n", pfn0, kernstartpfn);
+                                   "%#"PRIxPADDR" / %#"PRIxPADDR"\n",
+                                   pfn0, kernstartpfn);
 #endif
                                uvm_page_physload(pfn0, kernstartpfn,
                                    pfn0, kernstartpfn, VM_FREELIST_DEFAULT);
@@ -526,7 +530,8 @@
                                 */
 #if 1
                                printf("Loading chunk after kernel: "
-                                   "0x%lx / 0x%lx\n", kernendpfn, pfn1);
+                                   "%#"PRIxPADDR" / %#"PRIxPADDR"\n",
+                                   kernendpfn, pfn1);
 #endif
                                uvm_page_physload(kernendpfn, pfn1,
                                    kernendpfn, pfn1, VM_FREELIST_DEFAULT);
@@ -536,8 +541,8 @@
                         * Just load this cluster as one chunk.
                         */
 #if 1
-                       printf("Loading cluster %d: 0x%lx / 0x%lx\n", i,
-                           pfn0, pfn1);
+                       printf("Loading cluster %zu: %#"PRIxPADDR
+                           " / %#"PRIxPADDR"\n", i, pfn0, pfn1);
 #endif
                        uvm_page_physload(pfn0, pfn1, pfn0, pfn1,
                            VM_FREELIST_DEFAULT);
@@ -563,14 +568,7 @@
         * Allocate uarea page for lwp0 and set it.
         */
        led_display('u', 's', 'p', 'c');
-
-       v = uvm_pageboot_alloc(USPACE);
-       uvm_lwp_setuarea(&lwp0, v);
-
-       pcb0 = lwp_getpcb(&lwp0);
-       pcb0->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE; /* SR */
-
-       lwp0.l_md.md_regs = (struct frame *)(v + USPACE) - 1;
+       mips_init_lwp0_uarea();
 
        /*
         * Initialize debuggers, and break into them, if appropriate.
diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/algor/pmon.c
--- a/sys/arch/algor/algor/pmon.c       Mon Dec 14 00:43:58 2009 +0000
+++ b/sys/arch/algor/algor/pmon.c       Mon Dec 14 00:45:59 2009 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmon.c,v 1.5 2008/04/28 20:23:10 martin Exp $  */
+/*     $NetBSD: pmon.c,v 1.6 2009/12/14 00:45:59 matt Exp $    */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,14 +30,18 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmon.c,v 1.5 2008/04/28 20:23:10 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmon.c,v 1.6 2009/12/14 00:45:59 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
 
 #include <machine/pmon.h>
 
+#ifdef _LP64
+static char *environ[64];
+#else
 static char **environ;
+#endif
 
 /*
  * pmon_init:
@@ -47,9 +51,22 @@
 void
 pmon_init(char *envp[])
 {
+#ifdef _LP64
+       int32_t *envp32 = (void *) envp;
 
+       envp = environ;
+       if (envp32 != NULL) {
+               while (*envp32 != 0) {
+                       KASSERT(envp - environ < __arraycount(environ));
+                       *envp++ = (char *)(intptr_t)*envp32++;
+               }
+       }
+       KASSERT(envp - environ < __arraycount(environ));
+       *envp = NULL;
+#else
        if (environ == NULL)
                environ = envp;
+#endif
 #ifdef PMON_DEBUG
        printf("pmon_init: environ = %p (%p)\n", environ, *environ);
 #endif
diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/conf/P5064-64
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/algor/conf/P5064-64      Mon Dec 14 00:45:59 2009 +0000
@@ -0,0 +1,12 @@
+#      $NetBSD: P5064-64,v 1.2 2009/12/14 00:46:00 matt Exp $
+#
+# Algorithmics P-5064 kernel (64-bit).
+#
+
+include        "arch/algor/conf/P5064"
+
+include        "arch/algor/conf/std.algor64"
+
+no options     SYMTAB_SPACE
+options        SYMTAB_SPACE=510000
+#ident                 "P5064-64-$Revision: 1.2 $"
diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/conf/std.algor64
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/algor/conf/std.algor64   Mon Dec 14 00:45:59 2009 +0000
@@ -0,0 +1,13 @@
+#      $NetBSD: std.algor64,v 1.2 2009/12/14 00:46:00 matt Exp $
+# standard, required pmax info
+
+no makeoptions MACHINE_ARCH
+makeoptions    MACHINE_ARCH="mips64el"
+
+# Standard exec-package options
+options        EXEC_ELF64      # 64-bit ELF support (native format)
+#options       EXEC_ELF32
+options        COMPAT_NETBSD32 # exec NetBSD 32-bit binaries
+
+makeoptions    LP64="yes"
+
diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/include/elf_machdep.h
--- a/sys/arch/algor/include/elf_machdep.h      Mon Dec 14 00:43:58 2009 +0000
+++ b/sys/arch/algor/include/elf_machdep.h      Mon Dec 14 00:45:59 2009 +0000
@@ -1,14 +1,3 @@
-/*     $NetBSD: elf_machdep.h,v 1.1 2001/05/28 16:22:18 thorpej Exp $  */
-
-#ifndef _ALGOR_ELF_MACHDEP_H_
-#define _ALGOR_ELF_MACHDEP_H_
+/*     $NetBSD: elf_machdep.h,v 1.2 2009/12/14 00:46:00 matt Exp $     */
 
 #include <mips/elf_machdep.h>
-
-/*
- * Algorithmics boards are mipsel machines by default
- */
-#define ELF32_MACHDEP_ENDIANNESS       ELFDATA2LSB
-#define ELF64_MACHDEP_ENDIANNESS       XXX     /* break compilation */
-
-#endif /* !_ALGOR_ELF_MACHDEP_H_ */
diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/include/netbsd32_machdep.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/algor/include/netbsd32_machdep.h Mon Dec 14 00:45:59 2009 +0000
@@ -0,0 +1,3 @@
+/* $NetBSD: netbsd32_machdep.h,v 1.2 2009/12/14 00:46:00 matt Exp $ */
+
+#include <mips/netbsd32_machdep.h>
diff -r dacbbab1b3c1 -r 27064c6eec10 sys/arch/algor/include/param.h
--- a/sys/arch/algor/include/param.h    Mon Dec 14 00:43:58 2009 +0000
+++ b/sys/arch/algor/include/param.h    Mon Dec 14 00:45:59 2009 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: param.h,v 1.8 2009/08/13 05:15:08 matt Exp $   */
+/*     $NetBSD: param.h,v 1.9 2009/12/14 00:46:00 matt Exp $   */
 



Home | Main Index | Thread Index | Old Index