diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/sfmmu/ml/sfmmu_asm.s | 15 | ||||
-rw-r--r-- | usr/src/uts/sun4u/opl/Makefile.opl | 1 |
2 files changed, 11 insertions, 5 deletions
diff --git a/usr/src/uts/sfmmu/ml/sfmmu_asm.s b/usr/src/uts/sfmmu/ml/sfmmu_asm.s index 4ed8cd2e29..ae27cf92ef 100644 --- a/usr/src/uts/sfmmu/ml/sfmmu_asm.s +++ b/usr/src/uts/sfmmu/ml/sfmmu_asm.s @@ -2846,14 +2846,19 @@ tsb_user: cmp %g7, TTE4M bge,pn %icc, tsb_user4m nop -#else +#else /* sun4v */ cmp %g7, TTESZ_VALID | TTE4M be,pn %icc, tsb_user4m srlx %g3, TTE_SZ2_SHFT, %g7 andcc %g7, TTE_SZ2_BITS, %g7 ! check 32/256MB +#ifdef ITLB_32M_256M_SUPPORT + bnz,pn %icc, tsb_user4m + nop +#else /* ITLB_32M_256M_SUPPORT */ bnz,a,pn %icc, tsb_user_pn_synth - cmp %g5, FAST_IMMU_MISS_TT -#endif + cmp %g5, FAST_IMMU_MISS_TT +#endif /* ITLB_32M_256M_SUPPORT */ +#endif /* sun4v */ tsb_user8k: ldn [%g6 + TSBMISS_TSBPTR], %g1 ! g1 = first TSB ptr @@ -2913,7 +2918,7 @@ tsb_user4m: ! trapstat wants TTE in %g5 retry -#ifndef sun4v +#if !defined(sun4v) && !defined(ITLB_32M_256M_SUPPORT) /* * Panther ITLB synthesis. * The Panther 32M and 256M ITLB code simulates these two large page @@ -2966,7 +2971,7 @@ tsb_user_itlb_synth: SET_TTE4M_PN(%g5, %g7) /* add TTE4M pagesize to TTE */ ITLB_STUFF(%g5, %g1, %g2, %g3, %g4) retry -#endif +#endif /* sun4v && ITLB_32M_256M_SUPPORT */ tsb_kernel: #ifdef sun4v diff --git a/usr/src/uts/sun4u/opl/Makefile.opl b/usr/src/uts/sun4u/opl/Makefile.opl index a399e38681..fa767f41a6 100644 --- a/usr/src/uts/sun4u/opl/Makefile.opl +++ b/usr/src/uts/sun4u/opl/Makefile.opl @@ -146,6 +146,7 @@ MACHINE_DEFS += -D_OPL MACHINE_DEFS += -DOLYMPUS_SHARED_FTLB MACHINE_DEFS += -D_CMP_NO_ERROR_STEERING -D_HW_MEMSCRUB_SUPPORT MACHINE_DEFS += -DDO_CORELEVEL_LOADBAL +MACHINE_DEFS += -DITLB_32M_256M_SUPPORT # # OLYMPUS C cross-call erratas. # - revision A can only deliver one xcall at a time. |