aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/entry.S
diff options
context:
space:
mode:
authorMark Rutland <mark.rutland@arm.com>2014-11-24 07:31:40 -0500
committerMark Rutland <mark.rutland@arm.com>2015-01-15 07:24:15 -0500
commitaed40e0144bdbdadb45f2b623e07aa3157eb74c9 (patch)
treebc05d0df58e856feca64dfa966e1204eeb00ef20 /arch/arm64/kernel/entry.S
parentcf99a48dce66b126391bb33c7709892d3d8002d7 (diff)
arm64: move to ESR_ELx macros
Now that we have common ESR_ELx_* macros, move the core arm64 code over to them. There should be no functional change as a result of this patch. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> Cc: Marc Zyngier <marc.zyngier@arm.com> Cc: Peter Maydell <peter.maydell@linaro.org> Cc: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel/entry.S')
-rw-r--r--arch/arm64/kernel/entry.S64
1 files changed, 32 insertions, 32 deletions
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S
index fd4fa374e5d2..02e6af117762 100644
--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
@@ -269,18 +269,18 @@ ENDPROC(el1_error_invalid)
269el1_sync: 269el1_sync:
270 kernel_entry 1 270 kernel_entry 1
271 mrs x1, esr_el1 // read the syndrome register 271 mrs x1, esr_el1 // read the syndrome register
272 lsr x24, x1, #ESR_EL1_EC_SHIFT // exception class 272 lsr x24, x1, #ESR_ELx_EC_SHIFT // exception class
273 cmp x24, #ESR_EL1_EC_DABT_EL1 // data abort in EL1 273 cmp x24, #ESR_ELx_EC_DABT_CUR // data abort in EL1
274 b.eq el1_da 274 b.eq el1_da
275 cmp x24, #ESR_EL1_EC_SYS64 // configurable trap 275 cmp x24, #ESR_ELx_EC_SYS64 // configurable trap
276 b.eq el1_undef 276 b.eq el1_undef
277 cmp x24, #ESR_EL1_EC_SP_ALIGN // stack alignment exception 277 cmp x24, #ESR_ELx_EC_SP_ALIGN // stack alignment exception
278 b.eq el1_sp_pc 278 b.eq el1_sp_pc
279 cmp x24, #ESR_EL1_EC_PC_ALIGN // pc alignment exception 279 cmp x24, #ESR_ELx_EC_PC_ALIGN // pc alignment exception
280 b.eq el1_sp_pc 280 b.eq el1_sp_pc
281 cmp x24, #ESR_EL1_EC_UNKNOWN // unknown exception in EL1 281 cmp x24, #ESR_ELx_EC_UNKNOWN // unknown exception in EL1
282 b.eq el1_undef 282 b.eq el1_undef
283 cmp x24, #ESR_EL1_EC_BREAKPT_EL1 // debug exception in EL1 283 cmp x24, #ESR_ELx_EC_BREAKPT_CUR // debug exception in EL1
284 b.ge el1_dbg 284 b.ge el1_dbg
285 b el1_inv 285 b el1_inv
286el1_da: 286el1_da:
@@ -318,7 +318,7 @@ el1_dbg:
318 /* 318 /*
319 * Debug exception handling 319 * Debug exception handling
320 */ 320 */
321 cmp x24, #ESR_EL1_EC_BRK64 // if BRK64 321 cmp x24, #ESR_ELx_EC_BRK64 // if BRK64
322 cinc x24, x24, eq // set bit '0' 322 cinc x24, x24, eq // set bit '0'
323 tbz x24, #0, el1_inv // EL1 only 323 tbz x24, #0, el1_inv // EL1 only
324 mrs x0, far_el1 324 mrs x0, far_el1
@@ -375,26 +375,26 @@ el1_preempt:
375el0_sync: 375el0_sync:
376 kernel_entry 0 376 kernel_entry 0
377 mrs x25, esr_el1 // read the syndrome register 377 mrs x25, esr_el1 // read the syndrome register
378 lsr x24, x25, #ESR_EL1_EC_SHIFT // exception class 378 lsr x24, x25, #ESR_ELx_EC_SHIFT // exception class
379 cmp x24, #ESR_EL1_EC_SVC64 // SVC in 64-bit state 379 cmp x24, #ESR_ELx_EC_SVC64 // SVC in 64-bit state
380 b.eq el0_svc 380 b.eq el0_svc
381 cmp x24, #ESR_EL1_EC_DABT_EL0 // data abort in EL0 381 cmp x24, #ESR_ELx_EC_DABT_LOW // data abort in EL0
382 b.eq el0_da 382 b.eq el0_da
383 cmp x24, #ESR_EL1_EC_IABT_EL0 // instruction abort in EL0 383 cmp x24, #ESR_ELx_EC_IABT_LOW // instruction abort in EL0
384 b.eq el0_ia 384 b.eq el0_ia
385 cmp x24, #ESR_EL1_EC_FP_ASIMD // FP/ASIMD access 385 cmp x24, #ESR_ELx_EC_FP_ASIMD // FP/ASIMD access
386 b.eq el0_fpsimd_acc 386 b.eq el0_fpsimd_acc
387 cmp x24, #ESR_EL1_EC_FP_EXC64 // FP/ASIMD exception 387 cmp x24, #ESR_ELx_EC_FP_EXC64 // FP/ASIMD exception
388 b.eq el0_fpsimd_exc 388 b.eq el0_fpsimd_exc
389 cmp x24, #ESR_EL1_EC_SYS64 // configurable trap 389 cmp x24, #ESR_ELx_EC_SYS64 // configurable trap
390 b.eq el0_undef 390 b.eq el0_undef
391 cmp x24, #ESR_EL1_EC_SP_ALIGN // stack alignment exception 391 cmp x24, #ESR_ELx_EC_SP_ALIGN // stack alignment exception
392 b.eq el0_sp_pc 392 b.eq el0_sp_pc
393 cmp x24, #ESR_EL1_EC_PC_ALIGN // pc alignment exception 393 cmp x24, #ESR_ELx_EC_PC_ALIGN // pc alignment exception
394 b.eq el0_sp_pc 394 b.eq el0_sp_pc
395 cmp x24, #ESR_EL1_EC_UNKNOWN // unknown exception in EL0 395 cmp x24, #ESR_ELx_EC_UNKNOWN // unknown exception in EL0
396 b.eq el0_undef 396 b.eq el0_undef
397 cmp x24, #ESR_EL1_EC_BREAKPT_EL0 // debug exception in EL0 397 cmp x24, #ESR_ELx_EC_BREAKPT_LOW // debug exception in EL0
398 b.ge el0_dbg 398 b.ge el0_dbg
399 b el0_inv 399 b el0_inv
400 400
@@ -403,30 +403,30 @@ el0_sync:
403el0_sync_compat: 403el0_sync_compat:
404 kernel_entry 0, 32 404 kernel_entry 0, 32
405 mrs x25, esr_el1 // read the syndrome register 405 mrs x25, esr_el1 // read the syndrome register
406 lsr x24, x25, #ESR_EL1_EC_SHIFT // exception class 406 lsr x24, x25, #ESR_ELx_EC_SHIFT // exception class
407 cmp x24, #ESR_EL1_EC_SVC32 // SVC in 32-bit state 407 cmp x24, #ESR_ELx_EC_SVC32 // SVC in 32-bit state
408 b.eq el0_svc_compat 408 b.eq el0_svc_compat
409 cmp x24, #ESR_EL1_EC_DABT_EL0 // data abort in EL0 409 cmp x24, #ESR_ELx_EC_DABT_LOW // data abort in EL0
410 b.eq el0_da 410 b.eq el0_da
411 cmp x24, #ESR_EL1_EC_IABT_EL0 // instruction abort in EL0 411 cmp x24, #ESR_ELx_EC_IABT_LOW // instruction abort in EL0
412 b.eq el0_ia 412 b.eq el0_ia
413 cmp x24, #ESR_EL1_EC_FP_ASIMD // FP/ASIMD access 413 cmp x24, #ESR_ELx_EC_FP_ASIMD // FP/ASIMD access
414 b.eq el0_fpsimd_acc 414 b.eq el0_fpsimd_acc
415 cmp x24, #ESR_EL1_EC_FP_EXC32 // FP/ASIMD exception 415 cmp x24, #ESR_ELx_EC_FP_EXC32 // FP/ASIMD exception
416 b.eq el0_fpsimd_exc 416 b.eq el0_fpsimd_exc
417 cmp x24, #ESR_EL1_EC_UNKNOWN // unknown exception in EL0 417 cmp x24, #ESR_ELx_EC_UNKNOWN // unknown exception in EL0
418 b.eq el0_undef 418 b.eq el0_undef
419 cmp x24, #ESR_EL1_EC_CP15_32 // CP15 MRC/MCR trap 419 cmp x24, #ESR_ELx_EC_CP15_32 // CP15 MRC/MCR trap
420 b.eq el0_undef 420 b.eq el0_undef
421 cmp x24, #ESR_EL1_EC_CP15_64 // CP15 MRRC/MCRR trap 421 cmp x24, #ESR_ELx_EC_CP15_64 // CP15 MRRC/MCRR trap
422 b.eq el0_undef 422 b.eq el0_undef
423 cmp x24, #ESR_EL1_EC_CP14_MR // CP14 MRC/MCR trap 423 cmp x24, #ESR_ELx_EC_CP14_MR // CP14 MRC/MCR trap
424 b.eq el0_undef 424 b.eq el0_undef
425 cmp x24, #ESR_EL1_EC_CP14_LS // CP14 LDC/STC trap 425 cmp x24, #ESR_ELx_EC_CP14_LS // CP14 LDC/STC trap
426 b.eq el0_undef 426 b.eq el0_undef
427 cmp x24, #ESR_EL1_EC_CP14_64 // CP14 MRRC/MCRR trap 427 cmp x24, #ESR_ELx_EC_CP14_64 // CP14 MRRC/MCRR trap
428 b.eq el0_undef 428 b.eq el0_undef
429 cmp x24, #ESR_EL1_EC_BREAKPT_EL0 // debug exception in EL0 429 cmp x24, #ESR_ELx_EC_BREAKPT_LOW // debug exception in EL0
430 b.ge el0_dbg 430 b.ge el0_dbg
431 b el0_inv 431 b el0_inv
432el0_svc_compat: 432el0_svc_compat: