Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/powerpc/oea Tidy up initialization of the kernel SR...



details:   https://anonhg.NetBSD.org/src/rev/8416890a228e
branches:  trunk
changeset: 953492:8416890a228e
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Thu Mar 11 04:43:47 2021 +0000

description:
Tidy up initialization of the kernel SRs just a bit.

diffstat:

 sys/arch/powerpc/oea/pmap.c |  47 ++++++++++++++++++--------------------------
 1 files changed, 19 insertions(+), 28 deletions(-)

diffs (109 lines):

diff -r 630e328bc836 -r 8416890a228e sys/arch/powerpc/oea/pmap.c
--- a/sys/arch/powerpc/oea/pmap.c       Thu Mar 11 02:30:47 2021 +0000
+++ b/sys/arch/powerpc/oea/pmap.c       Thu Mar 11 04:43:47 2021 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.102 2021/03/10 18:29:07 thorpej Exp $       */
+/*     $NetBSD: pmap.c,v 1.103 2021/03/11 04:43:47 thorpej Exp $       */
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -63,7 +63,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.102 2021/03/10 18:29:07 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.103 2021/03/11 04:43:47 thorpej Exp $");
 
 #define        PMAP_NOOPNAMES
 
@@ -3378,17 +3378,10 @@
        pmap_vsid_bitmap[0] |= 1;
 
        /*
-        * Initialize kernel pmap and hardware.
+        * Initialize kernel pmap.
         */
-
-/* PMAP_OEA64_BRIDGE does support these instructions */
-#if defined (PMAP_OEA) || defined (PMAP_OEA64_BRIDGE)
+#if defined(PMAP_OEA) || defined(PMAP_OEA64_BRIDGE)
        for (i = 0; i < 16; i++) {
-#if defined(PPC_OEA601)
-           /* XXX wedges for segment register 0xf , so set later */
-           if ((iosrtable[i] & SR601_T) && ((MFPVR() >> 16) == MPC601))
-                   continue;
-#endif
                pmap_kernel()->pm_sr[i] = KERNELN_SEGMENT(i)|SR_PRKEY;
        }
        pmap_kernel()->pm_vsid = KERNEL_VSIDBITS;
@@ -3398,13 +3391,16 @@
        pmap_kernel()->pm_sr[KERNEL2_SR] = KERNEL2_SEGMENT|SR_SUKEY|SR_PRKEY;
 #endif
 #endif /* PMAP_OEA || PMAP_OEA64_BRIDGE */
-#if defined (PMAP_OEA)
-       for (i = 0; i < 16; i++) {
-               if (iosrtable[i] & SR601_T) {
-                       pmap_kernel()->pm_sr[i] = iosrtable[i];
+
+#if defined(PMAP_OEA) && defined(PPC_OEA601)
+       if ((MFPVR() >> 16) == MPC601)) {
+               for (i = 0; i < 16; i++) {
+                       if (iosrtable[i] & SR601_T) {
+                               pmap_kernel()->pm_sr[i] = iosrtable[i];
+                       }
                }
        }
-#endif
+#endif /* PMAP_OEA && PPC_OEA601 */
 
 #ifdef ALTIVEC
        pmap_use_altivec = cpu_altivec;
@@ -3500,9 +3496,9 @@
                        pmap_pte_create(&pt, pm, va, pa | PTE_M|PTE_BW);
                        pmap_pte_insert(ptegidx, &pt);
                }
-#endif
+#endif /* PMAP_NEED_FULL_MAPKERNEL */
        }
-#endif
+#endif /* PMAP_NEED_MAPKERNEL */
 }
 
 /*
@@ -3512,23 +3508,18 @@
 void
 pmap_bootstrap2(void)
 {
-/* PMAP_OEA64_BRIDGE does support these instructions */
-#if defined (PMAP_OEA) || defined (PMAP_OEA64_BRIDGE)
+#if defined(PMAP_OEA) || defined(PMAP_OEA64_BRIDGE)
        for (int i = 0; i < 16; i++) {
-#if defined(PPC_OEA601)
-               /* XXX wedges for segment register 0xf , so set later */
-               if ((iosrtable[i] & SR601_T) && ((MFPVR() >> 16) == MPC601))
-                       continue;
-#endif /* PPC_OEA601 */
                __asm volatile("mtsrin %0,%1"
                        :: "r"(pmap_kernel()->pm_sr[i]),
                           "r"(i << ADDR_SR_SHFT));
        }
 #endif /* PMAP_OEA || PMAP_OEA64_BRIDGE */
-#if defined (PMAP_OEA)
+
+#if defined(PMAP_OEA)
         __asm volatile("sync; mtsdr1 %0; isync"
                :: "r"((uintptr_t)pmap_pteg_table | (pmap_pteg_mask >> 10)));
-#elif defined (PMAP_OEA64) || defined (PMAP_OEA64_BRIDGE)
+#elif defined(PMAP_OEA64) || defined(PMAP_OEA64_BRIDGE)
        __asm __volatile("sync; mtsdr1 %0; isync"
                :: "r"((uintptr_t)pmap_pteg_table |
                       (32 - __builtin_clz(pmap_pteg_mask >> 11))));
@@ -3536,7 +3527,7 @@
        tlbia();
 
 #if defined(PMAPDEBUG)
-       if ( pmapdebug )
+       if (pmapdebug)
            pmap_print_mmuregs();
 #endif
 }



Home | Main Index | Thread Index | Old Index