Updated for new config etc.
authorpefo <pefo@openbsd.org>
Thu, 2 May 1996 07:59:33 +0000 (07:59 +0000)
committerpefo <pefo@openbsd.org>
Thu, 2 May 1996 07:59:33 +0000 (07:59 +0000)
sys/arch/pica/TODO
sys/arch/pica/conf/GENERIC
sys/arch/pica/conf/Makefile.pica
sys/arch/pica/conf/files.pica
sys/arch/pica/dev/dma.c
sys/arch/pica/dev/dma.h
sys/arch/pica/include/param.h
sys/arch/pica/include/pte.h
sys/arch/pica/pica/clock.c
sys/arch/pica/pica/conf.c
sys/arch/pica/pica/pmap.c

index 826c198..e6d2936 100644 (file)
@@ -9,10 +9,6 @@ InWork: Have a test version. The system hangs after a while. Not solved yet.
 
     o  Update MAKEDEV to create all devices correctly.
 
-    o  Add dos disklabel functionality so disks can be shared with NT.
-InWork: mformat needs to be hacked to handle disk labels. Need to figure
-        out what method to use (offseting?).
-
     o   Boot. Standalone boot program instead of booting the kernel directly?
 
     o   Create boot package for distribution.
@@ -22,8 +18,6 @@ InWork: mformat needs to be hacked to handle disk labels. Need to figure
     o   Add more videomodes to pccons driver. 50kHz and 64kHz monitors?
 InWork: This seems to be hard. Need more info on the chip.
 
-    o   SONIC driver. Use the one from Theo as a start?
-
     o   Find out why bitmap load to S3-928 flashes screen.
 Know why (enable linear mode). Need S3 info.
 
@@ -31,14 +25,10 @@ Know why (enable linear mode). Need S3 info.
 
     o   ELF shared libraries......
 
-    o   Recompile ghostscript to have X driver as well as Cannon BJ200.
-
     o   GDB. The current one does not work correctly with current toolchain.
 
     o   ISA driver. ISA dma, interrupt etc.
 
-    o   SONY cd-rom driver + sound driver. Uses ISA dma.
-
     o   Can we have 32 double registers?
 
 
index df6b781..b711768 100644 (file)
@@ -1,4 +1,8 @@
-include                "std.pica"
+#
+#      Generic configuration file for MIPS R4400 PICA system
+#
+
+machine                pica
 
 maxusers       8
 
@@ -36,6 +40,7 @@ options               NFSCLIENT       # Sun NFS-compatible filesystem (client)
 options                NFSSERVER       # Sun NFS-compatible filesystem (server)
 options                KERNFS          # kernel data-structure filesystem
 options                MSDOSFS         # Ability to read write MS-Dos filsystem
+options                CD9660          # ISO 9660 + Rock Ridge file system
 options                FDESC           # user file descriptor filesystem
 #options       UMAPFS          # uid/gid remapping filesystem
 #options       NULLFS          # null layer filesystem
@@ -76,7 +81,8 @@ sd*           at scsibus? target ? lun ?
 st*            at scsibus? target ? lun ?
 cd*            at scsibus? target ? lun ?
 
-pseudo-device  sl               4      # serial-line IP ports
+pseudo-device  sl               2      # serial-line IP ports
+pseudo-device  ppp              2      # serial-line PPP ports
 pseudo-device  pty             64      # pseudo ptys
 pseudo-device  bpfilter        16      # packet filter ports
 pseudo-device  loop
index f56ea3f..3675b9f 100644 (file)
@@ -29,17 +29,13 @@ TOUCH=      touch -f -c
 S=     ../../../..
 PICA=  ../..
 
-LD=ld.kern
-
-INCLUDES= -I. -I$S/arch -I$S -I$S/sys
-COPTS= ${INCLUDES} ${IDENT} -D_KERNEL -Dpica -D__NetBSD__ ${GP} \
-       -mips2 -mcpu=r4000
-CPPOPTS=${INCLUDES} ${IDENT} -D_KERNEL -Dpica -D__NetBSD__
-.ifdef DEBUG 
-CFLAGS=        ${DEBUG} ${COPTS}
-.else
-CFLAGS= -O2 ${COPTS}
-.endif
+LD=ld.ok
+
+INCLUDES=      -I. -I$S/arch -I$S
+CPPFLAGS=      ${INCLUDES} ${IDENT} -D_KERNEL -Dpica -D__NetBSD__ ${GP} \
+               -mips2 -mcpu=r4000
+CFLAGS=         ${DEBUG} -O2 -Werror
+AFLAGS=                -x assembler-with-cpp -traditional-cpp -D_LOCORE
 
 ### find out what to use for libkern
 .include "$S/lib/libkern/Makefile.inc"
