Changeset 1b20da0 in mainline for kernel/arch/ia64/src
- Timestamp:
- 2018-02-28T17:52:03Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3061bc1
- Parents:
- df6ded8
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:26:03)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:52:03)
- Location:
- kernel/arch/ia64/src
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/asm.S
rdf6ded8 r1b20da0 65 65 1: 66 66 67 add r14 = r16, in1 67 add r14 = r16, in1 68 68 add r15 = r16, in0 69 69 adds r17 = 1, r17 ;; … … 113 113 add in0 = r14, in0 114 114 adds r15 = -1, r15 115 add r17 = r14, in1 115 add r17 = r14, in1 116 116 (p6) br.cond.dpnt 2b ;; 117 117 mov ar.lc = r15 -
kernel/arch/ia64/src/context.S
rdf6ded8 r1b20da0 44 44 */ 45 45 flushrs 46 mov loc4 = ar.bsp 46 mov loc4 = ar.bsp 47 47 48 48 /* … … 240 240 ld8 loc6 = [loc15] /* load ar.lc */ 241 241 242 .auto 242 .auto 243 243 244 244 /* … … 286 286 ld8.fill r13 = [loc22] ;; 287 287 288 /* 288 /* 289 289 * Restore branch registers 290 290 */ -
kernel/arch/ia64/src/fpu_context.c
rdf6ded8 r1b20da0 27 27 */ 28 28 29 /** @addtogroup ia64 29 /** @addtogroup ia64 30 30 * @{ 31 31 */ … … 71 71 "stf.spill %[f60] = f60\n" 72 72 "stf.spill %[f61] = f61\n" 73 : 73 : 74 74 [f32] "=m" (fctx->fr[0]), 75 75 [f33] "=m" (fctx->fr[1]), … … 102 102 [f60] "=m" (fctx->fr[28]), 103 103 [f61] "=m" (fctx->fr[29]) 104 ); 104 ); 105 105 106 106 asm volatile ( … … 313 313 [f60] "m" (fctx->fr[28]), 314 314 [f61] "m" (fctx->fr[29]) 315 ); 315 ); 316 316 317 317 asm volatile ( -
kernel/arch/ia64/src/ia64.c
rdf6ded8 r1b20da0 114 114 myeid = ia64_get_cpu_eid(); 115 115 116 for (i = 0; i < 16; i++) { 116 for (i = 0; i < 16; i++) { 117 117 if (i == 2) 118 118 continue; /* Disable Cascade interrupt */ … … 140 140 irq_init(INR_COUNT, INR_COUNT); 141 141 } 142 it_init(); 142 it_init(); 143 143 } 144 144 -
kernel/arch/ia64/src/interrupt.c
rdf6ded8 r1b20da0 320 320 vector_to_string(EXC_INST_A_BIT_FAULT), true, 321 321 instruction_access_bit_fault); 322 exc_register(EXC_DATA_A_BIT_FAULT, 322 exc_register(EXC_DATA_A_BIT_FAULT, 323 323 vector_to_string(EXC_DATA_A_BIT_FAULT), true, 324 324 data_access_bit_fault); -
kernel/arch/ia64/src/ivt.S
rdf6ded8 r1b20da0 48 48 49 49 /* Speculation vector handler */ 50 .macro SPECULATION_VECTOR_HANDLER vector 50 .macro SPECULATION_VECTOR_HANDLER vector 51 51 .org ivt + \vector * 0x100 52 52 … … 111 111 /* Set up FPU as in interrupted context. */ 112 112 mov r24 = psr 113 mov r25 = cr.ipsr 113 mov r25 = cr.ipsr 114 114 mov r26 = PSR_DFH_MASK 115 115 mov r27 = ~PSR_DFH_MASK ;; … … 175 175 (p6) st8 [r31] = r38, -STACK_ITEM_SIZE ;; /* save in6 */ 176 176 (p6) st8 [r31] = r37, -STACK_ITEM_SIZE ;; /* save in5 */ 177 (p6) st8 [r31] = r36, -STACK_ITEM_SIZE ;; /* save in4 */ 177 (p6) st8 [r31] = r36, -STACK_ITEM_SIZE ;; /* save in4 */ 178 178 (p6) st8 [r31] = r35, -STACK_ITEM_SIZE ;; /* save in3 */ 179 179 (p6) st8 [r31] = r34, -STACK_ITEM_SIZE ;; /* save in2 */ … … 182 182 (p5) add r31 = -(7 * STACK_ITEM_SIZE), r31 ;; 183 183 184 st8 [r31] = r30, -STACK_ITEM_SIZE ;; /* save old stack pointer */ 184 st8 [r31] = r30, -STACK_ITEM_SIZE ;; /* save old stack pointer */ 185 185 186 186 st8 [r31] = r29, -STACK_ITEM_SIZE ;; /* save predicate registers */ … … 250 250 mov r24 = ar.rsc ;; 251 251 and r30 = ~3, r24 ;; 252 or r24 = r30 , r27 ;; 252 or r24 = r30 , r27 ;; 253 253 mov ar.rsc = r24 ;; /* place RSE in enforced lazy mode */ 254 254 … … 264 264 265 265 mov ar.pfs = r25 /* (step 6) */ 266 mov cr.ifs = r26 266 mov cr.ifs = r26 267 267 268 268 mov ar.rsc = r24 /* (step 7) */ 269 269 270 270 /* 17. restore interruption state from memory stack */ 271 ld8 r28 = [r31], +STACK_ITEM_SIZE ;; /* load cr.ifa */ 271 ld8 r28 = [r31], +STACK_ITEM_SIZE ;; /* load cr.ifa */ 272 272 ld8 r27 = [r31], +STACK_ITEM_SIZE ;; /* load cr.isr */ 273 273 ld8 r26 = [r31], +STACK_ITEM_SIZE ;; /* load cr.iipa */ … … 294 294 295 295 /* 19. return from interruption */ 296 ld8 r12 = [r31] /* load stack pointer */ 296 ld8 r12 = [r31] /* load stack pointer */ 297 297 rfi ;; 298 298 … … 391 391 stf.spill [r31] = f15, 8 * FLOAT_ITEM_SIZE ;; 392 392 393 stf.spill [r24] = f16, 8 * FLOAT_ITEM_SIZE 393 stf.spill [r24] = f16, 8 * FLOAT_ITEM_SIZE 394 394 stf.spill [r25] = f17, 8 * FLOAT_ITEM_SIZE 395 395 stf.spill [r26] = f18, 8 * FLOAT_ITEM_SIZE … … 503 503 mov r24 = loc39 504 504 mov r25 = loc40 505 mov r26 = loc41 505 mov r26 = loc41 506 506 mov r27 = loc42 507 507 mov r28 = loc43 … … 575 575 HEAVYWEIGHT_HANDLER 0x5b 576 576 HEAVYWEIGHT_HANDLER 0x5c 577 HEAVYWEIGHT_HANDLER 0x5d 577 HEAVYWEIGHT_HANDLER 0x5d 578 578 HEAVYWEIGHT_HANDLER 0x5e 579 579 HEAVYWEIGHT_HANDLER 0x5f -
kernel/arch/ia64/src/mm/km.c
rdf6ded8 r1b20da0 40 40 { 41 41 config.identity_base = KM_IA64_IDENTITY_START; 42 config.identity_size = KM_IA64_IDENTITY_SIZE; 42 config.identity_size = KM_IA64_IDENTITY_SIZE; 43 43 } 44 44 -
kernel/arch/ia64/src/mm/page.c
rdf6ded8 r1b20da0 85 85 } 86 86 87 #ifdef CONFIG_VHPT 87 #ifdef CONFIG_VHPT 88 88 vhpt_base = vhpt_set_up(); 89 89 #endif … … 193 193 srlz_d(); 194 194 195 return match; 195 return match; 196 196 } 197 197 … … 247 247 v->present.pl = (flags & PAGE_USER) ? PL_USER : PL_KERNEL; 248 248 v->present.ar = (flags & PAGE_WRITE) ? AR_WRITE : AR_READ; 249 v->present.ar |= (flags & PAGE_EXEC) ? AR_EXECUTE : 0; 249 v->present.ar |= (flags & PAGE_EXEC) ? AR_EXECUTE : 0; 250 250 v->present.ppn = frame >> PPN_SHIFT; 251 251 v->present.ed = false; /* exception not deffered */ -
kernel/arch/ia64/src/mm/tlb.c
rdf6ded8 r1b20da0 593 593 if (va < end_of_identity) { 594 594 /* 595 * Create kernel identity mapping for low memory. 595 * Create kernel identity mapping for low memory. 596 596 */ 597 597 dtlb_kernel_mapping_insert(va, KA2PA(va), false, 0); -
kernel/arch/ia64/src/start.S
rdf6ded8 r1b20da0 122 122 # (i.e. location of interruption vector table) 123 123 # 124 movl r8 = ivt ;; 124 movl r8 = ivt ;; 125 125 mov cr.iva = r8 126 srlz.d ;; 126 srlz.d ;; 127 127 128 128
Note:
See TracChangeset
for help on using the changeset viewer.