Subversion Repositories HelenOS

Rev

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