Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2255 → Rev 2256

/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
}