Author: jhibbits
Date: Tue Apr 30 03:45:46 2019
New Revision: 346941
URL: https://svnweb.freebsd.org/changeset/base/346941

Log:
  powerpc: Stop pretending we run on e500v1 cores
  
  Unconditional writing to MAS7, which doesn't exist on the e500v1 core, in a
  TLB miss handler has been in the code for several years now.  Since this has
  gone unnoticed for so long, it's easily concluded that e500v1 is not in use
  with FreeBSD.  Simplify the code path a bit, by unconditionally zeroing MAS7
  instead of calling a subroutine to do it.

Modified:
  head/sys/powerpc/booke/locore.S
  head/sys/powerpc/booke/trap_subr.S

Modified: head/sys/powerpc/booke/locore.S
==============================================================================
--- head/sys/powerpc/booke/locore.S     Tue Apr 30 01:25:02 2019        
(r346940)
+++ head/sys/powerpc/booke/locore.S     Tue Apr 30 03:45:46 2019        
(r346941)
@@ -250,7 +250,8 @@ __start:
        ori     %r4, %r4, (MAS3_SX | MAS3_SW | MAS3_SR)@l
        mtspr   SPR_MAS3, %r4           /* Set RPN and protection */
        isync
-       bl      zero_mas7
+       li      %r4, 0
+       mtspr   SPR_MAS7, %r4
        bl      zero_mas8
        isync
        tlbwe
@@ -505,7 +506,8 @@ bp_kernload:
        ori     %r3, %r3, (MAS3_SX | MAS3_SW | MAS3_SR)@l
        mtspr   SPR_MAS3, %r3
        isync
-       bl      zero_mas7
+       li      %r4, 0
+       mtspr   SPR_MAS7, %r4
        bl      zero_mas8
        isync
        tlbwe
@@ -696,7 +698,8 @@ tlb1_temp_mapping_as1:
        mtspr   SPR_MAS1, %r5
        isync
        mflr    %r3
-       bl      zero_mas7
+       li      %r4, 0
+       mtspr   SPR_MAS7, %r4
        bl      zero_mas8
        mtlr    %r3
        isync
@@ -736,20 +739,8 @@ tlb1_inval_all_but_current:
        blr
 
 /*
- * MAS7 and MAS8 conditional zeroing.
+ * MAS8 conditional zeroing.
  */
-.globl zero_mas7
-zero_mas7:
-       mfpvr   %r20
-       rlwinm  %r20, %r20, 16, 16, 31
-       cmpli   0, 0, %r20, FSL_E500v1
-       beq     1f
-
-       li      %r20, 0
-       mtspr   SPR_MAS7, %r20
-1:
-       blr
-
 .globl zero_mas8
 zero_mas8:
        mfpvr   %r20

Modified: head/sys/powerpc/booke/trap_subr.S
==============================================================================
--- head/sys/powerpc/booke/trap_subr.S  Tue Apr 30 01:25:02 2019        
(r346940)
+++ head/sys/powerpc/booke/trap_subr.S  Tue Apr 30 03:45:46 2019        
(r346941)
@@ -765,7 +765,8 @@ search_failed:
        mtspr   SPR_MAS2, %r27
        mtspr   SPR_MAS3, %r23
 
-       bl      zero_mas7
+       li      %r23, 0
+       mtspr   SPR_MAS7, %r23
        bl      zero_mas8
 
        isync
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to