Changeset d681c17 in mainline for kernel/arch/sparc64/src/start.S


Ignore:
Timestamp:
2006-09-05T14:52:11Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5035eeb7
Parents:
2def788
Message:

sparc64 work.

  • the syscall wrapper needs to use the "memory" clobber specifier to prevent over-optimization.
  • on sparc64, the user address space spans the whole 64-bit space and therefore the macro USER_ADDRESS_SPACE_SIZE_ARCH, as it was defined, overflows to 0
  • stop using USER_ADDRESS_SPACE_SIZE_ARCH and define MAX_HEAP_SIZE instead
  • in our situation when kernel and user address spaces are separate, the G (global) bit cannot be used (there is no point in it anymore)
  • add the DEBUG() macro to stdio.h; DEBUG() uses SYS_IO and is a good debugging tool for getting early userspace to work
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/start.S

    r2def788 rd681c17  
    126126       
    127127        ! write DTLB data and install the kernel mapping
    128         SET_TLB_DATA(g1, g2, TTE_G)
     128        SET_TLB_DATA(g1, g2, 0)                 ! use non-global mapping
     129        stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG           
     130        membar #Sync
     131
     132        /*
     133         * Because we cannot use global mappings (because we want to
     134         * have separate 64-bit address spaces for both the kernel
     135         * and the userspace), we prepare the identity mapping also in
     136         * context 1. This step is required by the
     137         * code installing the ITLB mapping.
     138         */
     139        ! write DTLB tag of context 1 (i.e. MEM_CONTEXT_TEMP)
     140        SET_TLB_TAG(g1, MEM_CONTEXT_TEMP)
     141        stxa %g1, [VA_DMMU_TAG_ACCESS] %asi                     
     142        membar #Sync
     143
     144        ! write DTLB data and install the kernel mapping in context 1
     145        SET_TLB_DATA(g1, g2, 0)                 ! use non-global mapping
    129146        stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG           
    130147        membar #Sync
Note: See TracChangeset for help on using the changeset viewer.