Rev 3891 | Rev 3972 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3891 | Rev 3908 | ||
|---|---|---|---|
| Line 48... | Line 48... | ||
| 48 | 48 | ||
| 49 | size_t hardcoded_unmapped_ktext_size = 0; |
49 | size_t hardcoded_unmapped_ktext_size = 0; |
| 50 | size_t hardcoded_unmapped_kdata_size = 0; |
50 | size_t hardcoded_unmapped_kdata_size = 0; |
| 51 | 51 | ||
| 52 | uintptr_t last_frame = 0; |
52 | uintptr_t last_frame = 0; |
| - | 53 | uintptr_t end_frame = 0; |
|
| 53 | 54 | ||
| 54 | static void init_e820_memory(pfn_t minconf) |
55 | static void init_e820_memory(pfn_t minconf) |
| 55 | { |
56 | { |
| 56 | unsigned int i; |
57 | unsigned int i; |
| 57 | pfn_t start, conf; |
58 | pfn_t start, conf; |
| Line 71... | Line 72... | ||
| 71 | 72 | ||
| 72 | if (last_frame < ALIGN_UP(e820table[i].base_address + |
73 | if (last_frame < ALIGN_UP(e820table[i].base_address + |
| 73 | e820table[i].size, FRAME_SIZE)) |
74 | e820table[i].size, FRAME_SIZE)) |
| 74 | last_frame = |
75 | last_frame = |
| 75 | ALIGN_UP(e820table[i].base_address + e820table[i].size, FRAME_SIZE); |
76 | ALIGN_UP(e820table[i].base_address + e820table[i].size, FRAME_SIZE); |
| 76 | } |
77 | } |
| 77 | } |
78 | } |
| - | 79 | ||
| - | 80 | end_frame = last_frame; |
|
| 78 | } |
81 | } |
| 79 | 82 | ||
| 80 | static char *e820names[] = { |
83 | static char *e820names[] = { |
| 81 | "invalid", |
84 | "invalid", |
| 82 | "available", |
85 | "available", |
| Line 111... | Line 114... | ||
| 111 | { |
114 | { |
| 112 | pfn_t minconf; |
115 | pfn_t minconf; |
| 113 | 116 | ||
| 114 | if (config.cpu_active == 1) { |
117 | if (config.cpu_active == 1) { |
| 115 | minconf = 1; |
118 | minconf = 1; |
| - | 119 | ||
| 116 | #ifdef CONFIG_SMP |
120 | #ifdef CONFIG_SMP |
| 117 | minconf = max(minconf, |
121 | minconf = max(minconf, |
| 118 | ADDR2PFN(AP_BOOT_OFFSET + hardcoded_unmapped_ktext_size + |
122 | ADDR2PFN(AP_BOOT_OFFSET + hardcoded_unmapped_ktext_size + |
| 119 | hardcoded_unmapped_kdata_size)); |
123 | hardcoded_unmapped_kdata_size)); |
| 120 | #endif |
124 | #endif |
| 121 | init_e820_memory(minconf); |
125 | init_e820_memory(minconf); |
| 122 | 126 | ||
| 123 | /* Reserve frame 0 (BIOS data) */ |
127 | /* Reserve frame 0 (BIOS data) */ |
| 124 | frame_mark_unavailable(0, 1); |
128 | frame_mark_unavailable(0, 1); |
| 125 | 129 | ||
| 126 | #ifdef CONFIG_SMP |
130 | #ifdef CONFIG_SMP |
| 127 | /* Reserve AP real mode bootstrap memory */ |
131 | /* Reserve AP real mode bootstrap memory */ |