summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/sparc64/include/vmparam.h3
-rw-r--r--sys/sparc64/sparc64/pmap.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/sys/sparc64/include/vmparam.h b/sys/sparc64/include/vmparam.h
index 3aff8a0254bf..0e7dae577721 100644
--- a/sys/sparc64/include/vmparam.h
+++ b/sys/sparc64/include/vmparam.h
@@ -159,6 +159,9 @@
#define VM_MAX_KERNEL_ADDRESS (VM_MIN_KERNEL_ADDRESS + KVA_RANGE - PAGE_SIZE)
#define KERNBASE (VM_MIN_KERNEL_ADDRESS)
+#define VM_MIN_PROM_ADDRESS (0xf0000000)
+#define VM_MAX_PROM_ADDRESS (0xffffe000)
+
/*
* Initial pagein size of beginning of executable file.
*/
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index 171df8f05cbf..22a7cb1b2ac5 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -359,7 +359,8 @@ pmap_bootstrap(vm_offset_t ekva)
"translation: start=%#lx size=%#lx tte=%#lx",
translations[i].om_start, translations[i].om_size,
translations[i].om_tte);
- if (translations[i].om_start < 0xf0000000) /* XXX!!! */
+ if (translations[i].om_start < VM_MIN_PROM_ADDRESS ||
+ translations[i].om_start > VM_MAX_PROM_ADDRESS)
continue;
for (off = 0; off < translations[i].om_size;
off += PAGE_SIZE) {
@@ -418,8 +419,7 @@ pmap_map_tsb(void)
TD_P | TD_W;
stxa(AA_DMMU_TAR, ASI_DMMU, TLB_TAR_VA(va) |
TLB_TAR_CTX(TLB_CTX_KERNEL));
- stxa(0, ASI_DTLB_DATA_IN_REG, data);
- membar(Sync);
+ stxa_sync(0, ASI_DTLB_DATA_IN_REG, data);
}
/*