Changeset 6a22fcb in mainline for arch/ia32/src


Ignore:
Timestamp:
2006-03-16T19:48:27Z (20 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
37c57f2
Parents:
b1fd4f0
Message:

Clear user address space when creating new page tables.
Fix mapping of l_apic and io_apic on amd64.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/ia32/src/smp/smp.c

    rb1fd4f0 r6a22fcb  
    5656void smp_init(void)
    5757{
     58        int status;
     59        __address l_apic_address, io_apic_address;
     60
    5861        if (acpi_madt) {
    5962                acpi_madt_parse();
     
    6568        }
    6669
     70        l_apic_address = PA2KA(PFN2ADDR(frame_alloc_rc(ONE_FRAME, FRAME_ATOMIC | FRAME_KA, &status)));
     71        if (status != FRAME_OK)
     72                panic("cannot allocate address for l_apic\n");
     73
     74        io_apic_address = PA2KA(PFN2ADDR(frame_alloc_rc(ONE_FRAME, FRAME_ATOMIC | FRAME_KA, &status)));
     75        if (status != FRAME_OK)
     76                panic("cannot allocate address for io_apic\n");
     77
    6778        if (config.cpu_count > 1) {             
    68                 page_mapping_insert(AS_KERNEL, (__address) l_apic, (__address) l_apic,
     79                page_mapping_insert(AS_KERNEL, l_apic_address, (__address) l_apic,
    6980                                  PAGE_NOT_CACHEABLE);
    70                 page_mapping_insert(AS_KERNEL, (__address) io_apic, (__address) io_apic,
     81                page_mapping_insert(AS_KERNEL, io_apic_address, (__address) io_apic,
    7182                                  PAGE_NOT_CACHEABLE);
     83                                 
     84                l_apic = (__u32 *) l_apic_address;
     85                io_apic = (__u32 *) io_apic_address;
    7286        }
    7387
Note: See TracChangeset for help on using the changeset viewer.