Rev 625 | Rev 703 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 625 | Rev 693 | ||
|---|---|---|---|
| Line 48... | Line 48... | ||
| 48 | if (config.cpu_active == 1) { |
48 | if (config.cpu_active == 1) { |
| 49 | 49 | ||
| 50 | /* Reserve frame 0 (BIOS data) */ |
50 | /* Reserve frame 0 (BIOS data) */ |
| 51 | frame_region_not_free(0, FRAME_SIZE); |
51 | frame_region_not_free(0, FRAME_SIZE); |
| 52 | 52 | ||
| - | 53 | #ifdef CONFIG_SMP |
|
| 53 | /* Reserve real mode bootstrap memory */ |
54 | /* Reserve AP real mode bootstrap memory */ |
| 54 | frame_region_not_free(BOOTSTRAP_OFFSET, hardcoded_unmapped_ktext_size + hardcoded_unmapped_kdata_size); |
55 | frame_region_not_free(AP_BOOT_OFFSET, hardcoded_unmapped_ktext_size + hardcoded_unmapped_kdata_size); |
| - | 56 | #endif |
|
| 55 | 57 | ||
| 56 | for (i = 0; i < e820counter; i++) { |
58 | for (i = 0; i < e820counter; i++) { |
| 57 | if (e820table[i].type == MEMMAP_MEMORY_AVAILABLE) { |
59 | if (e820table[i].type == MEMMAP_MEMORY_AVAILABLE) { |
| 58 | zone_create_in_region(e820table[i].base_address, e820table[i].size & ~(FRAME_SIZE-1)); |
60 | zone_create_in_region(e820table[i].base_address, e820table[i].size & ~(FRAME_SIZE-1)); |
| 59 | if (last_frame < ALIGN_UP(e820table[i].base_address + e820table[i].size, FRAME_SIZE)) |
61 | if (last_frame < ALIGN_UP(e820table[i].base_address + e820table[i].size, FRAME_SIZE)) |