Changeset 6401f79 in mainline


Ignore:
Timestamp:
2005-09-03T16:44:55Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b6d20a7
Parents:
ab08b42
Message:

make IA-32 SMP work again (finally)

Location:
arch/ia32
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/include/pm.h

    rab08b42 r6401f79  
    130130
    131131extern struct ptr_16_32 gdtr;
     132extern struct ptr_16_32 bsp_bootstrap_gdtr;
     133extern struct ptr_16_32 ap_bootstrap_gdtr;
    132134extern struct tss *tss_p;
    133135
  • arch/ia32/src/pm.c

    rab08b42 r6401f79  
    173173         * Update addresses in GDT and IDT to their virtual counterparts.
    174174         */
    175         gdtr.base = (__address) gdt;
     175        if (config.cpu_active == 1)
     176                gdtr.base = (__address) gdt;
    176177        idtr.base = (__address) idt;
    177178        __asm__ volatile ("lgdt %0\n" : : "m" (gdtr));
  • arch/ia32/src/smp/smp.c

    rab08b42 r6401f79  
    8686        __address src, dst;
    8787        int i;
    88 
     88       
    8989        ASSERT(ops != NULL);
    9090
     
    142142                memcpy(gdt_new, gdt, GDT_ITEMS*sizeof(struct descriptor));
    143143                memsetb((__address)(&gdt_new[TSS_DES]), sizeof(struct descriptor), 0);
    144                 gdtr.base = KA2PA((__address) gdt_new);
     144                ap_bootstrap_gdtr.base = KA2PA((__address) gdt_new);
     145                gdtr.base = (__address) gdt_new;
    145146
    146147                if (l_apic_send_init_ipi(ops->cpu_apic_id(i))) {
Note: See TracChangeset for help on using the changeset viewer.