Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jun 2011 14:17:16 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r222564 - projects/pseries/powerpc/aim
Message-ID:  <201106011417.p51EHGsJ073398@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Wed Jun  1 14:17:16 2011
New Revision: 222564
URL: http://svn.freebsd.org/changeset/base/222564

Log:
  Regularize MSR setting by removing spurious isync()s (mtmsr() does an isync
  already) and by explicitly setting the first thread's MSR to PSL_KERNSET
  instead of a modification of Open Firmware's MSR.

Modified:
  projects/pseries/powerpc/aim/interrupt.c
  projects/pseries/powerpc/aim/machdep.c
  projects/pseries/powerpc/aim/mmu_oea64.c
  projects/pseries/powerpc/aim/moea64_native.c
  projects/pseries/powerpc/aim/mp_cpudep.c

Modified: projects/pseries/powerpc/aim/interrupt.c
==============================================================================
--- projects/pseries/powerpc/aim/interrupt.c	Wed Jun  1 14:12:35 2011	(r222563)
+++ projects/pseries/powerpc/aim/interrupt.c	Wed Jun  1 14:17:16 2011	(r222564)
@@ -100,10 +100,8 @@ powerpc_interrupt(struct trapframe *fram
 	default:
 		/* Re-enable interrupts if applicable. */
 		ee = framep->srr1 & PSL_EE;
-		if (ee != 0) {
+		if (ee != 0)
 			mtmsr(mfmsr() | ee);
-			isync();
-		}
 		trap(framep);
 	}	        
 }

Modified: projects/pseries/powerpc/aim/machdep.c
==============================================================================
--- projects/pseries/powerpc/aim/machdep.c	Wed Jun  1 14:12:35 2011	(r222563)
+++ projects/pseries/powerpc/aim/machdep.c	Wed Jun  1 14:17:16 2011	(r222564)
@@ -374,7 +374,6 @@ powerpc_init(vm_offset_t startkernel, vm
 
 	msr = mfmsr();
 	mtmsr((msr & ~(PSL_IR | PSL_DR)) | PSL_RI);
-	isync();
 
 	/*
 	 * Measure the cacheline size using dcbz
@@ -509,7 +508,6 @@ powerpc_init(vm_offset_t startkernel, vm
 	 * Restore MSR
 	 */
 	mtmsr(msr);
-	isync();
 	
 	/* Warn if cachline size was not determined */
 	if (cacheline_warn == 1) {
@@ -533,8 +531,7 @@ powerpc_init(vm_offset_t startkernel, vm
 		pmap_mmu_install(MMU_TYPE_OEA, BUS_PROBE_GENERIC);
 
 	pmap_bootstrap(startkernel, endkernel);
-	mtmsr(mfmsr() | PSL_IR|PSL_DR|PSL_ME|PSL_RI);
-	isync();
+	mtmsr(PSL_KERNSET & ~PSL_EE);
 
 	/*
 	 * Initialize params/tunables that are derived from memsize

Modified: projects/pseries/powerpc/aim/mmu_oea64.c
==============================================================================
--- projects/pseries/powerpc/aim/mmu_oea64.c	Wed Jun  1 14:12:35 2011	(r222563)
+++ projects/pseries/powerpc/aim/mmu_oea64.c	Wed Jun  1 14:17:16 2011	(r222564)
@@ -162,8 +162,8 @@ __FBSDID("$FreeBSD$");
 void moea64_release_vsid(uint64_t vsid);
 uintptr_t moea64_get_unique_vsid(void); 
 
-#define DISABLE_TRANS(msr)	msr = mfmsr(); mtmsr(msr & ~PSL_DR); isync()
-#define ENABLE_TRANS(msr)	mtmsr(msr); isync()
+#define DISABLE_TRANS(msr)	msr = mfmsr(); mtmsr(msr & ~PSL_DR)
+#define ENABLE_TRANS(msr)	mtmsr(msr)
 
 #define	VSID_MAKE(sr, hash)	((sr) | (((hash) & 0xfffff) << 4))
 #define	VSID_TO_HASH(vsid)	(((vsid) >> 4) & 0xfffff)
@@ -877,7 +877,7 @@ moea64_late_bootstrap(mmu_t mmup, vm_off
 	 * Initialize MMU and remap early physical mappings
 	 */
 	MMU_CPU_BOOTSTRAP(mmup,0);
-	mtmsr(mfmsr() | PSL_DR | PSL_IR); isync();
+	mtmsr(mfmsr() | PSL_DR | PSL_IR);
 	pmap_bootstrapped++;
 	bs_remap_earlyboot();
 

Modified: projects/pseries/powerpc/aim/moea64_native.c
==============================================================================
--- projects/pseries/powerpc/aim/moea64_native.c	Wed Jun  1 14:12:35 2011	(r222563)
+++ projects/pseries/powerpc/aim/moea64_native.c	Wed Jun  1 14:17:16 2011	(r222564)
@@ -185,8 +185,8 @@ TLBIE(uint64_t vpn) {
 	mtx_unlock_spin(&tlbie_mutex);
 }
 
-#define DISABLE_TRANS(msr)	msr = mfmsr(); mtmsr(msr & ~PSL_DR); isync()
-#define ENABLE_TRANS(msr)	mtmsr(msr); isync()
+#define DISABLE_TRANS(msr)	msr = mfmsr(); mtmsr(msr & ~PSL_DR)
+#define ENABLE_TRANS(msr)	mtmsr(msr)
 
 /*
  * PTEG data.
@@ -344,7 +344,7 @@ moea64_cpu_bootstrap_native(mmu_t mmup, 
 	 * Initialize segment registers and MMU
 	 */
 
-	mtmsr(mfmsr() & ~PSL_DR & ~PSL_IR); isync();
+	mtmsr(mfmsr() & ~PSL_DR & ~PSL_IR);
 
 	/*
 	 * Install kernel SLB entries

Modified: projects/pseries/powerpc/aim/mp_cpudep.c
==============================================================================
--- projects/pseries/powerpc/aim/mp_cpudep.c	Wed Jun  1 14:12:35 2011	(r222563)
+++ projects/pseries/powerpc/aim/mp_cpudep.c	Wed Jun  1 14:17:16 2011	(r222564)
@@ -87,7 +87,6 @@ cpudep_ap_bootstrap(void)
 
 	msr = PSL_KERNSET & ~PSL_EE;
 	mtmsr(msr);
-	isync();
 
 	pcpup->pc_curthread = pcpup->pc_idlethread;
 	pcpup->pc_curpcb = pcpup->pc_curthread->td_pcb;



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