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 (jason@thought.net)
@@ -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);
 
