Rev 2131 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2131 | Rev 2307 | ||
---|---|---|---|
Line 78... | Line 78... | ||
78 | if (!io_apic_address) |
78 | if (!io_apic_address) |
79 | panic("cannot allocate address for io_apic\n"); |
79 | panic("cannot allocate address for io_apic\n"); |
80 | 80 | ||
81 | if (config.cpu_count > 1) { |
81 | if (config.cpu_count > 1) { |
82 | page_mapping_insert(AS_KERNEL, l_apic_address, (uintptr_t) l_apic, |
82 | page_mapping_insert(AS_KERNEL, l_apic_address, (uintptr_t) l_apic, |
83 | PAGE_NOT_CACHEABLE); |
83 | PAGE_NOT_CACHEABLE | PAGE_WRITE); |
84 | page_mapping_insert(AS_KERNEL, io_apic_address, (uintptr_t) io_apic, |
84 | page_mapping_insert(AS_KERNEL, io_apic_address, (uintptr_t) io_apic, |
85 | PAGE_NOT_CACHEABLE); |
85 | PAGE_NOT_CACHEABLE | PAGE_WRITE); |
86 | 86 | ||
87 | l_apic = (uint32_t *) l_apic_address; |
87 | l_apic = (uint32_t *) l_apic_address; |
88 | io_apic = (uint32_t *) io_apic_address; |
88 | io_apic = (uint32_t *) io_apic_address; |
89 | } |
89 | } |
90 | } |
90 | } |
91 | 91 | ||
92 | /* |
92 | /* |
93 | * Kernel thread for bringing up application processors. It becomes clear |
93 | * Kernel thread for bringing up application processors. It becomes clear |
94 | * that we need an arrangement like this (AP's being initialized by a kernel |
94 | * that we need an arrangement like this (AP's being initialized by a kernel |