Changeset c0b45fa in mainline


Ignore:
Timestamp:
2005-09-05T12:15:04Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2c55af3
Parents:
ff4c4f5
Message:

remove lower 2 GB identity mapping (IA-32)

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/src/boot/boot.S

    rff4c4f5 rc0b45fa  
    218218        movl %eax, page_directory               # mapping 0x00000000 => 0x00000000
    219219
    220         movl $(page_directory+(4096/2)), %edx
     220        movl $(page_directory+2048), %edx
    221221        movl %eax, (%edx)                       # mapping 0x80000000 => 0x00000000
    222222
  • arch/ia32/src/mm/page.c

    rff4c4f5 rc0b45fa  
    5757                 * PA2KA(identity) mapping for all frames.
    5858                 */
    59                 for (i = 0; i < frames; i++) {
    60                         map_page_to_frame(i * PAGE_SIZE, i * PAGE_SIZE, PAGE_CACHEABLE, KA2PA(dba));
     59                for (i = 0; i < frames; i++)
    6160                        map_page_to_frame(PA2KA(i * PAGE_SIZE), i * PAGE_SIZE, PAGE_CACHEABLE, KA2PA(dba));
    62                 }
    6361
    6462                trap_register(14, page_fault);
  • arch/ia32/src/smp/ap.S

    rff4c4f5 rc0b45fa  
    7070        call map_kernel                                 # map kernel and turn paging on
    7171       
     72        addl $0x80000000, %esp                  # PA2KA(ctx.sp)
     73       
    7274        jmpl $KTEXT, $main_ap
    7375
  • arch/ia32/src/smp/smp.c

    rff4c4f5 rc0b45fa  
    144144                memcpy(gdt_new, gdt, GDT_ITEMS*sizeof(struct descriptor));
    145145                memsetb((__address)(&gdt_new[TSS_DES]), sizeof(struct descriptor), 0);
    146                 real_bootstrap_gdtr.base = KA2PA((__address) gdt_new);
     146                ((struct ptr_16_32 *) PA2KA((__address) &real_bootstrap_gdtr))->base = KA2PA((__address) gdt_new);
    147147                gdtr.base = (__address) gdt_new;
    148148
    149149                if (l_apic_send_init_ipi(ops->cpu_apic_id(i))) {
    150150                        /*
    151                         * There may be just one AP being initialized at
     151                        * There may be just one AP being initialized at
    152152                         * the time. After it comes completely up, it is
    153153                         * supposed to wake us up.
    154                         */
     154                        */
    155155                        if (waitq_sleep_timeout(&ap_completion_wq, 1000000, SYNCH_BLOCKING) == ESYNCH_TIMEOUT)
    156156                                printf("%s: waiting for cpu%d (APIC ID = %d) timed out\n", __FUNCTION__, config.cpu_active > i ? config.cpu_active : i, ops->cpu_apic_id(i));
    157                 }
    158                 else {
     157                } else
    159158                        printf("INIT IPI for l_apic%d failed\n", ops->cpu_apic_id(i));
    160                 }
    161159        }
    162160
  • src/main/main.c

    rff4c4f5 rc0b45fa  
    219219         */
    220220        the_initialize(THE);
    221 
     221       
    222222        arch_pre_mm_init();
    223223        frame_init();
    224224        page_init();
    225225        arch_post_mm_init();
    226 
     226       
    227227        cpu_init();
     228       
    228229        calibrate_delay_loop();
    229230
Note: See TracChangeset for help on using the changeset viewer.