diff options
author | Mark Rutland <mark.rutland@arm.com> | 2014-11-24 07:31:40 -0500 |
---|---|---|
committer | Mark Rutland <mark.rutland@arm.com> | 2015-01-15 07:24:15 -0500 |
commit | aed40e0144bdbdadb45f2b623e07aa3157eb74c9 (patch) | |
tree | bc05d0df58e856feca64dfa966e1204eeb00ef20 /arch/arm64/kernel/entry.S | |
parent | cf99a48dce66b126391bb33c7709892d3d8002d7 (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.S | 64 |
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) | |||
269 | el1_sync: | 269 | el1_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 |
286 | el1_da: | 286 | el1_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: | |||
375 | el0_sync: | 375 | el0_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: | |||
403 | el0_sync_compat: | 403 | el0_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 |
432 | el0_svc_compat: | 432 | el0_svc_compat: |