Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Nov 2013 00:21:39 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r257484 - head/sys/ia64/ia64
Message-ID:  <201311010021.rA10Ld3R030902@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marcel
Date: Fri Nov  1 00:21:38 2013
New Revision: 257484
URL: http://svnweb.freebsd.org/changeset/base/257484

Log:
  The PAL_PTCE_INFO function returns the counts and strides of the
  outer and inner loop as 32-bit integers mux'd in 64-bit return
  values. Change our data types for the count and stride to match
  and simplify/adjust accordingly.
  Note that with this change the defaults of the ptc.e parameters
  have changed. Since all hardware is supposed to support the PAL
  call, there should be no impact. Even ski is unaffected, because
  the TC is re-initialized without considering the virtual address.
  So, as long as we call ptc.e at least once, we're good. That's
  what the new defaults do.
  Most processor implementations need but a single ptc.e to purge
  the entire TC anyway...

Modified:
  head/sys/ia64/ia64/pmap.c

Modified: head/sys/ia64/ia64/pmap.c
==============================================================================
--- head/sys/ia64/ia64/pmap.c	Fri Nov  1 00:21:09 2013	(r257483)
+++ head/sys/ia64/ia64/pmap.c	Fri Nov  1 00:21:38 2013	(r257484)
@@ -195,12 +195,12 @@ extern struct ia64_lpte ***ia64_kptdir;
 
 vm_offset_t kernel_vm_end;
 
-/* Values for ptc.e. XXX values for SKI. */
-static uint64_t pmap_ptc_e_base = 0x100000000;
-static uint64_t pmap_ptc_e_count1 = 3;
-static uint64_t pmap_ptc_e_count2 = 2;
-static uint64_t pmap_ptc_e_stride1 = 0x2000;
-static uint64_t pmap_ptc_e_stride2 = 0x100000000;
+/* Defaults for ptc.e. */
+static uint64_t pmap_ptc_e_base = 0;
+static uint32_t pmap_ptc_e_count1 = 1;
+static uint32_t pmap_ptc_e_count2 = 1;
+static uint32_t pmap_ptc_e_stride1 = 0;
+static uint32_t pmap_ptc_e_stride2 = 0;
 
 struct mtx pmap_ptc_mutex;
 
@@ -324,12 +324,12 @@ pmap_bootstrap()
 		panic("Can't configure ptc.e parameters");
 	pmap_ptc_e_base = res.pal_result[0];
 	pmap_ptc_e_count1 = res.pal_result[1] >> 32;
-	pmap_ptc_e_count2 = res.pal_result[1] & ((1L<<32) - 1);
+	pmap_ptc_e_count2 = res.pal_result[1];
 	pmap_ptc_e_stride1 = res.pal_result[2] >> 32;
-	pmap_ptc_e_stride2 = res.pal_result[2] & ((1L<<32) - 1);
+	pmap_ptc_e_stride2 = res.pal_result[2];
 	if (bootverbose)
-		printf("ptc.e base=0x%lx, count1=%ld, count2=%ld, "
-		       "stride1=0x%lx, stride2=0x%lx\n",
+		printf("ptc.e base=0x%lx, count1=%u, count2=%u, "
+		       "stride1=0x%x, stride2=0x%x\n",
 		       pmap_ptc_e_base,
 		       pmap_ptc_e_count1,
 		       pmap_ptc_e_count2,



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