Subversion Repositories HelenOS

Rev

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

Rev 1988 Rev 2048
Line 62... Line 62...
62
             */
62
             */
63
 
63
 
64
            confdata = ADDR2PFN(start);
64
            confdata = ADDR2PFN(start);
65
            if (confdata == ADDR2PFN(KA2PA(PFN2ADDR(0))))
65
            if (confdata == ADDR2PFN(KA2PA(PFN2ADDR(0))))
66
                confdata = ADDR2PFN(KA2PA(PFN2ADDR(2)));
66
                confdata = ADDR2PFN(KA2PA(PFN2ADDR(2)));
-
 
67
            zone_create(ADDR2PFN(start),
67
            zone_create(ADDR2PFN(start), SIZE2FRAMES(ALIGN_DOWN(size, FRAME_SIZE)), confdata, 0);
68
                SIZE2FRAMES(ALIGN_DOWN(size, FRAME_SIZE)),
-
 
69
                confdata, 0);
68
            last_frame = max(last_frame, start + ALIGN_UP(size, FRAME_SIZE));
70
            last_frame = max(last_frame, start + ALIGN_UP(size,
-
 
71
                FRAME_SIZE));
69
        }
72
        }
70
 
73
 
71
        /*
74
        /*
72
         * On sparc64, physical memory can start on a non-zero address.
75
         * On sparc64, physical memory can start on a non-zero address.
73
         * The generic frame_init() only marks PFN 0 as not free, so we
76
         * The generic frame_init() only marks PFN 0 as not free, so we
74
         * must mark the physically first frame not free explicitly here,
77
         * must mark the physically first frame not free explicitly
75
         * no matter what is its address.
78
         * here, no matter what is its address.
76
         */
79
         */
77
        frame_mark_unavailable(ADDR2PFN(KA2PA(PFN2ADDR(0))), 1);
80
        frame_mark_unavailable(ADDR2PFN(KA2PA(PFN2ADDR(0))), 1);
78
    }
81
    }
79
   
82
   
80
}
83
}