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 */ |