aarch64: run control rework
This patch contains a major overhaul of the target run control, mainly for the sake of satisfying gdbs ideas of how a target should respond to various control requests for the debugger. The changes allow gdb a slightly better control on how cores are stepped: a core can be single-stepped while other cores remain halted or continue normal execution until the single-stepped core halts again. Also, on any halting event (user command or breakpoint) the system is brought into a stable state with all cores halted before the halt is signaled to the debugger. This patch also transitions the target code to make use of the new CTI abstraction instead of accessing CTI registers directly. Change-Id: I8ddc9abb119e04580d671b57ee12240c3f5070a0 Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com> Reviewed-on: http://openocd.zylin.com/3993 Tested-by: jenkins Reviewed-by: Paul Fertser <fercerpav@gmail.com>
This commit is contained in:
committed by
Paul Fertser
parent
e513fe949b
commit
bf1efe05bb
@@ -96,7 +96,7 @@ void armv8_dpm_report_wfar(struct arm_dpm *, uint64_t wfar);
|
||||
#define DRCR_RESTART (1 << 1)
|
||||
#define DRCR_CLEAR_EXCEPTIONS (1 << 2)
|
||||
|
||||
/* PRCR (processor debug status register) bits */
|
||||
/* PRSR (processor debug status register) bits */
|
||||
#define PRSR_PU (1 << 0)
|
||||
#define PRSR_SPD (1 << 1)
|
||||
#define PRSR_RESET (1 << 2)
|
||||
@@ -110,6 +110,11 @@ void armv8_dpm_report_wfar(struct arm_dpm *, uint64_t wfar);
|
||||
#define PRSR_SPMAD (1 << 10)
|
||||
#define PRSR_SDR (1 << 11)
|
||||
|
||||
/* PRCR (processor debug control register) bits */
|
||||
#define PRCR_CORENPDRQ (1 << 0)
|
||||
#define PRCR_CWRR (1 << 2)
|
||||
#define PRCR_COREPURQ (1 << 3)
|
||||
|
||||
void armv8_dpm_report_dscr(struct arm_dpm *dpm, uint32_t dcsr);
|
||||
void armv8_dpm_handle_exception(struct arm_dpm *dpm);
|
||||
enum arm_state armv8_dpm_get_core_state(struct arm_dpm *dpm);
|
||||
|
||||
Reference in New Issue
Block a user