Changeset 5d3d7c2b in mainline
- Timestamp:
- 2006-07-17T19:07:11Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1c4a57f
- Parents:
- 380954d9
- Location:
- kernel/arch/xen32
- Files:
-
- 2 deleted
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/xen32/_link.ld.in
r380954d9 r5d3d7c2b 1 1 /** Xen32 linker script 2 *3 * umapped section:4 * kernel text5 * kernel data6 * mapped section:7 * kernel text8 * kernel data9 2 */ 10 3 … … 14 7 15 8 SECTIONS { 16 .unmapped BOOT_OFFSET: AT (0) { 17 unmapped_ktext_start = .; 18 *(K_TEXT_START); 19 unmapped_ktext_end = .; 20 21 unmapped_kdata_start = .; 22 *(K_DATA_START); 23 unmapped_kdata_end = .; 9 __xen_guest : { 10 *(__xen_guest); 24 11 } 25 12 26 . mapped (PA2KA(BOOT_OFFSET)+SIZEOF(.unmapped)): AT (SIZEOF(.unmapped)){13 .image PA2KA(0): { 27 14 ktext_start = .; 28 15 *(.text); … … 34 21 *(COMMON); /* global variables */ 35 22 hardcoded_load_address = .; 36 LONG(PA2KA( BOOT_OFFSET));23 LONG(PA2KA(0)); 37 24 hardcoded_ktext_size = .; 38 LONG( (ktext_end - ktext_start) + (unmapped_ktext_end - unmapped_ktext_start));25 LONG(ktext_end - ktext_start); 39 26 hardcoded_kdata_size = .; 40 LONG((kdata_end - kdata_start) + (unmapped_kdata_end - unmapped_kdata_start)); 41 hardcoded_unmapped_ktext_size = .; 42 LONG(unmapped_ktext_end - unmapped_ktext_start); 43 hardcoded_unmapped_kdata_size = .; 44 LONG(unmapped_kdata_end - unmapped_kdata_start); 27 LONG(kdata_end - kdata_start); 45 28 symbol_table = .; 46 29 *(symtab.*); /* Symbol table, must be LAST symbol! */ 47 30 *(.bss); /* uninitialized static variables */ 48 31 kdata_end = .; 49 }50 51 __xen_guest(0): AT (SIZEOF(.unmapped)+SIZEOF(.mapped)) {52 *(__xen_guest);53 32 } 54 33 … … 57 36 *(.comment); 58 37 } 59 60 #ifdef CONFIG_SMP61 62 _hardcoded_unmapped_size = (unmapped_ktext_end - unmapped_ktext_start) + (unmapped_kdata_end - unmapped_kdata_start);63 ap_boot = unmapped_ap_boot - BOOT_OFFSET + AP_BOOT_OFFSET;64 ap_gdtr = unmapped_ap_gdtr - BOOT_OFFSET + AP_BOOT_OFFSET;65 protected_ap_gdtr = PA2KA(ap_gdtr);66 67 #endif /* CONFIG_SMP */68 69 38 } -
kernel/arch/xen32/src/boot/boot.S
r380954d9 r5d3d7c2b 29 29 30 30 #include <arch/boot/boot.h> 31 #include <arch/boot/memmap.h>32 31 #include <arch/mm/page.h> 33 32 #include <arch/pm.h> … … 164 163 mods_end: 165 164 166 bt $6, %eax # mbi->flags[6] (mmap_length, mmap_addr valid)167 jc mmap_valid168 169 xorl %edx, %edx170 jmp mmap_invalid171 172 mmap_valid:173 movl 44(%ebx), %ecx # mbi->mmap_length174 movl 48(%ebx), %esi # mbi->mmap_addr175 movl $e820table, %edi176 xorl %edx, %edx177 178 mmap_loop:179 cmpl $0, %ecx180 jle mmap_end181 182 movl 4(%esi), %eax # mmap->base_addr_low183 movl %eax, (%edi)184 185 movl 8(%esi), %eax # mmap->base_addr_high186 movl %eax, 4(%edi)187 188 movl 12(%esi), %eax # mmap->length_low189 movl %eax, 8(%edi)190 191 movl 16(%esi), %eax # mmap->length_high192 movl %eax, 12(%edi)193 194 movl 20(%esi), %eax # mmap->type195 movl %eax, 16(%edi)196 197 movl (%esi), %eax # mmap->size198 addl $0x4, %eax199 addl %eax, %esi200 subl %eax, %ecx201 addl $MEMMAP_E820_RECORD_SIZE, %edi202 incl %edx203 jmp mmap_loop204 205 mmap_end:206 207 mmap_invalid:208 movl %edx, e820counter209 210 165 invalid_boot: 211 166
Note:
See TracChangeset
for help on using the changeset viewer.