@@ -62,15 +58,13 @@ LIBCOMPAT=  ${COMPATLIB_PROF}
 # capitalized (e.g. C for a .c file), and CONFIG_DEP is _C if the file
 # is marked as config-dependent.
 
-NORMAL_C=      ${CC} -c ${CFLAGS} ${PROF} $<
-NORMAL_C_C=    ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
-
-DRIVER_C=      ${CC} -c ${CFLAGS} ${PROF} $<
-DRIVER_C_C=    ${CC} -c ${CFLAGS} ${PROF} ${PARAM} $<
+NORMAL_C=      ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $<
+NORMAL_C_C=    ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $<
 
-PROFILE_C=     ${CC} -p -c ${COPTS} $<
+DRIVER_C=      ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c $<
+DRIVER_C_C=    ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} ${PARAM} -c $<
 
-NORMAL_S=      ${AS} ${COPTS} $< -o $@
+NORMAL_S=      ${CC} ${AFLAGS} ${CPPFLAGS} -c $<
 NORMAL_S_C=    ${AS}  ${COPTS} ${PARAM} $< -o $@
 
 %OBJS
@@ -82,6 +76,7 @@ NORMAL_S_C=   ${AS}  ${COPTS} ${PARAM} $< -o $@
 #      ${SYSTEM_LD_HEAD}
 #      ${SYSTEM_LD} swapxxx.o
 #      ${SYSTEM_LD_TAIL}
+
 SYSTEM_OBJ=    locore.o fp.o ${OBJS} param.o ioconf.o ${LIBKERN} \
                ${LIBCOMPAT}
 #SYSTEM_DEP=   Makefile symbols.sort ${SYSTEM_OBJ} ${LIBKERN}
@@ -127,11 +122,11 @@ symbols.sort: ${PICA}/pica/symbols.raw
 
 locore.o: ${PICA}/pica/locore.S ${PICA}/include/machAsmDefs.h \
        ${PICA}/include/machConst.h ${PICA}/include/reg.h assym.h
-       ${CC} -c ${COPTS} ${PARAM} -DLOCORE -mips3 ${PICA}/pica/locore.S
+       ${NORMAL_S} -mips3 ${PICA}/pica/locore.S
 
 fp.o: ${PICA}/pica/fp.S ${PICA}/include/machAsmDefs.h \
        ${PICA}/include/machConst.h ${PICA}/include/reg.h assym.h
-       ${CC} -c ${COPTS} ${PARAM} -DLOCORE ${PICA}/pica/fp.S
+       ${NORMAL_S} -mips3 ${PICA}/pica/fp.S
 
 # the following is necessary because autoconf.o depends on #if GENERIC
 autoconf.o: Makefile
@@ -149,7 +144,7 @@ assym.h: genassym
        ./genassym >assym.h
 
 genassym: ${PICA}/pica/genassym.c
-       ${CC} ${INCLUDES} ${IDENT} ${PARAM} -o genassym ${PICA}/pica/genassym.c
+       ${NORMAL_C_C}
 
 depend: assym.h param.c
        mkdep ${COPTS} ${CFILES} ioconf.c param.c
@@ -167,20 +162,18 @@ tags:
        @echo "see $S/kern/Makefile for tags"
 
 ioconf.o: ioconf.c
-       ${CC} -c ${CFLAGS} ioconf.c
+       ${NORMAL_C}
 
 param.c: $S/conf/param.c
        rm -f param.c
        cp $S/conf/param.c .
 
 param.o: param.c Makefile
-       ${CC} -c ${CFLAGS} ${PARAM} param.c
+       ${NORMAL_C_C}
 
-vers.o: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP}
+newvers: ${SYSTEM_DEP} ${SYSTEM_SWAP_DEP}
        sh $S/conf/newvers.sh
-       ${CC} ${CFLAGS} -c vers.c
+       ${CC} ${CFLAGS} ${CPPFLAGS} ${PROF} -c vers.c
 
 %RULES
 
