Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1981 → Rev 1982

/trunk/kernel/arch/sparc64/src/sparc64.c
58,7 → 58,7
uint32_t i;
 
for (i = 0; i < bootinfo.taskmap.count; i++) {
init.tasks[i].addr = PA2KA(bootinfo.taskmap.tasks[i].addr);
init.tasks[i].addr = (uintptr_t) bootinfo.taskmap.tasks[i].addr;
init.tasks[i].size = bootinfo.taskmap.tasks[i].size;
}
/trunk/kernel/arch/sparc64/src/mm/page.c
135,9 → 135,9
* Thus, the physical address space will not be wasted by holes created
* by frame_alloc().
*/
ASSERT(last_frame);
uintptr_t virtaddr = ALIGN_UP(last_frame, 1<<(order + FRAME_WIDTH));
last_frame = ALIGN_UP(virtaddr + size, 1<<(order + FRAME_WIDTH));
ASSERT(PA2KA(last_frame));
uintptr_t virtaddr = ALIGN_UP(PA2KA(last_frame), 1 << (order + FRAME_WIDTH));
last_frame = ALIGN_UP(KA2PA(virtaddr) + size, 1 << (order + FRAME_WIDTH));
for (i = 0; i < sizemap[order].count; i++) {
/*
/trunk/kernel/arch/sparc64/src/start.S
67,25 → 67,10
and %o0, %l0, %l7 ! l7 <= bootstrap processor?
andn %o0, %l0, %l6 ! l6 <= start of physical memory
 
sethi %hi(physmem_base), %l5
stx %l6, [%l5 + %lo(physmem_base)]
 
/*
* Get bits 40:13 of physmem_base.
*/
sethi %hi(mask_40_13), %l4
sethi %hi(physmem_base_40_13), %l3
ldx [%l4 + %lo(mask_40_13)], %l4
and %l6, %l4, %l5 ! l5 <= physmem_base[40:13]
stx %l5, [%l3 + %lo(physmem_base_40_13)]
 
/*
* Prepare kernel 8K TLB data template.
*/
sethi %hi(kernel_8k_tlb_data_template), %l4
ldx [%l4 + %lo(kernel_8k_tlb_data_template)], %l3
or %l3, %l5, %l3
stx %l3, [%l4 + %lo(kernel_8k_tlb_data_template)]
! Get bits 40:13 of physmem_base.
srlx %l6, 13, %l5
sllx %l5, 13 + (63 - 40), %l5
srlx %l5, 63 - 40, %l5 ! l5 <= physmem_base[40:13]
/*
* Setup basic runtime environment.
244,6 → 229,22
nop
 
/*
* Save physmem_base for use by the mm subsystem.
* %l6 contains starting physical address
*/
sethi %hi(physmem_base), %l4
stx %l6, [%l4 + %lo(physmem_base)]
 
/*
* Precompute kernel 8K TLB data template.
* %l5 contains starting physical address bits [40:13]
*/
sethi %hi(kernel_8k_tlb_data_template), %l4
ldx [%l4 + %lo(kernel_8k_tlb_data_template)], %l3
or %l3, %l5, %l3
stx %l3, [%l4 + %lo(kernel_8k_tlb_data_template)]
 
/*
* So far, we have not touched the stack.
* It is a good idea to set the kernel stack to a known state now.
*/
340,20 → 341,11
physmem_base:
.quad 0
 
.global physmem_base_40_13
physmem_base_40_13: ! physmem_base & mask_40_13
.quad 0
 
.global mask_40_13
mask_40_13: ! constant with bits 40:13 set
.quad (((1 << 41) - 1) & ~((1 << 13) - 1))
 
/*
* This variable is used by the fast_data_MMU_miss trap handler.
* It is initialized to reflect the starting address of physical
* memory.
* In runtime, it is further modified to reflect the starting address of
* physical memory.
*/
.global kernel_8k_tlb_data_template
kernel_8k_tlb_data_template:
.quad ((1 << TTE_V_SHIFT) | TTE_CV | TTE_CP | TTE_P | TTE_W)
 
/trunk/boot/boot.config
16,7 → 16,7
@ "native" Native
! COMPILER (choice)
 
# Start AP processors
# Start AP processors by the loader
! [ARCH=sparc64] CONFIG_SMP (y/n)
 
# Debug bootloader
/trunk/boot/arch/sparc64/Makefile.inc
42,9 → 42,9
-rm arch/$(ARCH)/loader/image.boot
 
arch/$(ARCH)/loader/image.boot:
make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
$(MAKE) -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR) "DEFS=$(DEFS)"
 
clean: generic_clean
make -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
$(MAKE) -C arch/$(ARCH)/loader clean COMPILER=$(COMPILER) KERNELDIR=../../../$(KERNELDIR) USPACEDIR=../../../$(USPACEDIR)
-rm -fr $(TMP)
-rm -f $(BASE)/image.iso
/trunk/boot/arch/sparc64/loader/Makefile
98,4 → 98,4
$(CC) $(DEFS) $(CFLAGS) -c $< -o $@
 
disasm: image.boot
$(OBJDUMP) -d image.boot > boot.disasm
$(OBJDUMP) -d image.boot > boot.disasm