Rev 3674 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3674 | Rev 4348 | ||
|---|---|---|---|
| Line 82... | Line 82... | ||
| 82 | srlx %l6, 13, %l5 |
82 | srlx %l6, 13, %l5 |
| 83 | 83 | ||
| 84 | ! l5 <= physmem_base[(PHYSMEM_ADDR_SIZE - 1):13] |
84 | ! l5 <= physmem_base[(PHYSMEM_ADDR_SIZE - 1):13] |
| 85 | sllx %l5, 13 + (63 - (PHYSMEM_ADDR_SIZE - 1)), %l5 |
85 | sllx %l5, 13 + (63 - (PHYSMEM_ADDR_SIZE - 1)), %l5 |
| 86 | srlx %l5, 63 - (PHYSMEM_ADDR_SIZE - 1), %l5 |
86 | srlx %l5, 63 - (PHYSMEM_ADDR_SIZE - 1), %l5 |
| 87 | 87 | ||
| 88 | /* |
88 | /* |
| 89 | * Setup basic runtime environment. |
89 | * Setup basic runtime environment. |
| 90 | */ |
90 | */ |
| 91 | 91 | ||
| 92 | wrpr %g0, NWINDOWS - 2, %cansave ! set maximum saveable windows |
92 | wrpr %g0, NWINDOWS - 2, %cansave ! set maximum saveable windows |
| Line 292... | Line 292... | ||
| 292 | nop |
292 | nop |
| 293 | 293 | ||
| 294 | /* Not reached. */ |
294 | /* Not reached. */ |
| 295 | 295 | ||
| 296 | 0: |
296 | 0: |
| 297 | ba 0b |
297 | ba %xcc, 0b |
| 298 | nop |
298 | nop |
| 299 | 299 | ||
| 300 | 300 | ||
| 301 | 1: |
301 | 1: |
| 302 | #ifdef CONFIG_SMP |
302 | #ifdef CONFIG_SMP |
| Line 331... | Line 331... | ||
| 331 | */ |
331 | */ |
| 332 | set waking_up_mid, %g2 |
332 | set waking_up_mid, %g2 |
| 333 | 2: |
333 | 2: |
| 334 | ldx [%g2], %g3 |
334 | ldx [%g2], %g3 |
| 335 | cmp %g3, %g1 |
335 | cmp %g3, %g1 |
| 336 | bne 2b |
336 | bne %xcc, 2b |
| 337 | nop |
337 | nop |
| 338 | 338 | ||
| 339 | /* |
339 | /* |
| 340 | * Configure stack for the AP. |
340 | * Configure stack for the AP. |
| 341 | * The AP is expected to use the stack saved |
341 | * The AP is expected to use the stack saved |
| Line 350... | Line 350... | ||
| 350 | 350 | ||
| 351 | /* Not reached. */ |
351 | /* Not reached. */ |
| 352 | #endif |
352 | #endif |
| 353 | 353 | ||
| 354 | 0: |
354 | 0: |
| 355 | ba 0b |
355 | ba %xcc, 0b |
| 356 | nop |
356 | nop |
| 357 | 357 | ||
| 358 | 358 | ||
| 359 | .section K_DATA_START, "aw", @progbits |
359 | .section K_DATA_START, "aw", @progbits |
| 360 | 360 | ||
| Line 379... | Line 379... | ||
| 379 | .global physmem_base ! copy of the physical memory base address |
379 | .global physmem_base ! copy of the physical memory base address |
| 380 | physmem_base: |
380 | physmem_base: |
| 381 | .quad 0 |
381 | .quad 0 |
| 382 | 382 | ||
| 383 | /* |
383 | /* |
| 384 | * This variable is used by the fast_data_MMU_miss trap handler. In runtime, it |
384 | * The fast_data_access_mmu_miss_data_hi label and the end_of_identity and |
| 385 | * is further modified to reflect the starting address of physical memory. |
385 | * kernel_8k_tlb_data_template variables are meant to stay together, |
| - | 386 | * aligned on 16B boundary. |
|
| 386 | */ |
387 | */ |
| - | 388 | .global fast_data_access_mmu_miss_data_hi |
|
| - | 389 | .global end_of_identity |
|
| 387 | .global kernel_8k_tlb_data_template |
390 | .global kernel_8k_tlb_data_template |
| - | 391 | ||
| - | 392 | .align 16 |
|
| - | 393 | /* |
|
| - | 394 | * This label is used by the fast_data_access_MMU_miss trap handler. |
|
| - | 395 | */ |
|
| - | 396 | fast_data_access_mmu_miss_data_hi: |
|
| - | 397 | /* |
|
| - | 398 | * This variable is used by the fast_data_access_MMU_miss trap handler. |
|
| - | 399 | * In runtime, it is modified to contain the address of the end of physical |
|
| - | 400 | * memory. |
|
| - | 401 | */ |
|
| - | 402 | end_of_identity: |
|
| - | 403 | .quad -1 |
|
| - | 404 | /* |
|
| - | 405 | * This variable is used by the fast_data_access_MMU_miss trap handler. |
|
| - | 406 | * In runtime, it is further modified to reflect the starting address of |
|
| - | 407 | * physical memory. |
|
| - | 408 | */ |
|
| 388 | kernel_8k_tlb_data_template: |
409 | kernel_8k_tlb_data_template: |
| 389 | #ifdef CONFIG_VIRT_IDX_DCACHE |
410 | #ifdef CONFIG_VIRT_IDX_DCACHE |
| 390 | .quad ((1 << TTE_V_SHIFT) | (PAGESIZE_8K << TTE_SIZE_SHIFT) | TTE_CP | \ |
411 | .quad ((1 << TTE_V_SHIFT) | (PAGESIZE_8K << TTE_SIZE_SHIFT) | TTE_CP | \ |
| 391 | TTE_CV | TTE_P | TTE_W) |
412 | TTE_CV | TTE_P | TTE_W) |
| 392 | #else /* CONFIG_VIRT_IDX_DCACHE */ |
413 | #else /* CONFIG_VIRT_IDX_DCACHE */ |