arm_opcode: Add support for ARM MCRR/MRRC
Add support for the ARM MCRR/MRRC instructions which require the use of two registers to transfer a 64-bit co-processor registers. We are going to use this in a subsequent patch in order to properly dump 64-bit page table descriptors that exist on ARMv7A with VMSA extensions. We make use of r0 and r1 to transfer 64-bit quantities to/from DCC. Change-Id: Ic4975026c1ae4f2853795575ac7701d541248736 Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Michael Chalfant <michael.chalfant@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/5228 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
committed by
Antonio Borneo
parent
1bc4182ceb
commit
d27a3a00b8
@@ -72,6 +72,12 @@ struct arm_dpm {
|
||||
int (*instr_write_data_r0)(struct arm_dpm *dpm,
|
||||
uint32_t opcode, uint32_t data);
|
||||
|
||||
/**
|
||||
* Runs two instructions, writing data to R0 and R1 before execution.
|
||||
*/
|
||||
int (*instr_write_data_r0_r1)(struct arm_dpm *dpm,
|
||||
uint32_t opcode, uint64_t data);
|
||||
|
||||
/** Runs one instruction, writing data to R0 before execution. */
|
||||
int (*instr_write_data_r0_64)(struct arm_dpm *dpm,
|
||||
uint32_t opcode, uint64_t data);
|
||||
@@ -92,6 +98,13 @@ struct arm_dpm {
|
||||
int (*instr_read_data_r0)(struct arm_dpm *dpm,
|
||||
uint32_t opcode, uint32_t *data);
|
||||
|
||||
/**
|
||||
* Runs two instructions, reading data from r0 and r1 after
|
||||
* execution.
|
||||
*/
|
||||
int (*instr_read_data_r0_r1)(struct arm_dpm *dpm,
|
||||
uint32_t opcode, uint64_t *data);
|
||||
|
||||
int (*instr_read_data_r0_64)(struct arm_dpm *dpm,
|
||||
uint32_t opcode, uint64_t *data);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user