Rev 1667 | Rev 1702 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1667 | Rev 1684 | ||
|---|---|---|---|
| Line 225... | Line 225... | ||
| 225 | icr.vector = vector; |
225 | icr.vector = vector; |
| 226 | 226 | ||
| 227 | l_apic[ICRlo] = icr.lo; |
227 | l_apic[ICRlo] = icr.lo; |
| 228 | 228 | ||
| 229 | icr.lo = l_apic[ICRlo]; |
229 | icr.lo = l_apic[ICRlo]; |
| 230 | if (icr.delivs == DELIVS_PENDING) |
230 | if (icr.delivs == DELIVS_PENDING) { |
| - | 231 | #ifdef CONFIG_DEBUG |
|
| 231 | printf("IPI is pending.\n"); |
232 | printf("IPI is pending.\n"); |
| - | 233 | #endif |
|
| - | 234 | } |
|
| 232 | 235 | ||
| 233 | return apic_poll_errors(); |
236 | return apic_poll_errors(); |
| 234 | } |
237 | } |
| 235 | 238 | ||
| 236 | /** Universal Start-up Algorithm for bringing up the AP processors. |
239 | /** Universal Start-up Algorithm for bringing up the AP processors. |
| Line 265... | Line 268... | ||
| 265 | * According to MP Specification, 20us should be enough to |
268 | * According to MP Specification, 20us should be enough to |
| 266 | * deliver the IPI. |
269 | * deliver the IPI. |
| 267 | */ |
270 | */ |
| 268 | delay(20); |
271 | delay(20); |
| 269 | 272 | ||
| 270 | if (!apic_poll_errors()) return 0; |
273 | if (!apic_poll_errors()) |
| - | 274 | return 0; |
|
| 271 | 275 | ||
| 272 | icr.lo = l_apic[ICRlo]; |
276 | icr.lo = l_apic[ICRlo]; |
| 273 | if (icr.delivs == DELIVS_PENDING) |
277 | if (icr.delivs == DELIVS_PENDING) { |
| - | 278 | #ifdef CONFIG_DEBUG |
|
| 274 | printf("IPI is pending.\n"); |
279 | printf("IPI is pending.\n"); |
| - | 280 | #endif |
|
| - | 281 | } |
|
| 275 | 282 | ||
| 276 | icr.delmod = DELMOD_INIT; |
283 | icr.delmod = DELMOD_INIT; |
| 277 | icr.destmod = DESTMOD_PHYS; |
284 | icr.destmod = DESTMOD_PHYS; |
| 278 | icr.level = LEVEL_DEASSERT; |
285 | icr.level = LEVEL_DEASSERT; |
| 279 | icr.shorthand = SHORTHAND_NONE; |
286 | icr.shorthand = SHORTHAND_NONE; |