Subversion Repositories HelenOS

Rev

Rev 1858 | Rev 1861 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1858 Rev 1860
Line 38... Line 38...
38
#include <arch/trap/trap_table.h>
38
#include <arch/trap/trap_table.h>
39
#include <arch/trap/regwin.h>
39
#include <arch/trap/regwin.h>
40
#include <arch/trap/interrupt.h>
40
#include <arch/trap/interrupt.h>
41
#include <arch/trap/exception.h>
41
#include <arch/trap/exception.h>
42
#include <arch/trap/mmu.h>
42
#include <arch/trap/mmu.h>
-
 
43
#include <arch/mm/mmu.h>
43
#include <arch/mm/page.h>
44
#include <arch/mm/page.h>
44
#include <arch/stack.h>
45
#include <arch/stack.h>
45
#include <arch/regdef.h>
46
#include <arch/regdef.h>
46
 
47
 
47
#define TABLE_SIZE	TRAP_TABLE_SIZE
48
#define TABLE_SIZE	TRAP_TABLE_SIZE
Line 346... Line 347...
346
	 * Set CLEANWIN to NWINDOW-1 so that clean_window traps do not occur.
347
	 * Set CLEANWIN to NWINDOW-1 so that clean_window traps do not occur.
347
	 */
348
	 */
348
	rdpr %cansave, %l0
349
	rdpr %cansave, %l0
349
	wrpr %l0, %otherwin
350
	wrpr %l0, %otherwin
350
	wrpr %g0, %cansave
351
	wrpr %g0, %cansave
351
	wrpr %g0, NWINDOW-1, %cleanwin
352
	wrpr %g0, NWINDOW - 1, %cleanwin
352
 
353
 
353
	/*
354
	/*
354
	 * Switch to primary context 0.
355
	 * Switch to primary context 0.
355
	 */
356
	 */
356
	mov VA_PRIMARY_CONTEXT_REG, %l0
357
	mov VA_PRIMARY_CONTEXT_REG, %l0
357
        stxa %g0, [%l0] ASI_DMMU
358
	stxa %g0, [%l0] ASI_DMMU
358
	set kernel_image_start, %l0
359
	rd %pc, %l0
359
        flush %l0
360
	flush %l0
360
 
361
 
361
	ba 1f
362
	ba 1f
362
	nop
363
	nop
363
 
364
 
364
0:
365
0:
Line 495... Line 496...
495
	/*
496
	/*
496
	 * Spills and fills will be processed by the {spill,fill}_1_normal
497
	 * Spills and fills will be processed by the {spill,fill}_1_normal
497
	 * handlers.
498
	 * handlers.
498
	 */
499
	 */
499
	wrpr %g0, WSTATE_OTHER(0) | WSTATE_NORMAL(1), %wstate
500
	wrpr %g0, WSTATE_OTHER(0) | WSTATE_NORMAL(1), %wstate
-
 
501
 
-
 
502
	/*
-
 
503
	 * Set primary context according to secondary context.
-
 
504
	 */
-
 
505
	wr %g0, ASI_DMMU, %asi
-
 
506
	ldxa [VA_SECONDARY_CONTEXT_REG] %asi, %g1
-
 
507
	stxa %g1, [VA_PRIMARY_CONTEXT_REG] %asi
-
 
508
	flush %o7
500
	
509
	
501
	rdpr %cwp, %g1
510
	rdpr %cwp, %g1
502
	rdpr %otherwin, %g2
511
	rdpr %otherwin, %g2
503
 
512
 
504
	/*
513
	/*