Subversion Repositories HelenOS-historic

Rev

Rev 247 | Rev 368 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 247 Rev 267
Line 28... Line 28...
28
 
28
 
29
#include <mm/frame.h>
29
#include <mm/frame.h>
30
#include <arch/mm/frame.h>
30
#include <arch/mm/frame.h>
31
#include <mm/vm.h>
31
#include <mm/vm.h>
32
#include <config.h>
32
#include <config.h>
-
 
33
#include <arch/boot/boot.h>
33
#include <arch/boot/memmap.h>
34
#include <arch/boot/memmap.h>
34
 
35
 
35
#include <print.h>
36
size_t hardcoded_unmapped_ktext_size = 0;
-
 
37
size_t hardcoded_unmapped_kdata_size = 0;
36
 
38
 
37
void frame_arch_init(void)
39
void frame_arch_init(void)
38
{
40
{
39
    __u8 i;
41
    __u8 i;
40
   
42
   
41
    if (config.cpu_active == 1) {
43
    if (config.cpu_active == 1) {
-
 
44
        /* Reserve the NULL frame */
42
        frame_not_free(0x0);
45
        frame_not_free(0x0);
43
 
46
       
-
 
47
        /* Reserve well-known memory regions */
44
        frame_region_not_free(0xa0000,0xff000);
48
        frame_region_not_free(0xa0000,0xff000);
45
        frame_region_not_free(0xfec00000,0xffffffff);
49
        frame_region_not_free(0xfec00000,0xffffffff);
46
       
50
       
47
        /* This is a nasty hack, which should be fixed soon */
51
        /* Reserve real mode bootstrap memory */
48
        frame_region_not_free(0x0, 0xfffff);
52
        frame_region_not_free(BOOTSTRAP_OFFSET, BOOTSTRAP_OFFSET + hardcoded_unmapped_ktext_size + hardcoded_unmapped_kdata_size);
49
       
53
       
50
        for (i=e820counter;i>0;i--) {
54
        for (i=e820counter;i>0;i--) {
51
            if (e820table[i-1].type!=MEMMAP_MEMORY_AVAILABLE) {
55
            if (e820table[i-1].type!=MEMMAP_MEMORY_AVAILABLE) {
52
                    frame_region_not_free(e820table[i-1].base_address, e820table[i-1].base_address+e820table[i-1].size);
56
                    frame_region_not_free(e820table[i-1].base_address, e820table[i-1].base_address+e820table[i-1].size);
53
                }
57
                }