-
-
index 8162762..f3522a8 100644 (file)
@@ -1,75 +1,99 @@
+#      $OpenBSD: files.pica,v 1.3 1996/05/02 07:59:36 pefo Exp $
 #      $NetBSD: files.pica,v 1.16 1995/04/30 10:11:00 cgd Exp $
+#
+# maxpartitions must be first item in files.${ARCH}
+#
 maxpartitions 8
+
 maxusers 2 8 64
 
-device mainbus at root { }             # no locators
+#      Required files
+
+file   arch/pica/isa/isa.c
+
+file   arch/pica/pica/autoconf.c
+file   arch/pica/pica/conf.c
+file   arch/pica/pica/cpu_exec.c
+file   arch/pica/pica/disksubr.c
+file   arch/pica/dev/dma.c
+file   arch/pica/pica/exec_elf.c
+file   arch/pica/pica/machdep.c
+file   arch/pica/pica/mainbus.c
+file   arch/pica/pica/minidebug.c
+file   arch/pica/pica/mem.c
+file   arch/pica/pica/pmap.c
+file   arch/pica/pica/process_machdep.c
+file   arch/pica/pica/sys_machdep.c
+file   arch/pica/pica/trap.c
+file   arch/pica/pica/vm_machdep.c
+
+#
+# System bus types
+#
+
+device mainbus {}
+attach mainbus at root
 
 #      Our CPU configurator
-device cpu at mainbus                  # not optional
+device cpu
+attach cpu at mainbus                  # not optional
 file arch/pica/pica/cpu.c              cpu
 
 #
 #      PICA bus autoconfiguration devices
 #
-device pica at mainbus { }             # { slot = -1, offset = -1 }
+device pica {}
+attach pica at mainbus                 # { slot = -1, offset = -1 }
 file   arch/pica/pica/pica.c           pica    needs-flag
 
 #      Real time clock, must have one..
-device clock at pica
+device clock
+attach clock at pica
 file   arch/pica/pica/clock.c          clock
 file   arch/pica/pica/clock_mc.c       clock
 
 #      Ethernet chip
-device sn at pica: ifnet, ether
+device sn
+attach sn at pica: ifnet, ether
 file   arch/pica/dev/if_sn.c           sn      needs-count
 
 #      Use machine independent SCSI driver routines
 include        "../../../scsi/files.scsi"
+major  {sd = 0}
+major  {cd = 3}
 
 #      Machine dependent SCSI interface driver
-device asc at pica: scsi
+device asc: scsi
+attach asc at pica
 file   arch/pica/dev/asc.c             asc     needs-count
 
 #      NS16450/16550 Serial line driver
-device com at pica
+device com
+attach com at pica
 file   arch/pica/dev/com.c             com     needs-count
 
 #      Paralell printer port driver
-device lpt at pica
+device lpt
+attach lpt at pica
 file   arch/pica/dev/lpt.c             lpt     needs-count
 
 #      Console driver on PC-style graphics
-device pc at pica
-device pms at pica
-file   arch/pica/dev/pccons.c          pc pms  needs-count
+device pc: tty
+attach pc at pica
+device pms
+attach pms at pica
+file   arch/pica/dev/pccons.c          pms     needs-count
 
 #      PS2 type mouse driver.
 
 # Floppy disk controller
-device fdc at pica {drive = -1}
-device fd at fdc
-file   arch/pica/dev/fd.c                      fdc     needs-flag
+device fdc {drive = -1}
+attach fdc at pica
+device fd: disk
+attach fd at fdc
+file   arch/pica/dev/fd.c              fdc     needs-flag
 major  {fd = 7}
 
-#      Required files
-
-file   arch/pica/isa/isa.c
-
-file   arch/pica/pica/autoconf.c
-file   arch/pica/pica/conf.c
-file   arch/pica/pica/cpu_exec.c
-file   arch/pica/pica/disksubr.c
-file   arch/pica/dev/dma.c
-file   arch/pica/pica/elf.c
-file   arch/pica/pica/machdep.c
-file   arch/pica/pica/mainbus.c
-file   arch/pica/pica/minidebug.c
-file   arch/pica/pica/mem.c
-file   arch/pica/pica/pmap.c
-file   arch/pica/pica/process_machdep.c
-file   arch/pica/pica/sys_machdep.c
-file   arch/pica/pica/trap.c
-file   arch/pica/pica/vm_machdep.c
 #
 # This is a dummy - don't try to use it:
 
