arm_dpm: Add 64bit register handling.

Add various function to read/write ARMv8 registers.

Change-Id: I16f2829bdd0e87b050a51e414ff675d5c21bcbae
Signed-off-by: David Ung <david.ung.42@gmail.com>
Signed-off-by: Matthias Welwarsky <matthias.welwarsky@sysgo.com>
This commit is contained in:
David Ung
2015-01-16 18:04:06 -08:00
committed by Matthias Welwarsky
parent 9cbfc9feb3
commit 84a0bb4a3c
2 changed files with 297 additions and 126 deletions

View File

@@ -86,10 +86,19 @@ struct arm_dpm {
int (*instr_read_data_dcc)(struct arm_dpm *,
uint32_t opcode, uint32_t *data);
int (*instr_read_data_dcc_64)(struct arm_dpm *,
uint32_t opcode, uint64_t *data);
/** Runs one instruction, reading data from r0 after execution. */
int (*instr_read_data_r0)(struct arm_dpm *,
uint32_t opcode, uint32_t *data);
int (*instr_read_data_r0_64)(struct arm_dpm *,
uint32_t opcode, uint64_t *data);
struct reg *(*arm_reg_current)(struct arm *arm,
unsigned regnum);
/* BREAKPOINT/WATCHPOINT SUPPORT */
/**
@@ -131,6 +140,7 @@ int arm_dpm_setup(struct arm_dpm *dpm);
int arm_dpm_initialize(struct arm_dpm *dpm);
int arm_dpm_read_current_registers(struct arm_dpm *);
int arm_dpm_read_current_registers_64(struct arm_dpm *);
int dpm_modeswitch(struct arm_dpm *dpm, enum arm_mode mode);