Changeset e84439a in mainline for arch/mips/src
- Timestamp:
- 2005-09-06T08:51:22Z (21 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/fix-logger-deadlock, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e949fd6
- Parents:
- 39ae77b
- Location:
- arch/mips/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/mips/src/context.S
r39ae77b re84439a 27 27 # 28 28 29 #include <arch/asm/macro.h> 30 29 #define __ASM__ 30 #include <arch/asm/regname.h> 31 #include "context_offset.h" 32 31 33 .text 32 34 … … 38 40 .global context_restore 39 41 42 .macro CONTEXT_STORE r 43 sw $s0,OFFSET_S0(\r) 44 sw $s1,OFFSET_S1(\r) 45 sw $s2,OFFSET_S2(\r) 46 sw $s3,OFFSET_S3(\r) 47 sw $s4,OFFSET_S4(\r) 48 sw $s5,OFFSET_S5(\r) 49 sw $s6,OFFSET_S6(\r) 50 sw $s7,OFFSET_S7(\r) 51 sw $s8,OFFSET_S7(\r) 52 sw $gp,OFFSET_GP(\r) 53 54 sw $ra,OFFSET_PC(\r) 55 sw $sp,OFFSET_SP(\r) 56 .endm 57 58 .macro CONTEXT_LOAD r 59 lw $s0,OFFSET_S0(\r) 60 lw $s1,OFFSET_S1(\r) 61 lw $s2,OFFSET_S2(\r) 62 lw $s3,OFFSET_S3(\r) 63 lw $s4,OFFSET_S4(\r) 64 lw $s5,OFFSET_S5(\r) 65 lw $s6,OFFSET_S6(\r) 66 lw $s7,OFFSET_S7(\r) 67 lw $s8,OFFSET_S7(\r) 68 lw $gp,OFFSET_GP(\r) 69 70 lw $ra,OFFSET_PC(\r) 71 lw $sp,OFFSET_SP(\r) 72 .endm 73 74 40 75 context_save: 41 REGISTERS_STORE $476 CONTEXT_STORE $a0 42 77 43 78 # context_save returns 1 … … 46 81 47 82 context_restore: 48 REGISTERS_LOAD $483 CONTEXT_LOAD $a0 49 84 50 85 # context_restore returns 0 -
arch/mips/src/mm/tlb.c
r39ae77b re84439a 36 36 #include <symtab.h> 37 37 38 void main_bsp(void);39 40 int bootstrap = 1;41 42 38 void tlb_refill(void) 43 39 { 44 if (bootstrap) {45 bootstrap = 0;46 main_bsp();47 }48 49 40 panic("tlb_refill exception\n"); 50 41 } -
arch/mips/src/start.S
r39ae77b re84439a 1 # 1 2 2 # Copyright (C) 2001-2004 Jakub Jermar 3 3 # All rights reserved. … … 27 27 # 28 28 29 #include <arch/asm/macro.h> 30 31 #define STACK_SPACE 128 32 29 #define __ASM__ 30 31 #include <arch/asm/regname.h> 32 #include <arch/mm/page.h> 33 #include <arch/asm/boot.h> 34 #include <arch/context.h> 35 33 36 .text 34 37 … … 42 45 .global exception_entry 43 46 47 .macro REGISTERS_STORE r 48 sw $at,EOFFSET_AT(\r) 49 sw $v0,EOFFSET_V0(\r) 50 sw $v1,EOFFSET_V1(\r) 51 sw $a0,EOFFSET_A0(\r) 52 sw $a1,EOFFSET_A1(\r) 53 sw $a2,EOFFSET_A2(\r) 54 sw $a3,EOFFSET_A3(\r) 55 sw $t0,EOFFSET_A4(\r) 56 sw $t1,EOFFSET_T1(\r) 57 sw $t2,EOFFSET_T2(\r) 58 sw $t3,EOFFSET_T3(\r) 59 sw $t4,EOFFSET_T4(\r) 60 sw $t5,EOFFSET_T5(\r) 61 sw $t6,EOFFSET_T6(\r) 62 sw $t7,EOFFSET_T7(\r) 63 sw $t8,EOFFSET_T8(\r) 64 sw $t9,EOFFSET_T9(\r) 65 sw $s0,EOFFSET_S0(\r) 66 sw $s1,EOFFSET_S1(\r) 67 sw $s2,EOFFSET_S2(\r) 68 sw $s3,EOFFSET_S3(\r) 69 sw $s4,EOFFSET_S4(\r) 70 sw $s5,EOFFSET_S5(\r) 71 sw $s6,EOFFSET_S6(\r) 72 sw $s7,EOFFSET_S7(\r) 73 sw $s8,EOFFSET_S8(\r) 74 sw $gp,EOFFSET_GP(\r) 75 sw $ra,EOFFSET_RA(\r) 76 mflo $k0 77 mfhi $k1 78 sw $k0,EOFFSET_LO(\r) 79 sw $k1,EOFFSET_HI(\r) 80 .endm 81 82 .macro REGISTERS_LOAD r 83 lw $at,EOFFSET_AT(\r) 84 lw $v0,EOFFSET_V0(\r) 85 lw $v1,EOFFSET_V1(\r) 86 lw $a0,EOFFSET_A0(\r) 87 lw $a1,EOFFSET_A1(\r) 88 lw $a2,EOFFSET_A2(\r) 89 lw $a3,EOFFSET_A3(\r) 90 lw $t0,EOFFSET_A4(\r) 91 lw $t1,EOFFSET_T1(\r) 92 lw $t2,EOFFSET_T2(\r) 93 lw $t3,EOFFSET_T3(\r) 94 lw $t4,EOFFSET_T4(\r) 95 lw $t5,EOFFSET_T5(\r) 96 lw $t6,EOFFSET_T6(\r) 97 lw $t7,EOFFSET_T7(\r) 98 lw $t8,EOFFSET_T8(\r) 99 lw $t9,EOFFSET_T9(\r) 100 lw $s0,EOFFSET_S0(\r) 101 lw $s1,EOFFSET_S1(\r) 102 lw $s2,EOFFSET_S2(\r) 103 lw $s3,EOFFSET_S3(\r) 104 lw $s4,EOFFSET_S4(\r) 105 lw $s5,EOFFSET_S5(\r) 106 lw $s6,EOFFSET_S6(\r) 107 lw $s7,EOFFSET_S7(\r) 108 lw $s8,EOFFSET_S8(\r) 109 lw $gp,EOFFSET_GP(\r) 110 lw $ra,EOFFSET_RA(\r) 111 112 lw $k0,EOFFSET_LO(\r) 113 lw $k1,EOFFSET_HI(\r) 114 mtlo $k0 115 mthi $k1 116 .endm 117 118 44 119 .org 0x0 45 kernel_image_start:46 120 tlb_refill_entry: 47 121 j tlb_refill_handler … … 56 130 exception_entry: 57 131 exception_handler: 58 sub $ 29, STACK_SPACE59 REGISTERS_STORE $ 29132 sub $sp, REGISTER_SPACE 133 REGISTERS_STORE $sp 60 134 61 135 jal exception 62 136 nop 63 137 64 REGISTERS_LOAD $ 2965 add $ 29, STACK_SPACE138 REGISTERS_LOAD $sp 139 add $sp, REGISTER_SPACE 66 140 67 141 eret 142 nop 68 143 144 .org KA2PA(0x80000300) 145 kernel_image_start: 146 /* Load temporary stack */ 147 lui $sp, (TEMP_STACK_START + TEMP_STACK_SIZE) >> 16 148 ori $sp, (TEMP_STACK_START + TEMP_STACK_SIZE) & 0xffff 149 150 /* Not sure about this, but might be needed for PIC code???? */ 151 lui $gp, 0x8000 152 153 jal main_bsp 154 nop 155 156 .org KA2PA(TEMP_STACK_START) 157 .space TEMP_STACK_SIZE 158 69 159 tlb_refill_handler: 70 sub $ 29, STACK_SPACE71 REGISTERS_STORE $ 29160 sub $sp, REGISTER_SPACE 161 REGISTERS_STORE $sp 72 162 73 163 jal tlb_refill 74 164 nop 75 165 76 REGISTERS_LOAD $ 2977 add $ 29, STACK_SPACE166 REGISTERS_LOAD $sp 167 add $sp, REGISTER_SPACE 78 168 79 169 eret 170 nop 80 171 81 172 cache_error_handler: 82 sub $ 29, STACK_SPACE83 REGISTERS_STORE $ 29173 sub $sp, REGISTER_SPACE 174 REGISTERS_STORE $sp 84 175 85 176 jal cache_error 86 177 nop 87 178 88 REGISTERS_LOAD $ 2989 add $ 29, STACK_SPACE179 REGISTERS_LOAD $sp 180 add $sp, REGISTER_SPACE 90 181 91 182 eret 183 nop
Note:
See TracChangeset
for help on using the changeset viewer.
