Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Nov 2013 02:49:20 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r257907 - projects/altix2/sys/ia64/sgisn
Message-ID:  <201311100249.rAA2nKRt055691@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marcel
Date: Sun Nov 10 02:49:20 2013
New Revision: 257907
URL: http://svnweb.freebsd.org/changeset/base/257907

Log:
  Fix Altix 350 support (SHub1/PIC), broken when Altix 450 (SHub2/TIOCP)
  support was added: prefetch cannot be set when consistent/coherent I/O
  is wanted. It's one or the other or none.

Modified:
  projects/altix2/sys/ia64/sgisn/sgisn_pcib.c

Modified: projects/altix2/sys/ia64/sgisn/sgisn_pcib.c
==============================================================================
--- projects/altix2/sys/ia64/sgisn/sgisn_pcib.c	Sun Nov 10 02:43:09 2013	(r257906)
+++ projects/altix2/sys/ia64/sgisn/sgisn_pcib.c	Sun Nov 10 02:49:20 2013	(r257907)
@@ -660,7 +660,7 @@ sgisn_pcib_iommu_map(device_t bus, devic
 		addr = ba;
 		if (flags & BUSDMA_ALLOC_CONSISTENT)
 			addr |= 1UL << 56;	/* bar */
-		if ((sc->sc_fwbus->fw_mode & 1) == 0)
+		else if ((sc->sc_fwbus->fw_mode & 1) == 0)
 			addr |= 1UL << 59;	/* prefetch */
 		if (sc->sc_fwbus->fw_common.bus_asic == SGISN_PCIB_PIC)
 			addr |= (u_long)sc->sc_fwbus->fw_hub_xid << 60;
@@ -746,10 +746,10 @@ sgisn_pcib_iommu_map(device_t bus, devic
 
 	ba &= ~SGISN_PCIB_PAGE_MASK;
 	ba |= 1 << 0;		/* valid */
-	if ((sc->sc_fwbus->fw_mode & 1) == 0)
-		ba |= 1 << 3;	/* prefetch */
 	if (flags & BUSDMA_ALLOC_CONSISTENT)
 		ba |= 1 << 4;	/* bar */
+	else if ((sc->sc_fwbus->fw_mode & 1) == 0)
+		ba |= 1 << 3;	/* prefetch */
 	if (sc->sc_fwbus->fw_common.bus_asic == SGISN_PCIB_PIC)
 		ba |= (u_long)sc->sc_fwbus->fw_hub_xid << 8;
 	while (count > 0) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311100249.rAA2nKRt055691>