Subversion Repositories HelenOS

Rev

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

Rev 1793 Rev 1903
Line 51... Line 51...
51
void frame_arch_init(void)
51
void frame_arch_init(void)
52
{
52
{
53
    int i;
53
    int i;
54
    pfn_t confdata;
54
    pfn_t confdata;
55
 
55
 
-
 
56
    if (config.cpu_active == 1) {
56
    for (i = 0; i < bootinfo.memmap.count; i++) {
57
        for (i = 0; i < bootinfo.memmap.count; i++) {
57
        uintptr_t start = bootinfo.memmap.zones[i].start;
58
            uintptr_t start = bootinfo.memmap.zones[i].start;
58
        size_t size = bootinfo.memmap.zones[i].size;
59
            size_t size = bootinfo.memmap.zones[i].size;
59
 
60
 
60
        /*
61
            /*
61
         * The memmap is created by HelenOS boot loader.
62
             * The memmap is created by HelenOS boot loader.
62
         * It already contains no holes.
63
             * It already contains no holes.
63
         */
64
             */
64
   
65
   
65
        confdata = ADDR2PFN(start);
66
            confdata = ADDR2PFN(start);
66
        if (confdata == 0)
67
            if (confdata == 0)
67
            confdata = 2;
68
                confdata = 2;
68
        zone_create(ADDR2PFN(start), SIZE2FRAMES(ALIGN_DOWN(size, FRAME_SIZE)), confdata, 0);
69
            zone_create(ADDR2PFN(start), SIZE2FRAMES(ALIGN_DOWN(size, FRAME_SIZE)), confdata, 0);
69
       
70
       
70
        last_frame = max(last_frame, start + ALIGN_UP(size, FRAME_SIZE));
71
            last_frame = max(last_frame, start + ALIGN_UP(size, FRAME_SIZE));
-
 
72
        }
71
    }
73
    }
72
 
74
 
73
}
75
}
74
 
76
 
75
/** @}
77
/** @}