"update from Mike Hibler at Utah"
authorKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 26 May 1990 07:18:04 +0000 (23:18 -0800)
committerKirk McKusick <mckusick@ucbvax.Berkeley.EDU>
Sat, 26 May 1990 07:18:04 +0000 (23:18 -0800)
SCCS-vsn: sys/hp300/stand/Makefile 7.2
SCCS-vsn: sys/hp300/stand/autoconf.c 7.2
SCCS-vsn: sys/hp300/stand/cons.c 7.2
SCCS-vsn: sys/hp300/stand/sd.c 7.2
SCCS-vsn: sys/hp300/stand/srt0.c 7.2

usr/src/sys/hp300/stand/Makefile
usr/src/sys/hp300/stand/autoconf.c
usr/src/sys/hp300/stand/cons.c
usr/src/sys/hp300/stand/sd.c
usr/src/sys/hp300/stand/srt0.c

index 0dcef48..0dc720d 100644 (file)
@@ -4,7 +4,7 @@
 #
 # %sccs.include.redist.c%
 #
 #
 # %sccs.include.redist.c%
 #
-#      @(#)Makefile    7.1 (Berkeley) %G%
+#      @(#)Makefile    7.2 (Berkeley) %G%
 #
 LIBDIR=/lib
 DESTDIR=
 #
 LIBDIR=/lib
 DESTDIR=
@@ -17,7 +17,7 @@ CC=cc -Dconst=__const__ -Dvolatile=__volatile__ \
 AS=as
 
 INCPATH=-I. -I../sys -I..
 AS=as
 
 INCPATH=-I. -I../sys -I..
-CONS= -DDCACONSOLE -DITECONSOLE
+CONS= -DDCACONSOLE -DITECONSOLE -DDCMCONSOLE
 DEFS= -DSTANDALONE ${CONS} # -DROMPRF # -DDEBUG
 COPTS=
 CFLAGS=        -O ${INCPATH} ${DEFS} ${COPTS}
 DEFS= -DSTANDALONE ${CONS} # -DROMPRF # -DDEBUG
 COPTS=
 CFLAGS=        -O ${INCPATH} ${DEFS} ${COPTS}
@@ -26,10 +26,10 @@ RELOC=      FFF80000
 
 SRCS=  sys.c conf.c prf.c machdep.c autoconf.c \
        hpib.c nhpib.c fhpib.c rd.c ct.c scsi.c sd.c hil.c \
 
 SRCS=  sys.c conf.c prf.c machdep.c autoconf.c \
        hpib.c nhpib.c fhpib.c rd.c ct.c scsi.c sd.c hil.c \
-       cons.c ite.c ite_subr.c ite_dv.c ite_gb.c ite_rb.c ite_tc.c dca.c
+       cons.c ite.c ite_subr.c ite_dv.c ite_gb.c ite_rb.c ite_tc.c dca.c dcm.c
 DUMMIES=
 DRIVERS=autoconf.o hpib.o nhpib.o fhpib.o rd.o ct.o scsi.o sd.o hil.o \
 DUMMIES=
 DRIVERS=autoconf.o hpib.o nhpib.o fhpib.o rd.o ct.o scsi.o sd.o hil.o \
-       cons.o ite.o ite_subr.o ite_dv.o ite_gb.o ite_rb.o ite_tc.o dca.o
+       cons.o ite.o ite_subr.o ite_dv.o ite_gb.o ite_rb.o ite_tc.o dca.o dcm.o
 LIBSA= libsa.a
 
 ALL=   dboot nboot tboot tcopy
 LIBSA= libsa.a
 
 ALL=   dboot nboot tboot tcopy
@@ -137,7 +137,7 @@ install: mkboot installboot ${ALL}
 
 depend:
        for i in ${SRCS} ${DUMMIES}; do \
 
 depend:
        for i in ${SRCS} ${DUMMIES}; do \
-           ${CC} -M ${INCPATH} $$i | \
+           ${CC} -M ${INCPATH} ${DEFS} $$i | \
            awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
                else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
                else rec = rec " " $$2 } } \
            awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
                else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
                else rec = rec " " $$2 } } \
