/branches/arm/kernel/arch/arm32/src/asm.S |
---|
32,7 → 32,6 |
.global memsetb |
memsetb: |
b _memsetb |
nop |
.global memcpy |
/branches/arm/kernel/arch/arm32/src/mm/frame.c |
---|
33,24 → 33,21 |
*/ |
#include <mm/frame.h> |
#include <arch/mm/frame.h> |
#include <config.h> |
#include "../aux_print/printf.h" |
__address last_frame = 0; |
uintptr_t last_frame = 0; |
/** Create memory zones. */ |
void frame_arch_init(void) |
{ |
aux_printf("frame_arch_init ... begin\n"); |
// all memory as one zone |
zone_create(0, ADDR2PFN(config.memory_size), 11, 0); |
zone_create(0, ADDR2PFN(config.memory_size), 2, 0); |
last_frame = config.memory_size; |
/* Blacklist interrupt vector + Kernels from boot loader page table */ |
frame_mark_unavailable(0, 10); |
aux_printf("frame_arch_init ... end\n"); |
// blacklist interrupt vector |
frame_mark_unavailable(0, 1); |
} |
/** @} |
/branches/arm/kernel/arch/arm32/src/mm/page.c |
---|
35,6 → 35,7 |
#include <arch/mm/page.h> |
#include <genarch/mm/page_pt.h> |
#include <mm/page.h> |
#include <mm/tlb.h> |
#include <align.h> |
#include <config.h> |
#include "../aux_print/printf.h" |
52,11 → 53,17 |
for (cur = 0; cur < last_frame; cur += FRAME_SIZE) { |
page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags); |
} |
//SET_PTL0_ADDRESS_ARCH(AS_KERNEL->genarch.page_table); |
// TODO: move to the kernel space |
page_mapping_insert(AS_KERNEL, 0x00000000, 0x00000000, flags); |
page_mapping_insert(AS_KERNEL, 0x10000000, 0x10000000, flags); |
page_mapping_insert(AS_KERNEL, 0x15000000, 0x15000000, flags); |
page_mapping_insert(AS_KERNEL, 0x16000000, 0x16000000, flags); |
tlb_invalidate_all(); |
SET_PTL0_ADDRESS_ARCH(AS_KERNEL->genarch.page_table); |
// note for Alf: kernel part of page table is copied in generic/mm/as_pt.c/ptl0_create |
// TODO: register fault routine |
} |