summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/include/tlb.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/sparc64/include/tlb.h')
-rw-r--r--sys/sparc64/include/tlb.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/sys/sparc64/include/tlb.h b/sys/sparc64/include/tlb.h
index 6cffc1c..d68a0ad 100644
--- a/sys/sparc64/include/tlb.h
+++ b/sys/sparc64/include/tlb.h
@@ -29,11 +29,18 @@
#ifndef _MACHINE_TLB_H_
#define _MACHINE_TLB_H_
-#define TLB_DIRECT_MASK (((1UL << (64 - 38)) - 1) << 38)
-#define TLB_DIRECT_SHIFT (3)
-#define TLB_DIRECT_UNCACHEABLE_SHIFT (11)
-#define TLB_DIRECT_COLOR_SHIFT (10)
-#define TLB_DIRECT_UNCACHEABLE (1 << TLB_DIRECT_UNCACHEABLE_SHIFT)
+#define TLB_DIRECT_ADDRESS_BITS (43)
+#define TLB_DIRECT_PAGE_BITS (PAGE_SHIFT_4M)
+
+#define TLB_DIRECT_ADDRESS_MASK ((1UL << TLB_DIRECT_ADDRESS_BITS) - 1)
+#define TLB_DIRECT_PAGE_MASK ((1UL << TLB_DIRECT_PAGE_BITS) - 1)
+
+#define TLB_PHYS_TO_DIRECT(pa) \
+ ((pa) | VM_MIN_DIRECT_ADDRESS)
+#define TLB_DIRECT_TO_PHYS(va) \
+ ((va) & TLB_DIRECT_ADDRESS_MASK)
+#define TLB_DIRECT_TO_TTE_MASK \
+ (TD_V | TD_4M | (TLB_DIRECT_ADDRESS_MASK - TLB_DIRECT_PAGE_MASK))
#define TLB_DAR_SLOT_SHIFT (3)
#define TLB_DAR_SLOT(slot) ((slot) << TLB_DAR_SLOT_SHIFT)
OpenPOWER on IntegriCloud