Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2242 → Rev 2243

/branches/arm/kernel/arch/arm32/include/types.h
68,6 → 68,9
typedef int32_t inr_t;
typedef int32_t devno_t;
 
typedef uint32_t __address;
 
 
/** Page table entry.
*
* We have different structs for level 0 and level 1 page table entries.
/branches/arm/kernel/arch/arm32/include/mm/frame.h
41,6 → 41,10
#ifdef KERNEL
#ifndef __ASM__
 
#include <arch/types.h>
 
extern __address last_frame;
 
extern void frame_arch_init(void);
 
#endif /* __ASM__ */
/branches/arm/kernel/arch/arm32/src/mm/frame.c
36,16 → 36,20
#include <config.h>
#include "../aux_print/printf.h"
 
__address 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);
/*
* Blacklist interrupt vector + Kernels from boot loader page table
*/
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");
}
 
/branches/arm/kernel/arch/arm32/src/mm/page.c
47,13 → 47,17
page_mapping_operations = &pt_mapping_operations;
 
flags = PAGE_CACHEABLE;
const unsigned maxmem = ALIGN_DOWN(config.memory_size, FRAME_SIZE);
 
for (cur = 0; cur < maxmem; cur += FRAME_SIZE) {
//page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags);
}
//TODO set page fault routines
// no problem no ... kernel doesn't do page faults
/* PA2KA(identity) mapping for all frames until last_frame */
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);
 
// note for Alf: kernel part of page table is copied in generic/mm/as_pt.c/ptl0_create
 
// TODO: register fault routine
}
 
/** Map device into kernel space. */