Rev 2131 | 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 |