Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1867 → Rev 1868

/trunk/kernel/generic/include/mm/as.h
62,8 → 62,6
#define USER_ADDRESS_SPACE_START USER_ADDRESS_SPACE_START_ARCH
#define USER_ADDRESS_SPACE_END USER_ADDRESS_SPACE_END_ARCH
 
#define IS_KA(addr) ((addr)>=KERNEL_ADDRESS_SPACE_START && (addr)<=KERNEL_ADDRESS_SPACE_END)
 
#define USTACK_ADDRESS USTACK_ADDRESS_ARCH
 
#define FLAG_AS_KERNEL (1 << 0) /**< Kernel address space. */
/trunk/kernel/arch/sparc64/src/mm/tlb.c
103,7 → 103,7
data.cv = cacheable;
data.p = true;
data.w = true;
data.g = true;
data.g = false;
 
dtlb_data_in_write(data.value);
}
/trunk/kernel/arch/sparc64/src/start.S
125,9 → 125,26
or %r1, %r2, %r1;
! write DTLB data and install the kernel mapping
SET_TLB_DATA(g1, g2, TTE_G)
SET_TLB_DATA(g1, g2, 0) ! use non-global mapping
stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG
membar #Sync
 
/*
* Because we cannot use global mappings (because we want to
* have separate 64-bit address spaces for both the kernel
* and the userspace), we prepare the identity mapping also in
* context 1. This step is required by the
* code installing the ITLB mapping.
*/
! write DTLB tag of context 1 (i.e. MEM_CONTEXT_TEMP)
SET_TLB_TAG(g1, MEM_CONTEXT_TEMP)
stxa %g1, [VA_DMMU_TAG_ACCESS] %asi
membar #Sync
 
! write DTLB data and install the kernel mapping in context 1
SET_TLB_DATA(g1, g2, 0) ! use non-global mapping
stxa %g1, [%g0] ASI_DTLB_DATA_IN_REG
membar #Sync
/*
* Now is time to take over the IMMU.