svn commit: r230677 - stable/9/sys/sparc64/pci
Marius Strobl
marius at FreeBSD.org
Sat Jan 28 23:26:51 UTC 2012
Author: marius
Date: Sat Jan 28 23:26:50 2012
New Revision: 230677
URL: http://svn.freebsd.org/changeset/base/230677
Log:
MFC: r225891
Re-reading the Schizo errata suggests that it's actually tolerable to
also use the streaming buffer of pre version 5/revision 2.3 hardware as
long as we stay away from context flushes (which iommu(4) so far doesn't
take advantage of). OpenSolaris does the same.
Modified:
stable/9/sys/sparc64/pci/schizo.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/amd64/include/xen/ (props changed)
stable/9/sys/boot/ (props changed)
stable/9/sys/boot/i386/efi/ (props changed)
stable/9/sys/boot/ia64/efi/ (props changed)
stable/9/sys/boot/ia64/ski/ (props changed)
stable/9/sys/boot/powerpc/boot1.chrp/ (props changed)
stable/9/sys/boot/powerpc/ofw/ (props changed)
stable/9/sys/cddl/contrib/opensolaris/ (props changed)
stable/9/sys/conf/ (props changed)
stable/9/sys/contrib/dev/acpica/ (props changed)
stable/9/sys/contrib/octeon-sdk/ (props changed)
stable/9/sys/contrib/pf/ (props changed)
stable/9/sys/contrib/x86emu/ (props changed)
Modified: stable/9/sys/sparc64/pci/schizo.c
==============================================================================
--- stable/9/sys/sparc64/pci/schizo.c Sat Jan 28 23:25:31 2012 (r230676)
+++ stable/9/sys/sparc64/pci/schizo.c Sat Jan 28 23:26:50 2012 (r230677)
@@ -500,7 +500,8 @@ schizo_attach(device_t dev)
* Set up the IOMMU. Schizo, Tomatillo and XMITS all have
* one per PBM. Schizo and XMITS additionally have a streaming
* buffer, in Schizo version < 5 (i.e. revision < 2.3) it's
- * affected by several errata and basically unusable though.
+ * affected by several errata though. However, except for context
+ * flushes, taking advantage of it should be okay even with those.
*/
memcpy(&sc->sc_dma_methods, &iommu_dma_methods,
sizeof(sc->sc_dma_methods));
@@ -508,8 +509,7 @@ schizo_attach(device_t dev)
sc->sc_is.sis_is.is_flags = IOMMU_PRESERVE_PROM;
sc->sc_is.sis_is.is_pmaxaddr = IOMMU_MAXADDR(STX_IOMMU_BITS);
sc->sc_is.sis_is.is_sb[0] = sc->sc_is.sis_is.is_sb[1] = 0;
- if (OF_getproplen(node, "no-streaming-cache") < 0 &&
- !(sc->sc_mode == SCHIZO_MODE_SCZ && sc->sc_ver < 5))
+ if (OF_getproplen(node, "no-streaming-cache") < 0)
sc->sc_is.sis_is.is_sb[0] = STX_PCI_STRBUF;
#define TSBCASE(x) \
More information about the svn-src-stable-9
mailing list