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 80... | Line 80... | ||
80 | if (!io_apic_address) |
80 | if (!io_apic_address) |
81 | panic("cannot allocate address for io_apic\n"); |
81 | panic("cannot allocate address for io_apic\n"); |
82 | 82 | ||
83 | if (config.cpu_count > 1) { |
83 | if (config.cpu_count > 1) { |
84 | page_mapping_insert(AS_KERNEL, l_apic_address, (uintptr_t) l_apic, |
84 | page_mapping_insert(AS_KERNEL, l_apic_address, (uintptr_t) l_apic, |
85 | PAGE_NOT_CACHEABLE); |
85 | PAGE_NOT_CACHEABLE | PAGE_WRITE); |
86 | page_mapping_insert(AS_KERNEL, io_apic_address, (uintptr_t) io_apic, |
86 | page_mapping_insert(AS_KERNEL, io_apic_address, (uintptr_t) io_apic, |
87 | PAGE_NOT_CACHEABLE); |
87 | PAGE_NOT_CACHEABLE | PAGE_WRITE); |
88 | 88 | ||
89 | l_apic = (uint32_t *) l_apic_address; |
89 | l_apic = (uint32_t *) l_apic_address; |
90 | io_apic = (uint32_t *) io_apic_address; |
90 | io_apic = (uint32_t *) io_apic_address; |
91 | } |
91 | } |
92 | } |
92 | } |
93 | 93 | ||
94 | /* |
94 | /* |
95 | * Kernel thread for bringing up application processors. It becomes clear |
95 | * Kernel thread for bringing up application processors. It becomes clear |
96 | * that we need an arrangement like this (AP's being initialized by a kernel |
96 | * that we need an arrangement like this (AP's being initialized by a kernel |