Index: sys/arch/sparc64/sparc64/pmap.c =================================================================== RCS file: /cvsroot/src/sys/arch/sparc64/sparc64/pmap.c,v retrieving revision 1.292 diff -u -r1.292 pmap.c --- sys/arch/sparc64/sparc64/pmap.c 4 Nov 2014 18:11:42 -0000 1.292 +++ sys/arch/sparc64/sparc64/pmap.c 4 Apr 2015 08:19:53 -0000 @@ -535,14 +535,19 @@ PGSZ_4M, /* sz */ kernel_tlbs[i].te_pa, /* pa */ 1, /* priv */ - 1, /* write */ + 0, /* write */ 1, /* cache */ 1, /* aliased */ 1, /* valid */ 0 /* ie */); tp[i].data |= TLB_L | TLB_CV; - if (CPU_ISSUN4V) - tp[i].data |= SUN4V_TLB_X; + + /* Assuming that the last tlb slot entry is the only data slot */ + if (i == kernel_tlb_slots-1) + tp[i].data |= TLB_W; + else + if (CPU_ISSUN4V) + tp[i].data |= SUN4V_TLB_X; DPRINTF(PDB_BOOT1, ("xtlb[%d]: Tag: %" PRIx64 " Data: %" PRIx64 "\n", i, tp[i].tag, tp[i].data));