@@ -83,5 +107,3 @@ file compat/ultrix/ultrix_misc.c             compat_ultrix
 file   compat/ultrix/ultrix_syscalls.c         compat_ultrix
 file   compat/ultrix/ultrix_sysent.c           compat_ultrix
 
-
-# Configs
index cb3dfb3..4c897db 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *     from: @(#)rz.c  8.1 (Berkeley) 7/29/93
- *      $Id: dma.c,v 1.3 1996/05/01 16:59:32 pefo Exp $
+ *      $Id: dma.c,v 1.4 1996/05/02 07:59:37 pefo Exp $
  */
 
 /*
@@ -343,8 +343,8 @@ asc_dma_init(dma_softc_t *sc)
        sc->enintr = picaDmaNull;
        sc->start = picaDmaStart;
        sc->map = picaDmaMap;
-       sc->isintr = picaDmaNull;
-       sc->intr = picaDmaNull;
+       sc->isintr = (int(*)())picaDmaNull;
+       sc->intr = (int(*)())picaDmaNull;
        sc->end = picaDmaEnd;
 
        sc->dma_reg = (pDmaReg)PICA_SYS_DMA0_REGS;
@@ -363,8 +363,8 @@ fdc_dma_init(dma_softc_t *sc)
        sc->enintr = picaDmaNull;
        sc->start = picaDmaStart;
        sc->map = picaDmaMap;
-       sc->isintr = picaDmaNull;
-       sc->intr = picaDmaNull;
+       sc->isintr = (int(*)())picaDmaNull;
+       sc->intr = (int(*)())picaDmaNull;
        sc->end = picaDmaEnd;
 
        sc->dma_reg = (pDmaReg)PICA_SYS_DMA1_REGS;
@@ -383,9 +383,9 @@ sn_dma_init(dma_softc_t *sc, int pages)
        sc->enintr = picaDmaNull;
        sc->start = picaDmaFlush;
        sc->map = picaDmaMap;
-       sc->isintr = picaDmaNull;
-       sc->intr = picaDmaNull;
-       sc->end = picaDmaNull;
+       sc->isintr = (int(*)())picaDmaNull;
+       sc->intr = (int(*)())picaDmaNull;
+       sc->end = (int(*)())picaDmaNull;
 
        sc->dma_reg = (pDmaReg)NULL;
        sc->pte_size = pages;
index 92f6a94..6961b65 100644 (file)
@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *     from: @(#)dma.h 8.1 (Berkeley) 6/10/93
- *      $Id: dma.h,v 1.3 1996/05/01 16:59:35 pefo Exp $
+ *      $Id: dma.h,v 1.4 1996/05/02 07:59:38 pefo Exp $
  */
 
 /*
@@ -127,7 +127,7 @@ typedef struct dma_softc {
        int             *sc_dmalen;     /* Pointer to len counter in dev */
        void (*reset)(struct dma_softc *);      /* Reset routine pointer */
        void (*enintr)(struct dma_softc *);     /* Int enab routine pointer */
-       void (*map)(struct dma_softc *, caddr_t, size_t, int);
+       void (*map)(struct dma_softc *, char *, size_t, int);
                                                /* Map a dma viritual area */
        void (*start)(struct dma_softc *, caddr_t, size_t, int);
                                                /* Start routine pointer */
index 60773bc..10f0684 100644 (file)
@@ -39,7 +39,7 @@
  *
  *
  *     from: @(#)param.h       8.1 (Berkeley) 6/10/93
- *      $Id: param.h,v 1.2 1995/10/22 06:26:07 deraadt Exp $
+ *      $Id: param.h,v 1.3 1996/05/02 07:59:39 pefo Exp $
  */
 
 /*
 #define pica_ptob(x)           ((unsigned)(x) << PGSHIFT)
 
 #ifdef _KERNEL
-#ifndef LOCORE
+#ifndef _LOCORE
 extern int (*Mach_splnet)(), (*Mach_splbio)(), (*Mach_splimp)(),
           (*Mach_spltty)(), (*Mach_splclock)(), (*Mach_splstatclock)();
 #define        splnet()        ((*Mach_splnet)())
index 283d483..898b653 100644 (file)
  * from: Utah Hdr: pte.h 1.11 89/09/03
  *
  *     from: @(#)pte.h 8.1 (Berkeley) 6/10/93
- *      $Id: pte.h,v 1.1.1.1 1995/10/18 10:39:13 deraadt Exp $
+ *      $Id: pte.h,v 1.2 1996/05/02 07:59:40 pefo Exp $
  */
 
 /*
  * R4000 hardware page table entry
  */
 
-#ifndef LOCORE
+#ifndef _LOCORE
 struct pte {
 #if BYTE_ORDER == BIG_ENDIAN
 unsigned int   pg_prot:2,              /* SW: access control */
@@ -80,7 +80,7 @@ typedef union pt_entry {
        unsigned int    pt_entry;       /* for copying, etc. */
        struct pte      pt_pte;         /* for getting to bits by name */
 } pt_entry_t;  /* Mach page table entry */
-#endif /* LOCORE */
+#endif /* _LOCORE */
 
 #define        PT_ENTRY_NULL   ((pt_entry_t *) 0)
 
@@ -120,7 +120,7 @@ typedef union pt_entry {
 #define        PG_SIZE_4M      0x007fe000
 #define        PG_SIZE_16M     0x01ffe000
 
-#if defined(_KERNEL) && !defined(LOCORE)
+#if defined(_KERNEL) && !defined(_LOCORE)
 /*
  * Kernel virtual address to page table entry and visa versa.
  */
index 2ed953d..081bd49 100644 (file)
@@ -38,7 +38,7 @@
  * from: Utah Hdr: clock.c 1.18 91/01/21
  *
  *     from: @(#)clock.c       8.1 (Berkeley) 6/10/93
- *      $Id: clock.c,v 1.2 1996/05/01 18:15:51 pefo Exp $
+ *      $Id: clock.c,v 1.3 1996/05/02 07:59:42 pefo Exp $
  */
 
 #include <sys/param.h>
@@ -124,7 +124,7 @@ clockattach(parent, self, aux)
        /*
         * establish the clock interrupt; it's a special case
         */
-       BUS_INTR_ESTABLISH((struct confargs *)aux, hardclock, self);
+       BUS_INTR_ESTABLISH((struct confargs *)aux, (intr_handler_t)hardclock, self);
 
        printf("\n");
 }
index 3b6842d..95236cf 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: conf.c,v 1.4 1996/05/01 18:15:55 pefo Exp $ */
+/*     $OpenBSD: conf.c,v 1.5 1996/05/02 07:59:42 pefo Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -36,7 +36,7 @@
  * SUCH DAMAGE.
  *
  *     from: @(#)conf.c        8.2 (Berkeley) 11/14/93
- *      $Id: conf.c,v 1.4 1996/05/01 18:15:55 pefo Exp $
+ *      $Id: conf.c,v 1.5 1996/05/02 07:59:42 pefo Exp $
  */
 
 #include <sys/param.h>
@@ -143,14 +143,6 @@ cdev_decl(cd);
 
 /* open, close, read, ioctl */
 cdev_decl(ipl);
-<<<<<<< 1.2
-#define        cdev_gen_ipf(c,n) { \
-       dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \
-       (dev_type_write((*))) enodev, dev_init(c,n,ioctl), \
-       (dev_type_stop((*))) nullop, 0, (dev_type_select((*))) enodev, \
-       (dev_type_mmap((*))) enodev, 0 }
-=======
->>>>>>> 1.3
 #ifdef IPFILTER
 #define NIPF 1
 #else
index 9336cc4..f4fdc2f 100644 (file)
@@ -35,7 +35,7 @@
  * SUCH DAMAGE.
  *
  *     from: @(#)pmap.c        8.4 (Berkeley) 1/26/94
- *      $Id: pmap.c,v 1.2 1996/05/01 18:16:17 pefo Exp $
+ *      $Id: pmap.c,v 1.3 1996/05/02 07:59:43 pefo Exp $
  */
 
 /*
@@ -931,7 +931,7 @@ pmap_enter(pmap, va, pa, prot, wired)
                                         * Check cache aliasing incompatibility
                                         */
                                        if((npv->pv_va & machCacheAliasMask) != (va & machCacheAliasMask)) {
-                                               printf("pmap_enter: creating uncached mapping.\n");
+                                               printf("pmap_enter: creating uncached mapping 0x%x, 0x%x.\n",npv->pv_va, va);
                                                pmap_page_cache(pa,PV_UNCACHED);
                                                MachFlushDCache(pv->pv_va, PAGE_SIZE);
                                                npte = (npte & ~PG_CACHEMODE) | PG_UNCACHED;