summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornsouch <nsouch@FreeBSD.org>1999-01-30 15:35:39 +0000
committernsouch <nsouch@FreeBSD.org>1999-01-30 15:35:39 +0000
commit10ef2b8422913dafa8c05f64b5d0c07a3d2ad9c0 (patch)
tree40df97b8849853b739d2d4fdbd234d29a62ee63a
parentc9bc4bf0090c71bd80805b53e37129f6052a7407 (diff)
downloadFreeBSD-src-10ef2b8422913dafa8c05f64b5d0c07a3d2ad9c0.zip
FreeBSD-src-10ef2b8422913dafa8c05f64b5d0c07a3d2ad9c0.tar.gz
Distinguish EPP address/data register. Add EPP address register access to ppi.
Change microseq offsets. Previously, offsets of the program counter where added to the index of the current microinstruction. Make them rely on the index of the next executed microinstruction. Suggested by: Luigi Rizzo <luigi@labinfo.iet.unipi.it>
-rw-r--r--sys/dev/ppbus/if_plip.c9
-rw-r--r--sys/dev/ppbus/immio.c24
-rw-r--r--sys/dev/ppbus/ppb_msq.h5
-rw-r--r--sys/dev/ppbus/ppbconf.h18
-rw-r--r--sys/dev/ppbus/ppi.c17
-rw-r--r--sys/dev/ppbus/ppi.h9
-rw-r--r--sys/dev/ppbus/pps.c8
-rw-r--r--sys/dev/ppbus/vpoio.c28
-rw-r--r--sys/dev/ppc/ppc.c28
-rw-r--r--sys/dev/ppc/ppcreg.h9
-rw-r--r--sys/i386/isa/ppc.c28
-rw-r--r--sys/i386/isa/ppcreg.h9
-rw-r--r--sys/isa/ppc.c28
-rw-r--r--sys/isa/ppcreg.h9
14 files changed, 129 insertions, 100 deletions
diff --git a/sys/dev/ppbus/if_plip.c b/sys/dev/ppbus/if_plip.c
index d3b85a4..886158c 100644
--- a/sys/dev/ppbus/if_plip.c
+++ b/sys/dev/ppbus/if_plip.c
@@ -24,7 +24,7 @@
* SUCH DAMAGE.
*
* From Id: lpt.c,v 1.55.2.1 1996/11/12 09:08:38 phk Exp
- * $Id: if_plip.c,v 1.7 1999/01/09 18:10:37 nsouch Exp $
+ * $Id: if_plip.c,v 1.8 1999/01/23 17:07:49 nsouch Exp $
*/
/*
@@ -131,11 +131,12 @@
#define LPIPTBLSIZE 256 /* Size of octet translation table */
-#ifndef PLIP_DEBUG
-#define lprintf (void)
-#else
#define lprintf if (lptflag) printf
+
+#ifdef PLIP_DEBUG
static int volatile lptflag = 1;
+#else
+static int volatile lptflag = 0;
#endif
struct lpt_softc {
diff --git a/sys/dev/ppbus/immio.c b/sys/dev/ppbus/immio.c
index 67054f7..c022029 100644
--- a/sys/dev/ppbus/immio.c
+++ b/sys/dev/ppbus/immio.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: immio.c,v 1.4 1998/10/31 11:35:21 nsouch Exp $
+ * $Id: immio.c,v 1.5 1999/01/10 12:04:54 nsouch Exp $
*
*/
@@ -72,8 +72,8 @@ struct ppb_microseq select_microseq[] = { \
/* first, check there is nothing holding onto the bus */ \
MS_SET(VP0_SELTMO), \
/* _loop: */ \
- MS_BRCLEAR(0x8, 3 /* _ready */), \
- MS_DBRA(-1 /* _loop */), \
+ MS_BRCLEAR(0x8, 2 /* _ready */), \
+ MS_DBRA(-2 /* _loop */), \
MS_RET(2), /* bus busy */ \
/* _ready: */ \
MS_CASS(0x4), \
@@ -84,8 +84,8 @@ struct ppb_microseq select_microseq[] = { \
/* now, wait until the drive is ready */ \
MS_SET(VP0_SELTMO), \
/* loop: */ \
- MS_BRSET(0x8, 4 /* ready */), \
- MS_DBRA(-1 /* loop */), \
+ MS_BRSET(0x8, 3 /* ready */), \
+ MS_DBRA(-2 /* loop */), \
/* error: */ \
MS_CASS(0xc), \
MS_RET(VP0_ESELECT_TIMEOUT), \
@@ -138,7 +138,7 @@ static struct ppb_microseq negociate_microseq[] = { \
MS_DELAY(100), \
MS_CASS(0x6), \
MS_DELAY(5), \
- MS_BRSET(0x20, 6 /* continue */), \
+ MS_BRSET(0x20, 5 /* continue */), \
MS_DELAY(5), \
MS_CASS(0x7), \
MS_DELAY(5), \
@@ -217,7 +217,7 @@ static struct ppb_microseq nibble_inbyte_submicroseq[] = {
/* do a C call to format the received nibbles */
MS_C_CALL(MS_UNKNOWN /* C hook */, MS_UNKNOWN /* param */),
- MS_DBRA(-6 /* loop */),
+ MS_DBRA(-7 /* loop */),
MS_RET(0)
};
@@ -231,7 +231,7 @@ static struct ppb_microseq ps2_inbyte_submicroseq[] = {
MS_CASS(PCD | 0x6),
MS_RFETCH_P(1, MS_REG_DTR, MS_FETCH_ALL),
MS_CASS(PCD | 0x5),
- MS_DBRA(-3 /* loop */),
+ MS_DBRA(-4 /* loop */),
MS_RET(0)
};
@@ -245,10 +245,10 @@ static struct ppb_microseq spp_outbyte_submicroseq[] = {
/* loop: */
MS_RASSERT_P(1, MS_REG_DTR),
MS_CASS(0x5),
- MS_DBRA(1), /* decrement counter */
+ MS_DBRA(0), /* decrement counter */
MS_RASSERT_P(1, MS_REG_DTR),
MS_CASS(0x0),
- MS_DBRA(-5 /* loop */),
+ MS_DBRA(-6 /* loop */),
/* return from the put call */
MS_CASS(0x4),
@@ -258,14 +258,14 @@ static struct ppb_microseq spp_outbyte_submicroseq[] = {
/* EPP 1.7 microsequences, ptr and len set at runtime */
static struct ppb_microseq epp17_outstr[] = {
MS_CASS(0x4),
- MS_RASSERT_P(MS_ACCUM, MS_REG_EPP),
+ MS_RASSERT_P(MS_ACCUM, MS_REG_EPP_D),
MS_CASS(0xc),
MS_RET(0),
};
static struct ppb_microseq epp17_instr[] = {
MS_CASS(PCD | 0x4),
- MS_RFETCH_P(MS_ACCUM, MS_REG_EPP, MS_FETCH_ALL),
+ MS_RFETCH_P(MS_ACCUM, MS_REG_EPP_D, MS_FETCH_ALL),
MS_CASS(PCD | 0xc),
MS_RET(0),
};
diff --git a/sys/dev/ppbus/ppb_msq.h b/sys/dev/ppbus/ppb_msq.h
index 7de698b..ff43a36 100644
--- a/sys/dev/ppbus/ppb_msq.h
+++ b/sys/dev/ppbus/ppb_msq.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppb_msq.h,v 1.3 1999/01/10 12:04:54 nsouch Exp $
+ * $Id: ppb_msq.h,v 1.4 1999/01/27 21:49:53 dillon Exp $
*
*/
#ifndef __PPB_MSQ_H
@@ -98,7 +98,8 @@
#define MS_REG_DTR 0x0
#define MS_REG_STR 0x1
#define MS_REG_CTR 0x2
-#define MS_REG_EPP 0x4
+#define MS_REG_EPP_A 0x3
+#define MS_REG_EPP_D 0x4
/*
* Microsequence macro abstraction level
diff --git a/sys/dev/ppbus/ppbconf.h b/sys/dev/ppbus/ppbconf.h
index be0ff33..af08c5d 100644
--- a/sys/dev/ppbus/ppbconf.h
+++ b/sys/dev/ppbus/ppbconf.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppbconf.h,v 1.11 1999/01/10 16:41:14 nsouch Exp $
+ * $Id: ppbconf.h,v 1.12 1999/01/27 19:44:05 dillon Exp $
*
*/
#ifndef __PPBCONF_H
@@ -204,14 +204,16 @@ struct ppb_adapter {
u_char (*r_dtr)(int);
u_char (*r_str)(int);
u_char (*r_ctr)(int);
- u_char (*r_epp)(int);
+ u_char (*r_epp_A)(int);
+ u_char (*r_epp_D)(int);
u_char (*r_ecr)(int);
u_char (*r_fifo)(int);
void (*w_dtr)(int, char);
void (*w_str)(int, char);
void (*w_ctr)(int, char);
- void (*w_epp)(int, char);
+ void (*w_epp_A)(int, char);
+ void (*w_epp_D)(int, char);
void (*w_ecr)(int, char);
void (*w_fifo)(int, char);
};
@@ -315,6 +317,8 @@ extern int ppb_write(struct ppb_device *, char *, int, int);
#define ppb_get_mode(dev) ((dev)->mode)
+/* This set of function access only to the EPP _data_ registers
+ * in 8, 16 and 32 bit modes */
#define ppb_outsb_epp(dev,buf,cnt) \
(*(dev)->ppb->ppb_link->adapter->outsb_epp) \
((dev)->ppb->ppb_link->adapter_unit, buf, cnt)
@@ -334,13 +338,17 @@ extern int ppb_write(struct ppb_device *, char *, int, int);
(*(dev)->ppb->ppb_link->adapter->insl_epp) \
((dev)->ppb->ppb_link->adapter_unit, buf, cnt)
-#define ppb_repp(dev) (*(dev)->ppb->ppb_link->adapter->r_epp) \
+#define ppb_repp_A(dev) (*(dev)->ppb->ppb_link->adapter->r_epp_A) \
+ ((dev)->ppb->ppb_link->adapter_unit)
+#define ppb_repp_D(dev) (*(dev)->ppb->ppb_link->adapter->r_epp_D) \
((dev)->ppb->ppb_link->adapter_unit)
#define ppb_recr(dev) (*(dev)->ppb->ppb_link->adapter->r_ecr) \
((dev)->ppb->ppb_link->adapter_unit)
#define ppb_rfifo(dev) (*(dev)->ppb->ppb_link->adapter->r_fifo) \
((dev)->ppb->ppb_link->adapter_unit)
-#define ppb_wepp(dev,byte) (*(dev)->ppb->ppb_link->adapter->w_epp) \
+#define ppb_wepp_A(dev,byte) (*(dev)->ppb->ppb_link->adapter->w_epp_A) \
+ ((dev)->ppb->ppb_link->adapter_unit, byte)
+#define ppb_wepp_D(dev,byte) (*(dev)->ppb->ppb_link->adapter->w_epp_D) \
((dev)->ppb->ppb_link->adapter_unit, byte)
#define ppb_wecr(dev,byte) (*(dev)->ppb->ppb_link->adapter->w_ecr) \
((dev)->ppb->ppb_link->adapter_unit, byte)
diff --git a/sys/dev/ppbus/ppi.c b/sys/dev/ppbus/ppi.c
index 95d7644..7b04ce4 100644
--- a/sys/dev/ppbus/ppi.c
+++ b/sys/dev/ppbus/ppi.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppi.c,v 1.9 1999/01/10 12:04:55 nsouch Exp $
+ * $Id: ppi.c,v 1.10 1999/01/27 21:49:53 dillon Exp $
*
*/
#include "ppi.h"
@@ -487,8 +487,8 @@ ppiioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p)
case PPIGCTRL: /* get control bits */
*val = ppb_rctr(&ppi->ppi_dev);
break;
- case PPIGEPP: /* get EPP bits */
- *val = ppb_repp(&ppi->ppi_dev);
+ case PPIGEPPD: /* get EPP data bits */
+ *val = ppb_repp_D(&ppi->ppi_dev);
break;
case PPIGECR: /* get ECP bits */
*val = ppb_recr(&ppi->ppi_dev);
@@ -506,8 +506,8 @@ ppiioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p)
case PPISCTRL: /* set control bits */
ppb_wctr(&ppi->ppi_dev, *val);
break;
- case PPISEPP: /* set EPP bits */
- ppb_wepp(&ppi->ppi_dev, *val);
+ case PPISEPPD: /* set EPP data bits */
+ ppb_wepp_D(&ppi->ppi_dev, *val);
break;
case PPISECR: /* set ECP bits */
ppb_wecr(&ppi->ppi_dev, *val);
@@ -515,6 +515,13 @@ ppiioctl(dev_t dev, u_long cmd, caddr_t data, int flags, struct proc *p)
case PPISFIFO: /* write FIFO */
ppb_wfifo(&ppi->ppi_dev, *val);
break;
+
+ case PPIGEPPA: /* get EPP address bits */
+ *val = ppb_repp_A(&ppi->ppi_dev);
+ break;
+ case PPISEPPA: /* set EPP address bits */
+ ppb_wepp_A(&ppi->ppi_dev, *val);
+ break;
default:
error = ENOTTY;
break;
diff --git a/sys/dev/ppbus/ppi.h b/sys/dev/ppbus/ppi.h
index f20416f..243c87f 100644
--- a/sys/dev/ppbus/ppi.h
+++ b/sys/dev/ppbus/ppi.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppi.h,v 1.1 1997/08/14 13:57:43 msmith Exp $
+ * $Id: ppi.h,v 1.2 1998/01/02 09:30:39 msmith Exp $
*
*/
#ifndef __PPI_H
@@ -37,15 +37,18 @@
#define PPIGDATA _IOR('P', 10, u_int8_t)
#define PPIGSTATUS _IOR('P', 11, u_int8_t)
#define PPIGCTRL _IOR('P', 12, u_int8_t)
-#define PPIGEPP _IOR('P', 13, u_int8_t)
+#define PPIGEPPD _IOR('P', 13, u_int8_t)
#define PPIGECR _IOR('P', 14, u_int8_t)
#define PPIGFIFO _IOR('P', 15, u_int8_t)
#define PPISDATA _IOW('P', 16, u_int8_t)
#define PPISSTATUS _IOW('P', 17, u_int8_t)
#define PPISCTRL _IOW('P', 18, u_int8_t)
-#define PPISEPP _IOW('P', 19, u_int8_t)
+#define PPISEPPD _IOW('P', 19, u_int8_t)
#define PPISECR _IOW('P', 20, u_int8_t)
#define PPISFIFO _IOW('P', 21, u_int8_t)
+#define PPIGEPPA _IOR('P', 22, u_int8_t)
+#define PPISEPPA _IOR('P', 23, u_int8_t)
+
#endif
diff --git a/sys/dev/ppbus/pps.c b/sys/dev/ppbus/pps.c
index 95b255c..24be094 100644
--- a/sys/dev/ppbus/pps.c
+++ b/sys/dev/ppbus/pps.c
@@ -6,7 +6,7 @@
* this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp
* ----------------------------------------------------------------------------
*
- * $Id: pps.c,v 1.11 1998/08/24 16:31:27 phk Exp $
+ * $Id: pps.c,v 1.12 1998/12/07 21:58:16 archie Exp $
*
* This driver implements a draft-mogul-pps-api-02.txt PPS source.
*
@@ -16,6 +16,7 @@
*/
#include "opt_devfs.h"
+#include "opt_ntp.h"
#include <sys/param.h>
#include <sys/kernel.h>
@@ -133,6 +134,7 @@ ppsopen(dev_t dev, int flags, int fmt, struct proc *p)
if (ppb_request_bus(&sc->pps_dev, PPB_WAIT|PPB_INTR))
return (EINTR);
+ ppb_wctr(&sc->pps_dev, 0);
ppb_wctr(&sc->pps_dev, IRQENABLE);
return(0);
@@ -144,6 +146,10 @@ ppsclose(dev_t dev, int flags, int fmt, struct proc *p)
struct pps_data *sc = softc[minor(dev)];
sc->ppsparam.mode = 0;
+
+ ppb_wdtr(&sc->pps_dev, 0);
+ ppb_wctr(&sc->pps_dev, 0);
+
ppb_release_bus(&sc->pps_dev);
return(0);
}
diff --git a/sys/dev/ppbus/vpoio.c b/sys/dev/ppbus/vpoio.c
index 54791ee..17c25dd 100644
--- a/sys/dev/ppbus/vpoio.c
+++ b/sys/dev/ppbus/vpoio.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: vpoio.c,v 1.4 1998/12/07 21:58:16 archie Exp $
+ * $Id: vpoio.c,v 1.5 1999/01/10 12:04:55 nsouch Exp $
*
*/
@@ -186,7 +186,7 @@ static struct ppb_microseq nibble_inbyte_submicroseq[] = {
/* do a C call to format the received nibbles */
MS_C_CALL(MS_UNKNOWN /* C hook */, MS_UNKNOWN /* param */),
- MS_DBRA(-6 /* loop */),
+ MS_DBRA(-7 /* loop */),
MS_CASS(H_AUTO | H_nSELIN | H_INIT | H_STROBE),
MS_RET(0)
@@ -202,7 +202,7 @@ static struct ppb_microseq ps2_inbyte_submicroseq[] = {
MS_RFETCH_P(1, MS_REG_DTR, MS_FETCH_ALL),
MS_CASS(PCD | H_nAUTO | H_SELIN | H_INIT | H_nSTROBE),
MS_CASS(PCD | H_AUTO | H_SELIN | H_INIT | H_nSTROBE),
- MS_DBRA(-3 /* loop */),
+ MS_DBRA(-4 /* loop */),
MS_CASS(H_AUTO | H_nSELIN | H_INIT | H_STROBE),
MS_RET(0)
@@ -218,7 +218,7 @@ static struct ppb_microseq spp_outbyte_submicroseq[] = {
MS_CASS(H_nAUTO | H_nSELIN | H_INIT | H_STROBE),
MS_CASS( H_AUTO | H_nSELIN | H_INIT | H_STROBE),
MS_DELAY(VP0_PULSE),
- MS_DBRA(-4 /* loop */),
+ MS_DBRA(-5 /* loop */),
/* return from the put call */
MS_RET(0)
@@ -229,9 +229,9 @@ static struct ppb_microseq epp17_outstr_body[] = {
MS_CASS(H_AUTO | H_SELIN | H_INIT | H_STROBE),
/* loop: */
- MS_RASSERT_P(1, MS_REG_EPP),
- MS_BRSET(TIMEOUT, 4 /* error */), /* EPP timeout? */
- MS_DBRA(-2 /* loop */),
+ MS_RASSERT_P(1, MS_REG_EPP_D),
+ MS_BRSET(TIMEOUT, 3 /* error */), /* EPP timeout? */
+ MS_DBRA(-3 /* loop */),
MS_CASS(H_AUTO | H_nSELIN | H_INIT | H_STROBE),
MS_RET(0),
@@ -244,9 +244,9 @@ static struct ppb_microseq epp17_instr_body[] = {
MS_CASS(PCD | H_AUTO | H_SELIN | H_INIT | H_STROBE),
/* loop: */
- MS_RFETCH_P(1, MS_REG_EPP, MS_FETCH_ALL),
- MS_BRSET(TIMEOUT, 4 /* error */), /* EPP timeout? */
- MS_DBRA(-2 /* loop */),
+ MS_RFETCH_P(1, MS_REG_EPP_D, MS_FETCH_ALL),
+ MS_BRSET(TIMEOUT, 3 /* error */), /* EPP timeout? */
+ MS_DBRA(-3 /* loop */),
MS_CASS(PCD | H_AUTO | H_nSELIN | H_INIT | H_STROBE),
MS_RET(0),
@@ -259,9 +259,9 @@ static struct ppb_microseq in_disk_mode[] = {
MS_CASS( H_AUTO | H_nSELIN | H_INIT | H_STROBE),
MS_CASS(H_nAUTO | H_nSELIN | H_INIT | H_STROBE),
- MS_BRCLEAR(H_FLT, 4 /* error */),
+ MS_BRCLEAR(H_FLT, 3 /* error */),
MS_CASS( H_AUTO | H_nSELIN | H_INIT | H_STROBE),
- MS_BRSET(H_FLT, 2 /* error */),
+ MS_BRSET(H_FLT, 1 /* error */),
MS_RET(1),
/* error: */
@@ -510,8 +510,8 @@ vpoio_select(struct vpoio_data *vpo, int initiator, int target)
/* now, wait until the drive is ready */
MS_SET(VP0_SELTMO),
-/* loop: */ MS_BRSET(H_ACK, 3 /* ready */),
- MS_DBRA(-1 /* loop */),
+/* loop: */ MS_BRSET(H_ACK, 2 /* ready */),
+ MS_DBRA(-2 /* loop */),
/* error: */ MS_RET(1),
/* ready: */ MS_RET(0)
};
diff --git a/sys/dev/ppc/ppc.c b/sys/dev/ppc/ppc.c
index bd6249b..65e3216 100644
--- a/sys/dev/ppc/ppc.c
+++ b/sys/dev/ppc/ppc.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppc.c,v 1.14 1999/01/10 12:04:53 nsouch Exp $
+ * $Id: ppc.c,v 1.15 1999/01/10 16:41:13 nsouch Exp $
*
*/
#include "ppc.h"
@@ -116,14 +116,16 @@ static void ppc_insl_epp(int unit, char *addr, int cnt) {
static u_char ppc_rdtr(int unit) { return r_dtr(ppcdata[unit]); }
static u_char ppc_rstr(int unit) { return r_str(ppcdata[unit]); }
static u_char ppc_rctr(int unit) { return r_ctr(ppcdata[unit]); }
-static u_char ppc_repp(int unit) { return r_epp(ppcdata[unit]); }
+static u_char ppc_repp_A(int unit) { return r_epp_A(ppcdata[unit]); }
+static u_char ppc_repp_D(int unit) { return r_epp_D(ppcdata[unit]); }
static u_char ppc_recr(int unit) { return r_ecr(ppcdata[unit]); }
static u_char ppc_rfifo(int unit) { return r_fifo(ppcdata[unit]); }
static void ppc_wdtr(int unit, char byte) { w_dtr(ppcdata[unit], byte); }
static void ppc_wstr(int unit, char byte) { w_str(ppcdata[unit], byte); }
static void ppc_wctr(int unit, char byte) { w_ctr(ppcdata[unit], byte); }
-static void ppc_wepp(int unit, char byte) { w_epp(ppcdata[unit], byte); }
+static void ppc_wepp_A(int unit, char byte) { w_epp_A(ppcdata[unit], byte); }
+static void ppc_wepp_D(int unit, char byte) { w_epp_D(ppcdata[unit], byte); }
static void ppc_wecr(int unit, char byte) { w_ecr(ppcdata[unit], byte); }
static void ppc_wfifo(int unit, char byte) { w_fifo(ppcdata[unit], byte); }
@@ -151,8 +153,8 @@ static struct ppb_adapter ppc_smclike_adapter = {
ppc_outsb_epp, ppc_outsw_epp, ppc_outsl_epp,
ppc_insb_epp, ppc_insw_epp, ppc_insl_epp,
- ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp, ppc_recr, ppc_rfifo,
- ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp, ppc_wecr, ppc_wfifo
+ ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp_A, ppc_repp_D, ppc_recr, ppc_rfifo,
+ ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp_A, ppc_wepp_D, ppc_wecr, ppc_wfifo
};
static struct ppb_adapter ppc_generic_adapter = {
@@ -168,8 +170,8 @@ static struct ppb_adapter ppc_generic_adapter = {
ppc_outsb_epp, ppc_outsw_epp, ppc_outsl_epp,
ppc_insb_epp, ppc_insw_epp, ppc_insl_epp,
- ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp, ppc_recr, ppc_rfifo,
- ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp, ppc_wecr, ppc_wfifo
+ ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp_A, ppc_repp_D, ppc_recr, ppc_rfifo,
+ ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp_A, ppc_wepp_D, ppc_wecr, ppc_wfifo
};
/*
@@ -1228,24 +1230,21 @@ ppc_exec_microseq(int unit, struct ppb_microseq **p_msq)
case MS_OP_DBRA:
if (--ppc->ppc_accum > 0)
mi += mi->arg[0].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRSET:
cc = r_str(ppc);
if ((cc & (char)mi->arg[0].i) == (char)mi->arg[0].i)
mi += mi->arg[1].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRCLEAR:
cc = r_str(ppc);
if ((cc & (char)mi->arg[0].i) == 0)
mi += mi->arg[1].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRSTAT:
@@ -1253,8 +1252,7 @@ ppc_exec_microseq(int unit, struct ppb_microseq **p_msq)
if ((cc & ((char)mi->arg[0].i | (char)mi->arg[1].i)) ==
(char)mi->arg[0].i)
mi += mi->arg[2].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_C_CALL:
diff --git a/sys/dev/ppc/ppcreg.h b/sys/dev/ppc/ppcreg.h
index c847e6c..3a61ae7 100644
--- a/sys/dev/ppc/ppcreg.h
+++ b/sys/dev/ppc/ppcreg.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppcreg.h,v 1.6 1999/01/10 12:04:53 nsouch Exp $
+ * $Id: ppcreg.h,v 1.7 1999/01/10 16:41:13 nsouch Exp $
*
*/
#ifndef __PPCREG_H
@@ -102,6 +102,7 @@ struct ppc_data {
#define PPC_ECP_A_FIFO 0 /* ECP Address fifo register */
#define PPC_SPP_STR 1 /* SPP status register */
#define PPC_SPP_CTR 2 /* SPP control register */
+#define PPC_EPP_ADDR 3 /* EPP address register (8 bit) */
#define PPC_EPP_DATA 4 /* EPP data register (8, 16 or 32 bit) */
#define PPC_ECP_D_FIFO 0x400 /* ECP Data fifo register */
#define PPC_ECP_CNFGA 0x400 /* Configuration register A */
@@ -125,7 +126,8 @@ struct ppc_data {
#define r_dtr(ppc) (inb((ppc)->ppc_base + PPC_SPP_DTR))
#define r_str(ppc) (inb((ppc)->ppc_base + PPC_SPP_STR))
#define r_ctr(ppc) (inb((ppc)->ppc_base + PPC_SPP_CTR))
-#define r_epp(ppc) (inb((ppc)->ppc_base + PPC_EPP_DATA))
+#define r_epp_A(ppc) (inb((ppc)->ppc_base + PPC_EPP_ADDR))
+#define r_epp_D(ppc) (inb((ppc)->ppc_base + PPC_EPP_DATA))
#define r_cnfgA(ppc) (inb((ppc)->ppc_base + PPC_ECP_CNFGA))
#define r_cnfgB(ppc) (inb((ppc)->ppc_base + PPC_ECP_CNFGB))
#define r_ecr(ppc) (inb((ppc)->ppc_base + PPC_ECP_ECR))
@@ -134,7 +136,8 @@ struct ppc_data {
#define w_dtr(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_DTR, byte)
#define w_str(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_STR, byte)
#define w_ctr(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_CTR, byte)
-#define w_epp(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_DATA, byte)
+#define w_epp_A(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_ADDR, byte)
+#define w_epp_D(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_DATA, byte)
#define w_ecr(ppc,byte) outb((ppc)->ppc_base + PPC_ECP_ECR, byte)
#define w_fifo(ppc,byte) outb((ppc)->ppc_base + PPC_ECP_D_FIFO, byte)
diff --git a/sys/i386/isa/ppc.c b/sys/i386/isa/ppc.c
index bd6249b..65e3216 100644
--- a/sys/i386/isa/ppc.c
+++ b/sys/i386/isa/ppc.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppc.c,v 1.14 1999/01/10 12:04:53 nsouch Exp $
+ * $Id: ppc.c,v 1.15 1999/01/10 16:41:13 nsouch Exp $
*
*/
#include "ppc.h"
@@ -116,14 +116,16 @@ static void ppc_insl_epp(int unit, char *addr, int cnt) {
static u_char ppc_rdtr(int unit) { return r_dtr(ppcdata[unit]); }
static u_char ppc_rstr(int unit) { return r_str(ppcdata[unit]); }
static u_char ppc_rctr(int unit) { return r_ctr(ppcdata[unit]); }
-static u_char ppc_repp(int unit) { return r_epp(ppcdata[unit]); }
+static u_char ppc_repp_A(int unit) { return r_epp_A(ppcdata[unit]); }
+static u_char ppc_repp_D(int unit) { return r_epp_D(ppcdata[unit]); }
static u_char ppc_recr(int unit) { return r_ecr(ppcdata[unit]); }
static u_char ppc_rfifo(int unit) { return r_fifo(ppcdata[unit]); }
static void ppc_wdtr(int unit, char byte) { w_dtr(ppcdata[unit], byte); }
static void ppc_wstr(int unit, char byte) { w_str(ppcdata[unit], byte); }
static void ppc_wctr(int unit, char byte) { w_ctr(ppcdata[unit], byte); }
-static void ppc_wepp(int unit, char byte) { w_epp(ppcdata[unit], byte); }
+static void ppc_wepp_A(int unit, char byte) { w_epp_A(ppcdata[unit], byte); }
+static void ppc_wepp_D(int unit, char byte) { w_epp_D(ppcdata[unit], byte); }
static void ppc_wecr(int unit, char byte) { w_ecr(ppcdata[unit], byte); }
static void ppc_wfifo(int unit, char byte) { w_fifo(ppcdata[unit], byte); }
@@ -151,8 +153,8 @@ static struct ppb_adapter ppc_smclike_adapter = {
ppc_outsb_epp, ppc_outsw_epp, ppc_outsl_epp,
ppc_insb_epp, ppc_insw_epp, ppc_insl_epp,
- ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp, ppc_recr, ppc_rfifo,
- ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp, ppc_wecr, ppc_wfifo
+ ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp_A, ppc_repp_D, ppc_recr, ppc_rfifo,
+ ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp_A, ppc_wepp_D, ppc_wecr, ppc_wfifo
};
static struct ppb_adapter ppc_generic_adapter = {
@@ -168,8 +170,8 @@ static struct ppb_adapter ppc_generic_adapter = {
ppc_outsb_epp, ppc_outsw_epp, ppc_outsl_epp,
ppc_insb_epp, ppc_insw_epp, ppc_insl_epp,
- ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp, ppc_recr, ppc_rfifo,
- ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp, ppc_wecr, ppc_wfifo
+ ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp_A, ppc_repp_D, ppc_recr, ppc_rfifo,
+ ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp_A, ppc_wepp_D, ppc_wecr, ppc_wfifo
};
/*
@@ -1228,24 +1230,21 @@ ppc_exec_microseq(int unit, struct ppb_microseq **p_msq)
case MS_OP_DBRA:
if (--ppc->ppc_accum > 0)
mi += mi->arg[0].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRSET:
cc = r_str(ppc);
if ((cc & (char)mi->arg[0].i) == (char)mi->arg[0].i)
mi += mi->arg[1].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRCLEAR:
cc = r_str(ppc);
if ((cc & (char)mi->arg[0].i) == 0)
mi += mi->arg[1].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRSTAT:
@@ -1253,8 +1252,7 @@ ppc_exec_microseq(int unit, struct ppb_microseq **p_msq)
if ((cc & ((char)mi->arg[0].i | (char)mi->arg[1].i)) ==
(char)mi->arg[0].i)
mi += mi->arg[2].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_C_CALL:
diff --git a/sys/i386/isa/ppcreg.h b/sys/i386/isa/ppcreg.h
index c847e6c..3a61ae7 100644
--- a/sys/i386/isa/ppcreg.h
+++ b/sys/i386/isa/ppcreg.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppcreg.h,v 1.6 1999/01/10 12:04:53 nsouch Exp $
+ * $Id: ppcreg.h,v 1.7 1999/01/10 16:41:13 nsouch Exp $
*
*/
#ifndef __PPCREG_H
@@ -102,6 +102,7 @@ struct ppc_data {
#define PPC_ECP_A_FIFO 0 /* ECP Address fifo register */
#define PPC_SPP_STR 1 /* SPP status register */
#define PPC_SPP_CTR 2 /* SPP control register */
+#define PPC_EPP_ADDR 3 /* EPP address register (8 bit) */
#define PPC_EPP_DATA 4 /* EPP data register (8, 16 or 32 bit) */
#define PPC_ECP_D_FIFO 0x400 /* ECP Data fifo register */
#define PPC_ECP_CNFGA 0x400 /* Configuration register A */
@@ -125,7 +126,8 @@ struct ppc_data {
#define r_dtr(ppc) (inb((ppc)->ppc_base + PPC_SPP_DTR))
#define r_str(ppc) (inb((ppc)->ppc_base + PPC_SPP_STR))
#define r_ctr(ppc) (inb((ppc)->ppc_base + PPC_SPP_CTR))
-#define r_epp(ppc) (inb((ppc)->ppc_base + PPC_EPP_DATA))
+#define r_epp_A(ppc) (inb((ppc)->ppc_base + PPC_EPP_ADDR))
+#define r_epp_D(ppc) (inb((ppc)->ppc_base + PPC_EPP_DATA))
#define r_cnfgA(ppc) (inb((ppc)->ppc_base + PPC_ECP_CNFGA))
#define r_cnfgB(ppc) (inb((ppc)->ppc_base + PPC_ECP_CNFGB))
#define r_ecr(ppc) (inb((ppc)->ppc_base + PPC_ECP_ECR))
@@ -134,7 +136,8 @@ struct ppc_data {
#define w_dtr(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_DTR, byte)
#define w_str(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_STR, byte)
#define w_ctr(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_CTR, byte)
-#define w_epp(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_DATA, byte)
+#define w_epp_A(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_ADDR, byte)
+#define w_epp_D(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_DATA, byte)
#define w_ecr(ppc,byte) outb((ppc)->ppc_base + PPC_ECP_ECR, byte)
#define w_fifo(ppc,byte) outb((ppc)->ppc_base + PPC_ECP_D_FIFO, byte)
diff --git a/sys/isa/ppc.c b/sys/isa/ppc.c
index bd6249b..65e3216 100644
--- a/sys/isa/ppc.c
+++ b/sys/isa/ppc.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppc.c,v 1.14 1999/01/10 12:04:53 nsouch Exp $
+ * $Id: ppc.c,v 1.15 1999/01/10 16:41:13 nsouch Exp $
*
*/
#include "ppc.h"
@@ -116,14 +116,16 @@ static void ppc_insl_epp(int unit, char *addr, int cnt) {
static u_char ppc_rdtr(int unit) { return r_dtr(ppcdata[unit]); }
static u_char ppc_rstr(int unit) { return r_str(ppcdata[unit]); }
static u_char ppc_rctr(int unit) { return r_ctr(ppcdata[unit]); }
-static u_char ppc_repp(int unit) { return r_epp(ppcdata[unit]); }
+static u_char ppc_repp_A(int unit) { return r_epp_A(ppcdata[unit]); }
+static u_char ppc_repp_D(int unit) { return r_epp_D(ppcdata[unit]); }
static u_char ppc_recr(int unit) { return r_ecr(ppcdata[unit]); }
static u_char ppc_rfifo(int unit) { return r_fifo(ppcdata[unit]); }
static void ppc_wdtr(int unit, char byte) { w_dtr(ppcdata[unit], byte); }
static void ppc_wstr(int unit, char byte) { w_str(ppcdata[unit], byte); }
static void ppc_wctr(int unit, char byte) { w_ctr(ppcdata[unit], byte); }
-static void ppc_wepp(int unit, char byte) { w_epp(ppcdata[unit], byte); }
+static void ppc_wepp_A(int unit, char byte) { w_epp_A(ppcdata[unit], byte); }
+static void ppc_wepp_D(int unit, char byte) { w_epp_D(ppcdata[unit], byte); }
static void ppc_wecr(int unit, char byte) { w_ecr(ppcdata[unit], byte); }
static void ppc_wfifo(int unit, char byte) { w_fifo(ppcdata[unit], byte); }
@@ -151,8 +153,8 @@ static struct ppb_adapter ppc_smclike_adapter = {
ppc_outsb_epp, ppc_outsw_epp, ppc_outsl_epp,
ppc_insb_epp, ppc_insw_epp, ppc_insl_epp,
- ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp, ppc_recr, ppc_rfifo,
- ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp, ppc_wecr, ppc_wfifo
+ ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp_A, ppc_repp_D, ppc_recr, ppc_rfifo,
+ ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp_A, ppc_wepp_D, ppc_wecr, ppc_wfifo
};
static struct ppb_adapter ppc_generic_adapter = {
@@ -168,8 +170,8 @@ static struct ppb_adapter ppc_generic_adapter = {
ppc_outsb_epp, ppc_outsw_epp, ppc_outsl_epp,
ppc_insb_epp, ppc_insw_epp, ppc_insl_epp,
- ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp, ppc_recr, ppc_rfifo,
- ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp, ppc_wecr, ppc_wfifo
+ ppc_rdtr, ppc_rstr, ppc_rctr, ppc_repp_A, ppc_repp_D, ppc_recr, ppc_rfifo,
+ ppc_wdtr, ppc_wstr, ppc_wctr, ppc_wepp_A, ppc_wepp_D, ppc_wecr, ppc_wfifo
};
/*
@@ -1228,24 +1230,21 @@ ppc_exec_microseq(int unit, struct ppb_microseq **p_msq)
case MS_OP_DBRA:
if (--ppc->ppc_accum > 0)
mi += mi->arg[0].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRSET:
cc = r_str(ppc);
if ((cc & (char)mi->arg[0].i) == (char)mi->arg[0].i)
mi += mi->arg[1].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRCLEAR:
cc = r_str(ppc);
if ((cc & (char)mi->arg[0].i) == 0)
mi += mi->arg[1].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_BRSTAT:
@@ -1253,8 +1252,7 @@ ppc_exec_microseq(int unit, struct ppb_microseq **p_msq)
if ((cc & ((char)mi->arg[0].i | (char)mi->arg[1].i)) ==
(char)mi->arg[0].i)
mi += mi->arg[2].i;
- else
- INCR_PC;
+ INCR_PC;
break;
case MS_OP_C_CALL:
diff --git a/sys/isa/ppcreg.h b/sys/isa/ppcreg.h
index c847e6c..3a61ae7 100644
--- a/sys/isa/ppcreg.h
+++ b/sys/isa/ppcreg.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: ppcreg.h,v 1.6 1999/01/10 12:04:53 nsouch Exp $
+ * $Id: ppcreg.h,v 1.7 1999/01/10 16:41:13 nsouch Exp $
*
*/
#ifndef __PPCREG_H
@@ -102,6 +102,7 @@ struct ppc_data {
#define PPC_ECP_A_FIFO 0 /* ECP Address fifo register */
#define PPC_SPP_STR 1 /* SPP status register */
#define PPC_SPP_CTR 2 /* SPP control register */
+#define PPC_EPP_ADDR 3 /* EPP address register (8 bit) */
#define PPC_EPP_DATA 4 /* EPP data register (8, 16 or 32 bit) */
#define PPC_ECP_D_FIFO 0x400 /* ECP Data fifo register */
#define PPC_ECP_CNFGA 0x400 /* Configuration register A */
@@ -125,7 +126,8 @@ struct ppc_data {
#define r_dtr(ppc) (inb((ppc)->ppc_base + PPC_SPP_DTR))
#define r_str(ppc) (inb((ppc)->ppc_base + PPC_SPP_STR))
#define r_ctr(ppc) (inb((ppc)->ppc_base + PPC_SPP_CTR))
-#define r_epp(ppc) (inb((ppc)->ppc_base + PPC_EPP_DATA))
+#define r_epp_A(ppc) (inb((ppc)->ppc_base + PPC_EPP_ADDR))
+#define r_epp_D(ppc) (inb((ppc)->ppc_base + PPC_EPP_DATA))
#define r_cnfgA(ppc) (inb((ppc)->ppc_base + PPC_ECP_CNFGA))
#define r_cnfgB(ppc) (inb((ppc)->ppc_base + PPC_ECP_CNFGB))
#define r_ecr(ppc) (inb((ppc)->ppc_base + PPC_ECP_ECR))
@@ -134,7 +136,8 @@ struct ppc_data {
#define w_dtr(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_DTR, byte)
#define w_str(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_STR, byte)
#define w_ctr(ppc,byte) outb((ppc)->ppc_base + PPC_SPP_CTR, byte)
-#define w_epp(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_DATA, byte)
+#define w_epp_A(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_ADDR, byte)
+#define w_epp_D(ppc,byte) outb((ppc)->ppc_base + PPC_EPP_DATA, byte)
#define w_ecr(ppc,byte) outb((ppc)->ppc_base + PPC_ECP_ECR, byte)
#define w_fifo(ppc,byte) outb((ppc)->ppc_base + PPC_ECP_D_FIFO, byte)
OpenPOWER on IntegriCloud