summaryrefslogtreecommitdiff
path: root/sys/arch/mvme88k
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2007-12-13 18:50:11 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2007-12-13 18:50:11 +0000
commit2002bf05d157be6af5da49dc2b2bd8b88afdb389 (patch)
tree971394269cc2afbed14a3daccfbd7c2a02b249c7 /sys/arch/mvme88k
parentfd41d40029b4b6318c4f7ed90f9d2251ab04bc22 (diff)
Disable write posting, this does not work on BusSwitch revision #1. The BUG
should do this for us, but better play safe.
Diffstat (limited to 'sys/arch/mvme88k')
-rw-r--r--sys/arch/mvme88k/dev/bussw.c8
-rw-r--r--sys/arch/mvme88k/dev/busswreg.h6
2 files changed, 12 insertions, 2 deletions
diff --git a/sys/arch/mvme88k/dev/bussw.c b/sys/arch/mvme88k/dev/bussw.c
index 4e0a52249c3..79b7ef92513 100644
--- a/sys/arch/mvme88k/dev/bussw.c
+++ b/sys/arch/mvme88k/dev/bussw.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bussw.c,v 1.19 2007/12/04 23:45:52 miod Exp $ */
+/* $OpenBSD: bussw.c,v 1.20 2007/12/13 18:50:10 miod Exp $ */
/*
* Copyright (c) 1999 Steve Murphree, Jr.
*
@@ -93,6 +93,7 @@ bussw_attach(parent, self, args)
struct confargs *ca = args;
struct bussw_softc *sc = (struct bussw_softc *)self;
bus_space_handle_t ioh;
+ int i;
if (bus_space_map(ca->ca_iot, ca->ca_paddr, BS_SIZE, 0, &ioh) != 0) {
printf(": can't map registers!\n");
@@ -109,6 +110,11 @@ bussw_attach(parent, self, args)
bus_space_write_2(sc->sc_iot, ioh, BS_GCSR,
bus_space_read_2(sc->sc_iot, ioh, BS_GCSR) | BS_GCSR_XIPL);
+ /* disable write posting */
+ for (i = 0; i < 4; i++)
+ bus_space_write_1(sc->sc_iot, ioh, BS_PAR + i,
+ bus_space_read_1(sc->sc_iot, ioh, BS_PAR + i) & ~BS_PAR_WPEN);
+
/* enable abort switch */
bus_space_write_1(sc->sc_iot, ioh, BS_ABORT,
bus_space_read_1(sc->sc_iot, ioh, BS_ABORT) | BS_ABORT_IEN);
diff --git a/sys/arch/mvme88k/dev/busswreg.h b/sys/arch/mvme88k/dev/busswreg.h
index f17e49c5f01..a2c21c450d7 100644
--- a/sys/arch/mvme88k/dev/busswreg.h
+++ b/sys/arch/mvme88k/dev/busswreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: busswreg.h,v 1.9 2007/12/04 23:45:52 miod Exp $ */
+/* $OpenBSD: busswreg.h,v 1.10 2007/12/13 18:50:10 miod Exp $ */
/*
* Memory map for BusSwitch chip found in mvme197 boards.
@@ -99,6 +99,10 @@
#define BS_GCSR_TBB 0x4000 /* Test Bus Busy */
#define BS_GCSR_POR 0x8000 /* Power On Reset */
+/* Processor Attribute Registers bit definitions */
+#define BS_PAR_DEN 0x01 /* Decode Enable */
+#define BS_PAR_WPEN 0x02 /* Write Post Enable */
+
/* System Attribute Registers bit definitions */
#define BS_SAR_DEN 0x01 /* Decode Enable */
#define BS_SAR_INVR 0x04 /* Invalidate On Reads */