Module Name: src
Committed By: macallan
Date: Thu Nov 10 06:44:35 UTC 2016
Modified Files:
src/sys/arch/sparc64/dev: pyro.c sbus.c schizo.c
Log Message:
weed out BUS_SPACE_MAP_PREFETCHABLE in resp. _map() and _mmap() methods
it works with UPA graphics cards and at least some psycho but causes problems
on these
To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/sparc64/dev/pyro.c
cvs rdiff -u -r1.95 -r1.96 src/sys/arch/sparc64/dev/sbus.c
cvs rdiff -u -r1.36 -r1.37 src/sys/arch/sparc64/dev/schizo.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/sparc64/dev/pyro.c
diff -u src/sys/arch/sparc64/dev/pyro.c:1.17 src/sys/arch/sparc64/dev/pyro.c:1.18
--- src/sys/arch/sparc64/dev/pyro.c:1.17 Tue May 10 19:23:59 2016
+++ src/sys/arch/sparc64/dev/pyro.c Thu Nov 10 06:44:35 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: pyro.c,v 1.17 2016/05/10 19:23:59 palle Exp $ */
+/* $NetBSD: pyro.c,v 1.18 2016/11/10 06:44:35 macallan Exp $ */
/* from: $OpenBSD: pyro.c,v 1.20 2010/12/05 15:15:14 kettenis Exp $ */
/*
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pyro.c,v 1.17 2016/05/10 19:23:59 palle Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pyro.c,v 1.18 2016/11/10 06:44:35 macallan Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -495,6 +495,12 @@ pyro_bus_map(bus_space_tag_t t, bus_addr
(unsigned long long)size,
flags));
+ /*
+ * BUS_SPACE_MAP_PREFETCHABLE causes hard hangs on schizo, so weed it
+ * out for now until someone can verify wether it works on pyro
+ */
+ flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
ss = sparc_pci_childspace(t->type);
DPRINTF(PDB_BUSMAP, (" cspace %d", ss));
@@ -527,6 +533,12 @@ pyro_bus_mmap(bus_space_tag_t t, bus_add
struct pyro_softc *sc = pbm->pp_sc;
int i, ss;
+ /*
+ * BUS_SPACE_MAP_PREFETCHABLE causes hard hangs on schizo, so weed it
+ * out for now until someone can verify wether it works on pyro
+ */
+ flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
ss = sparc_pci_childspace(t->type);
DPRINTF(PDB_BUSMAP, ("pyro_bus_mmap: prot %d flags %d pa %qx\n",
Index: src/sys/arch/sparc64/dev/sbus.c
diff -u src/sys/arch/sparc64/dev/sbus.c:1.95 src/sys/arch/sparc64/dev/sbus.c:1.96
--- src/sys/arch/sparc64/dev/sbus.c:1.95 Thu Jul 7 06:55:38 2016
+++ src/sys/arch/sparc64/dev/sbus.c Thu Nov 10 06:44:35 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: sbus.c,v 1.95 2016/07/07 06:55:38 msaitoh Exp $ */
+/* $NetBSD: sbus.c,v 1.96 2016/11/10 06:44:35 macallan Exp $ */
/*
* Copyright (c) 1999-2002 Eduardo Horvath
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sbus.c,v 1.95 2016/07/07 06:55:38 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sbus.c,v 1.96 2016/11/10 06:44:35 macallan Exp $");
#include "opt_ddb.h"
@@ -383,6 +383,13 @@ _sbus_bus_map(bus_space_tag_t t, bus_add
return (error);
}
+ /*
+ * BUS_SPACE_MAP_PREFETCHABLE doesn't work right through sbus, so weed
+ * it out for now until we know better
+ */
+
+ flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
return (bus_space_map(t->parent, addr, size, flags, hp));
}
Index: src/sys/arch/sparc64/dev/schizo.c
diff -u src/sys/arch/sparc64/dev/schizo.c:1.36 src/sys/arch/sparc64/dev/schizo.c:1.37
--- src/sys/arch/sparc64/dev/schizo.c:1.36 Tue May 10 19:23:59 2016
+++ src/sys/arch/sparc64/dev/schizo.c Thu Nov 10 06:44:35 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: schizo.c,v 1.36 2016/05/10 19:23:59 palle Exp $ */
+/* $NetBSD: schizo.c,v 1.37 2016/11/10 06:44:35 macallan Exp $ */
/* $OpenBSD: schizo.c,v 1.55 2008/08/18 20:29:37 brad Exp $ */
/*
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: schizo.c,v 1.36 2016/05/10 19:23:59 palle Exp $");
+__KERNEL_RCSID(0, "$NetBSD: schizo.c,v 1.37 2016/11/10 06:44:35 macallan Exp $");
#include <sys/param.h>
#include <sys/device.h>
@@ -737,6 +737,12 @@ schizo_bus_map(bus_space_tag_t t, bus_ad
(unsigned long long)size,
flags));
+ /*
+ * BUS_SPACE_MAP_PREFETCHABLE causes hard hangs on schizo, so weed it
+ * out for now
+ */
+ flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
ss = sparc_pci_childspace(t->type);
DPRINTF(SDB_BUSMAP, (" cspace %d\n", ss));
@@ -764,6 +770,12 @@ schizo_bus_mmap(bus_space_tag_t t, bus_a
struct schizo_range *sr;
int ss;
+ /*
+ * BUS_SPACE_MAP_PREFETCHABLE causes hard hangs on schizo, so weed it
+ * out for now
+ */
+ flags &= ~BUS_SPACE_MAP_PREFETCHABLE;
+
ss = sparc_pci_childspace(t->type);
DPRINTF(SDB_BUSMAP, ("schizo_bus_mmap: prot %d flags %d pa %qx\n",