Subversion Repositories HelenOS

Rev

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