Changeset e5ecc02 in mainline


Ignore:
Timestamp:
2006-09-14T13:07:32Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
06e1e95
Parents:
775df25
Message:

When creating TLB mapping for the sparc64 kernel, enable CV (cacheable virtually) bit.
Also install locked mappings only in context 0.

Location:
kernel/arch/sparc64
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/trap/mmu.h

    r775df25 re5ecc02  
    8686        bz 0f                                           ! page address is zero
    8787
    88         or %g3, (TTE_CP|TTE_P|TTE_W), %g2               ! 8K pages are the default (encoded as 0)
     88        or %g3, (TTE_CV|TTE_CP|TTE_P|TTE_W), %g2        ! 8K pages are the default (encoded as 0)
    8989        mov 1, %g3
    9090        sllx %g3, TTE_V_SHIFT, %g3
  • kernel/arch/sparc64/src/start.S

    r775df25 re5ecc02  
    115115
    116116#define SET_TLB_DATA(r1, r2, imm) \
    117         set TTE_L | TTE_CP | TTE_P | TTE_W | LMA | imm, %r1; \
     117        set TTE_CV | TTE_CP | TTE_P | LMA | imm, %r1; \
    118118        set PAGESIZE_4M, %r2; \
    119119        sllx %r2, TTE_SIZE_SHIFT, %r2; \
     
    124124       
    125125        ! write DTLB data and install the kernel mapping
    126         SET_TLB_DATA(g1, g2, 0)                 ! use non-global mapping
     126        SET_TLB_DATA(g1, g2, TTE_L | TTE_W)     ! use non-global mapping
    127127        stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG           
    128128        membar #Sync
     
    141141
    142142        ! write DTLB data and install the kernel mapping in context 1
    143         SET_TLB_DATA(g1, g2, 0)                 ! use non-global mapping
     143        SET_TLB_DATA(g1, g2, TTE_W)                     ! use non-global mapping
    144144        stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG           
    145145        membar #Sync
     
    197197
    198198        ! write ITLB data and install the permanent kernel mapping in context 0
    199         SET_TLB_DATA(g1, g2, 0)                 ! use non-global mapping
     199        SET_TLB_DATA(g1, g2, TTE_L)             ! use non-global mapping
    200200        stxa %g1, [%g0] ASI_ITLB_DATA_IN_REG           
    201201        flush %g5
Note: See TracChangeset for help on using the changeset viewer.