Rev 1805 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1805 | Rev 1806 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
26 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
27 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 | # |
28 | # |
29 | 29 | ||
30 | #include <arch/boot/boot.h> |
30 | #include <arch/boot/boot.h> |
31 | #include <arch/boot/memmap.h> |
- | |
32 | #include <arch/mm/page.h> |
31 | #include <arch/mm/page.h> |
33 | #include <arch/pm.h> |
32 | #include <arch/pm.h> |
34 | 33 | ||
35 | .section __xen_guest |
34 | .section __xen_guest |
36 | .ascii "GUEST_OS=HelenOS," |
35 | .ascii "GUEST_OS=HelenOS," |
Line 161... | Line 160... | ||
161 | 160 | ||
162 | loop mods_loop |
161 | loop mods_loop |
163 | 162 | ||
164 | mods_end: |
163 | mods_end: |
165 | 164 | ||
166 | bt $6, %eax # mbi->flags[6] (mmap_length, mmap_addr valid) |
- | |
167 | jc mmap_valid |
- | |
168 | - | ||
169 | xorl %edx, %edx |
- | |
170 | jmp mmap_invalid |
- | |
171 | - | ||
172 | mmap_valid: |
- | |
173 | movl 44(%ebx), %ecx # mbi->mmap_length |
- | |
174 | movl 48(%ebx), %esi # mbi->mmap_addr |
- | |
175 | movl $e820table, %edi |
- | |
176 | xorl %edx, %edx |
- | |
177 | - | ||
178 | mmap_loop: |
- | |
179 | cmpl $0, %ecx |
- | |
180 | jle mmap_end |
- | |
181 | - | ||
182 | movl 4(%esi), %eax # mmap->base_addr_low |
- | |
183 | movl %eax, (%edi) |
- | |
184 | - | ||
185 | movl 8(%esi), %eax # mmap->base_addr_high |
- | |
186 | movl %eax, 4(%edi) |
- | |
187 | - | ||
188 | movl 12(%esi), %eax # mmap->length_low |
- | |
189 | movl %eax, 8(%edi) |
- | |
190 | - | ||
191 | movl 16(%esi), %eax # mmap->length_high |
- | |
192 | movl %eax, 12(%edi) |
- | |
193 | - | ||
194 | movl 20(%esi), %eax # mmap->type |
- | |
195 | movl %eax, 16(%edi) |
- | |
196 | - | ||
197 | movl (%esi), %eax # mmap->size |
- | |
198 | addl $0x4, %eax |
- | |
199 | addl %eax, %esi |
- | |
200 | subl %eax, %ecx |
- | |
201 | addl $MEMMAP_E820_RECORD_SIZE, %edi |
- | |
202 | incl %edx |
- | |
203 | jmp mmap_loop |
- | |
204 | - | ||
205 | mmap_end: |
- | |
206 | - | ||
207 | mmap_invalid: |
- | |
208 | movl %edx, e820counter |
- | |
209 | - | ||
210 | invalid_boot: |
165 | invalid_boot: |
211 | 166 | ||
212 | #ifdef CONFIG_SMP |
167 | #ifdef CONFIG_SMP |
213 | 168 | ||
214 | # copy AP bootstrap routines below 1 MB |
169 | # copy AP bootstrap routines below 1 MB |