mirror of
https://github.com/torvalds/linux.git
synced 2026-06-08 22:52:35 +02:00
firmware: rockchip: use 'nsec_ctx->und_lr' to deliver fiq break point's PC
'nsec_ctx->mon_lr' is not the fiq break point's PC, because it will be override as 'sip_fiq_debugger_uart_irq_tf_cb' for optee-os to jump to fiq_debugger handler. As 'nsec_ctx->und_lr' is not used for kernel, optee-os uses it to deliver fiq break point's PC. Change-Id: I5a831638e8228766d03d92674e3e29facdd116f8 Signed-off-by: chenjh <chenjh@rock-chips.com>
This commit is contained in:
parent
3ea271934d
commit
29e959968f
|
|
@ -172,8 +172,18 @@ static struct pt_regs sip_fiq_debugger_get_pt_regs(void *reg_base,
|
|||
fiq_pt_regs.ARM_ip = nsec_ctx->r12;
|
||||
fiq_pt_regs.ARM_sp = nsec_ctx->svc_sp;
|
||||
fiq_pt_regs.ARM_lr = nsec_ctx->svc_lr;
|
||||
fiq_pt_regs.ARM_pc = nsec_ctx->mon_lr;
|
||||
fiq_pt_regs.ARM_cpsr = nsec_ctx->mon_spsr;
|
||||
|
||||
/*
|
||||
* 'nsec_ctx->mon_lr' is not the fiq break point's PC, because it will
|
||||
* be override as 'psci_fiq_debugger_uart_irq_tf_cb' for optee-os to
|
||||
* jump to fiq_debugger handler.
|
||||
*
|
||||
* As 'nsec_ctx->und_lr' is not used for kernel, so optee-os uses it to
|
||||
* deliver fiq break point's PC.
|
||||
*
|
||||
*/
|
||||
fiq_pt_regs.ARM_pc = nsec_ctx->und_lr;
|
||||
#endif
|
||||
|
||||
return fiq_pt_regs;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user