Author: nwhitehorn
Date: Wed Feb 21 15:15:31 2018
New Revision: 329720
URL: https://svnweb.freebsd.org/changeset/base/329720

Log:
  Add definitions for the new Radix MMU mode on POWER9+ CPUs.

Modified:
  head/sys/powerpc/include/pte.h

Modified: head/sys/powerpc/include/pte.h
==============================================================================
--- head/sys/powerpc/include/pte.h      Wed Feb 21 15:12:14 2018        
(r329719)
+++ head/sys/powerpc/include/pte.h      Wed Feb 21 15:15:31 2018        
(r329720)
@@ -125,6 +125,37 @@ struct lpteg {
 #define        LPTE_RW         LPTE_BW
 #define        LPTE_RO         LPTE_BR
 
+/* POWER ISA 3.0 Radix Table Definitions */
+#define        RPTE_VALID              0x8000000000000000ULL
+#define        RPTE_LEAF               0x4000000000000000ULL /* is a PTE: 
always 1 */
+#define        RPTE_SW0                0x2000000000000000ULL
+#define        RPTE_RPN_MASK           0x00FFFFFFFFFFF000ULL
+#define        RPTE_RPN_SHIFT          12
+#define        RPTE_SW1                0x0000000000000800ULL
+#define        RPTE_SW2                0x0000000000000400ULL
+#define        RPTE_SW3                0x0000000000000200ULL
+#define        RPTE_R                  0x0000000000000100ULL
+#define        RPTE_C                  0x0000000000000080ULL
+
+#define        RPTE_ATTR_MASK          0x0000000000000030ULL
+#define        RPTE_ATTR_MEM           0x0000000000000000ULL /* PTE M */
+#define        RPTE_ATTR_SAO           0x0000000000000010ULL /* PTE WIM */
+#define        RPTE_ATTR_GUARDEDIO     0x0000000000000020ULL /* PTE IMG */
+#define        RPTE_ATTR_UNGUARDEDIO   0x0000000000000030ULL /* PTE IM */
+
+#define        RPTE_EAA_MASK           0x000000000000000FULL
+#define        RPTE_EAA_P              0x0000000000000008ULL /* Supervisor 
only */
+#define        RPTE_EAA_R              0x0000000000000004ULL /* Read allowed */
+#define        RPTE_EAA_W              0x0000000000000002ULL /* Write (+read) 
*/
+#define        RPTE_EAA_X              0x0000000000000001ULL /* Execute 
allowed */
+
+#define        RPDE_VALID              RPTE_VALID
+#define        RPDE_LEAF               RPTE_LEAF             /* is a PTE: 
always 0 */
+#define        RPDE_NLB_MASK           0x0FFFFFFFFFFFFF00ULL
+#define        RPDE_NLB_SHIFT          8
+#define        RPDE_NLS_MASK           0x000000000000001FULL
+
+
 #ifndef        LOCORE
 typedef        struct pte pte_t;
 typedef        struct lpte lpte_t;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to