Changeset da68871a in mainline for kernel/arch/ia32/src
- Timestamp:
- 2012-08-08T08:46:22Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 30c0826
- Parents:
- bc216a0 (diff), 1d01cca (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- kernel/arch/ia32/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/src/boot/multiboot.S
rbc216a0 rda68871a 73 73 74 74 multiboot_image_start: 75 cli 75 76 cld 76 77 … … 78 79 movl $START_STACK, %esp 79 80 80 /* Initialize Global Descriptor Table register */ 81 /* 82 * Initialize Global Descriptor Table and 83 * Interrupt Descriptor Table registers 84 */ 81 85 lgdtl bootstrap_gdtr 86 lidtl bootstrap_idtr 82 87 83 88 /* Kernel data + stack */ … … 701 706 page_directory: 702 707 .space 4096, 0 708 709 .global bootstrap_idtr 710 bootstrap_idtr: 711 .word 0 712 .long 0 703 713 704 714 .global bootstrap_gdtr -
kernel/arch/ia32/src/boot/multiboot2.S
rbc216a0 rda68871a 114 114 115 115 multiboot2_image_start: 116 cli 116 117 cld 117 118 … … 119 120 movl $START_STACK, %esp 120 121 121 /* Initialize Global Descriptor Table register */ 122 /* 123 * Initialize Global Descriptor Table and 124 * Interrupt Descriptor Table registers 125 */ 122 126 lgdtl bootstrap_gdtr 127 lidtl bootstrap_idtr 123 128 124 129 /* Kernel data + stack */ -
kernel/arch/ia32/src/boot/vesa_prot.inc
rbc216a0 rda68871a 88 88 /* Returned back to protected mode */ 89 89 90 /* 91 * Initialize Global Descriptor Table and 92 * Interrupt Descriptor Table registers 93 */ 94 lgdtl bootstrap_gdtr 95 lidtl bootstrap_idtr 96 90 97 movzx %ax, %ecx 91 98 mov %ecx, KA2PA(bfb_scanline) -
kernel/arch/ia32/src/boot/vesa_real.inc
rbc216a0 rda68871a 30 30 .code32 31 31 vesa_init: 32 lidtl vesa_idtr 32 33 jmp $GDT_SELECTOR(VESA_INIT_DES), $vesa_init_real - vesa_init 34 35 vesa_idtr: 36 .word 0x3ff 37 .long 0 33 38 34 39 .code16 -
kernel/arch/ia32/src/boot/vesa_ret.inc
rbc216a0 rda68871a 1 1 .code32 2 2 vesa_init_protected: 3 cli 3 4 cld 4 5 -
kernel/arch/ia32/src/mm/page.c
rbc216a0 rda68871a 71 71 for (cur = 0; cur < min(config.identity_size, config.physmem_end); 72 72 cur += FRAME_SIZE) { 73 flags = PAGE_CACHEABLE | PAGE_WRITE; 74 if ((PA2KA(cur) >= config.base) && 75 (PA2KA(cur) < config.base + config.kernel_size)) 76 flags |= PAGE_GLOBAL; 73 flags = PAGE_GLOBAL | PAGE_CACHEABLE | PAGE_WRITE | PAGE_READ; 77 74 page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags); 78 75 } -
kernel/arch/ia32/src/smp/apic.c
rbc216a0 rda68871a 259 259 } 260 260 261 static void ipi_wait_for_idle(void) 261 /* Waits for the destination cpu to accept the previous ipi. */ 262 static void l_apic_wait_for_delivery(void) 262 263 { 263 264 icr_t icr; 264 265 265 /* Wait for the destination cpu to accept the previous ipi. */266 266 do { 267 267 icr.lo = l_apic[ICRlo]; … … 281 281 282 282 /* Wait for a destination cpu to accept our previous ipi. */ 283 ipi_wait_for_idle();283 l_apic_wait_for_delivery(); 284 284 285 285 icr.lo = l_apic[ICRlo]; … … 298 298 l_apic[ICRlo] = icr.lo; 299 299 300 #ifdef CONFIG_DEBUG301 icr.lo = l_apic[ICRlo];302 if (icr.delivs == DELIVS_PENDING) {303 printf("IPI is pending.\n");304 }305 #endif306 307 300 return apic_poll_errors(); 308 301 } … … 320 313 321 314 /* Wait for a destination cpu to accept our previous ipi. */ 322 ipi_wait_for_idle();315 l_apic_wait_for_delivery(); 323 316 324 317 icr.lo = l_apic[ICRlo]; … … 332 325 l_apic[ICRlo] = icr.lo; 333 326 334 icr.lo = l_apic[ICRlo];335 if (icr.delivs == DELIVS_PENDING) {336 #ifdef CONFIG_DEBUG337 printf("IPI is pending.\n");338 #endif339 }340 341 327 return apic_poll_errors(); 342 328 } … … 379 365 return 0; 380 366 367 l_apic_wait_for_delivery(); 368 381 369 icr.lo = l_apic[ICRlo]; 382 if (icr.delivs == DELIVS_PENDING) {383 #ifdef CONFIG_DEBUG384 printf("IPI is pending.\n");385 #endif386 }387 388 370 icr.delmod = DELMOD_INIT; 389 371 icr.destmod = DESTMOD_PHYS; … … 518 500 dfr.model = MODEL_FLAT; 519 501 l_apic[DFR] = dfr.value; 520 521 if (CPU->arch.id != l_apic_id()) {522 #ifdef CONFIG_DEBUG523 printf("lapic error: LAPIC ID (%" PRIu8 ") and hw ID assigned by BSP"524 " (%u) differ. Correcting to LAPIC ID.\n", l_apic_id(),525 CPU->arch.id);526 #endif527 CPU->arch.id = l_apic_id();528 }529 530 502 } 531 503
Note:
See TracChangeset
for help on using the changeset viewer.