index 982276e..f12795e 100644 (file)
@@ -11,7 +11,7 @@
  *
  * from: Utah $Hdr: autoconf.c 1.9 89/10/07$
  *
  *
  * from: Utah $Hdr: autoconf.c 1.9 89/10/07$
  *
- *     @(#)autoconf.c  7.1 (Berkeley) %G%
+ *     @(#)autoconf.c  7.2 (Berkeley) %G%
  */
 
 #include "samachdep.h"
  */
 
 #include "samachdep.h"
 
 struct hp_hw sc_table[MAX_CTLR];
 
 
 struct hp_hw sc_table[MAX_CTLR];
 
+extern int internalhpib;
+
+#if 0
+#include "rominfo.h"
+printrominfo()
+{
+       struct rominfo *rp = (struct rominfo *)ROMADDR;
+       printf("boottype %x, name %s, lowram %x, sysflag %x\n",
+              rp->boottype, rp->name, rp->lowram, rp->sysflag&0xff);
+       printf("rambase %x, ndrives %x, sysflag2 %x, msus %x\n",
+              rp->rambase, rp->ndrives, rp->sysflag2&0xff, rp->msus);
+}
+#endif
+
 configure()
 {
        find_devs();
        cninit();
 configure()
 {
        find_devs();
        cninit();
+#if 0
+       printrominfo();
+#endif
        hpibinit();
        scsiinit();
 }
        hpibinit();
        scsiinit();
 }
@@ -33,13 +50,11 @@ configure()
 sctoaddr(sc)
        int sc;
 {
 sctoaddr(sc)
        int sc;
 {
-       extern int internalhpib;
-
        if (sc == -2)
                return(0x1000000);
        if (sc == -1)
                return(GRFIADDR);
        if (sc == -2)
                return(0x1000000);
        if (sc == -1)
                return(GRFIADDR);
-       if (sc == 7)
+       if (sc == 7 && internalhpib)
                return(internalhpib);
        if (sc < 32)
                return(0x600000+(0x10000*sc));
                return(internalhpib);
        if (sc < 32)
                return(0x600000+(0x10000*sc));
@@ -68,7 +83,21 @@ find_devs()
                hw->hw_id = id_reg[1] & 0xff;
                hw->hw_sc = sc;
 
                hw->hw_id = id_reg[1] & 0xff;
                hw->hw_sc = sc;
 
+               /*
+                * Not all internal HP-IBs respond rationally to id requests
+                * so we just go by the "internal HPIB" indicator in SYSFLAG.
+                */
+               if (sc == 7 && internalhpib) {
+                       hw->hw_type = HPIB;
+                       hw++;
+                       continue;
+               }
+
                switch (hw->hw_id) {
                switch (hw->hw_id) {
+               case 5:         /* 98642A */
+               case 128+5:     /* 98642A remote */
+                       hw->hw_type = COMMDCM;
+                       break;
                case 8:         /* 98625B */
                case 128:       /* 98624A */
                        hw->hw_type = HPIB;
                case 8:         /* 98625B */
                case 128:       /* 98624A */
                        hw->hw_type = HPIB;
index e6778e7..a20138f 100644 (file)
@@ -11,7 +11,7 @@
  *
  * from: Utah $Hdr: cons.c 1.5 89/08/22$
  *
  *
  * from: Utah $Hdr: cons.c 1.5 89/08/22$
  *
- *     @(#)cons.c      7.1 (Berkeley) %G%
+ *     @(#)cons.c      7.2 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -25,6 +25,9 @@ int   iteprobe(), iteinit(), itegetchar(), iteputchar();
 #ifdef DCACONSOLE
 int    dcaprobe(), dcainit(), dcagetchar(), dcaputchar();
 #endif
 #ifdef DCACONSOLE
 int    dcaprobe(), dcainit(), dcagetchar(), dcaputchar();
 #endif
+#ifdef DCMCONSOLE
+int    dcmprobe(), dcminit(), dcmgetchar(), dcmputchar();
+#endif
 
 struct consdev constab[] = {
 #ifdef ITECONSOLE
 
 struct consdev constab[] = {
 #ifdef ITECONSOLE
@@ -32,6 +35,9 @@ struct consdev constab[] = {
 #endif
 #ifdef DCACONSOLE
        { dcaprobe,     dcainit,        dcagetchar,     dcaputchar },
 #endif
 #ifdef DCACONSOLE
        { dcaprobe,     dcainit,        dcagetchar,     dcaputchar },
+#endif
+#ifdef DCMCONSOLE
+       { dcmprobe,     dcminit,        dcmgetchar,     dcmputchar },
 #endif
        { 0 },
 };
 #endif
        { 0 },
 };
index 8ef4d4a..a1f7584 100644 (file)
@@ -11,7 +11,7 @@
  *
  * from: Utah $Hdr: sd.c 1.2 90/01/23$
  *
  *
  * from: Utah $Hdr: sd.c 1.2 90/01/23$
  *
- *     @(#)sd.c        7.1 (Berkeley) %G%
+ *     @(#)sd.c        7.2 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -112,7 +112,7 @@ retry:
        else
                stat = scsi_tt_write(unit, io->i_ma, io->i_cc, blk, nblk);
        if (stat) {
        else
                stat = scsi_tt_write(unit, io->i_ma, io->i_cc, blk, nblk);
        if (stat) {
-               printf("sd(%d,?) err: 0x%x", unit, stat);
+               printf("sd(%d,?) err: 0x%x\n", unit, stat);
                if (++ss->sc_retry > SDRETRY)
                        return(-1);
                else
                if (++ss->sc_retry > SDRETRY)
                        return(-1);
                else
index 25ecf6b..3423f32 100644 (file)
@@ -11,7 +11,7 @@
  *
  * from: Utah $Hdr: srt0.c 1.8 88/12/03$
  *
  *
  * from: Utah $Hdr: srt0.c 1.8 88/12/03$
  *
- *     @(#)srt0.c      7.1 (Berkeley) %G%
+ *     @(#)srt0.c      7.2 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
        .globl  _configure
        .globl  _openfirst
        .globl  __rtt
        .globl  _configure
        .globl  _openfirst
        .globl  __rtt
-       .globl  _lowram,_howto,_devtype
+       .globl  _lowram,_howto,_devtype,_internalhpib
 
        STACK =    0xfffff000   | below the ROM page
        BOOTTYPE = 0xfffffdc0
        LOWRAM =   0xfffffdce
 
        STACK =    0xfffff000   | below the ROM page
        BOOTTYPE = 0xfffffdc0
        LOWRAM =   0xfffffdce
+       SYSFLAG =  0xfffffed2   | system flags
        MSUS =     0xfffffedc   | MSUS (?) structure
        VECTORS =  0xfffffee0   | beginning of jump vectors
        NMIRESET = 0xffffff9c   | reset vector
        MSUS =     0xfffffedc   | MSUS (?) structure
        VECTORS =  0xfffffee0   | beginning of jump vectors
        NMIRESET = 0xffffff9c   | reset vector
@@ -56,6 +57,10 @@ vecloop:
        dbf     d0,vecloop      | go til done
        movl    #NMIRESET,a0    | NMI keyboard reset addr
        movl    #nmi,a0@        | catch in reset routine
        dbf     d0,vecloop      | go til done
        movl    #NMIRESET,a0    | NMI keyboard reset addr
        movl    #nmi,a0@        | catch in reset routine
+       btst    #5,SYSFLAG      | do we have an internal HP-IB?
+       jeq     boottype        | yes, continue
+       clrl    _internalhpib   | no, clear the internal address
+boottype:
        cmpw    #12,BOOTTYPE    | is this a reboot (REQ_REBOOT)?
        jne     notreboot       | no, skip
        movl    #MAXADDR,a0     | find last page
        cmpw    #12,BOOTTYPE    | is this a reboot (REQ_REBOOT)?
        jne     notreboot       | no, skip
        movl    #MAXADDR,a0     | find last page