Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jan 2014 20:26:08 +0000 (UTC)
From:      Zbigniew Bodek <zbb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r260165 - head/sys/dev/ahci
Message-ID:  <201401012026.s01KQ8KU017949@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: zbb
Date: Wed Jan  1 20:26:08 2014
New Revision: 260165
URL: http://svnweb.freebsd.org/changeset/base/260165

Log:
  Use only mapped BIOs on ARM
  
  Using unmapped BIOs causes failure inside bus_dmamap_sync, since
  this function requires valid MVA address, which is not present
  if mapping is not set up.
  
  Submitted by:	Wojciech Macek <wma@semihalf.com>
  Obtained from:	Semihalf

Modified:
  head/sys/dev/ahci/ahci.c

Modified: head/sys/dev/ahci/ahci.c
==============================================================================
--- head/sys/dev/ahci/ahci.c	Wed Jan  1 20:22:29 2014	(r260164)
+++ head/sys/dev/ahci/ahci.c	Wed Jan  1 20:26:08 2014	(r260165)
@@ -3066,7 +3066,15 @@ ahciaction(struct cam_sim *sim, union cc
 		if (ch->caps & AHCI_CAP_SPM)
 			cpi->hba_inquiry |= PI_SATAPM;
 		cpi->target_sprt = 0;
+#ifdef __arm__
+		/*
+		 * Do not use unmapped buffers on ARM. Doing so will cause
+		 * failure inside bus_dmamap_sync due to lack of VA.
+		 */
+		cpi->hba_misc = PIM_SEQSCAN;
+#else
 		cpi->hba_misc = PIM_SEQSCAN | PIM_UNMAPPED;
+#endif
 		cpi->hba_eng_cnt = 0;
 		if (ch->caps & AHCI_CAP_SPM)
 			cpi->max_target = 15;



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