Note: this is the third version of this patch.
Apply by doing
cd /usr/src/sys/arch/sparc/dev
patch -p0 < hme.patch
And then rebuild your kernel.
Index: sbus.c
===================================================================
RCS file: /cvs/src/sys/arch/sparc/dev/sbus.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- sbus.c 1998/11/11 00:26:00 1.6
+++ sbus.c 1998/12/14 17:51:35 1.7
@@ -1,4 +1,4 @@
-/* $OpenBSD: sbus.c,v 1.6 1998/11/11 00:26:00 jason Exp $ */
+/* $OpenBSD: sbus.c,v 1.7 1998/12/14 17:51:35 deraadt Exp $ */
/* $NetBSD: sbus.c,v 1.17 1997/06/01 22:10:39 pk Exp $ */
/*
@@ -59,6 +59,7 @@
#include <sparc/dev/sbusreg.h>
#include <sparc/dev/sbusvar.h>
+#include <sparc/dev/dmareg.h>
int sbus_print __P((void *, const char *));
void sbusreset __P((int));
@@ -151,6 +152,7 @@
* Get the SBus burst transfer size if burst transfers are supported
*/
sc->sc_burst = getpropint(node, "burst-sizes", 0);
+ sc->sc_burst = sc->sc_burst & ~SBUS_BURST_64;
if (ra->ra_bp != NULL && strcmp(ra->ra_bp->name, "sbus") == 0)
oca.ca_ra.ra_bp = ra->ra_bp + 1;
Index: hme.c
===================================================================
RCS file: /cvs/src/sys/arch/sparc/dev/hme.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- hme.c 1998/11/11 00:26:00 1.13
+++ hme.c 1998/12/14 17:37:24 1.14
@@ -1,4 +1,4 @@
-/* $OpenBSD: hme.c,v 1.13 1998/11/11 00:26:00 jason Exp $ */
+/* $OpenBSD: hme.c,v 1.14 1998/12/14 17:37:24 jason Exp $ */
/*
* Copyright (c) 1998 Jason L. Wright (
[email protected])
@@ -196,7 +196,12 @@
else if (sc->sc_rev != 0xa0)
sc->sc_flags = HME_FLAG_NOT_A0;
- sc->sc_burst = ((struct sbus_softc *)parent)->sc_burst;
+ sc->sc_burst = getpropint(ca->ca_ra.ra_node, "burst-sizes", -1);
+ if (sc->sc_burst == -1)
+ sc->sc_burst = ((struct sbus_softc *)parent)->sc_burst;
+
+ /* Clamp at parent's burst sizes */
+ sc->sc_burst &= ((struct sbus_softc *)parent)->sc_burst;
hme_meminit(sc);