From: Spencer O. <nt...@us...> - 2010-01-07 23:41:17
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 991d030fcc9be971f29498ea7e1b3afbed05815b (commit) via c68c2751f309103cc7116464e6c3242d54c1007b (commit) via 2d450b90333b01fbd85570e5d881c3a795038744 (commit) from 2bc7446bb8caf751f7d6900af26384f6c64cc791 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 991d030fcc9be971f29498ea7e1b3afbed05815b Author: Spencer Oliver <nt...@us...> Date: Thu Jan 7 22:39:35 2010 +0000 MIPS: change bulk_write_memory fallback msg to LOG_DEBUG Signed-off-by: Spencer Oliver <nt...@us...> diff --git a/src/target/mips_m4k.c b/src/target/mips_m4k.c index 312fc09..f229690 100644 --- a/src/target/mips_m4k.c +++ b/src/target/mips_m4k.c @@ -1004,7 +1004,7 @@ int mips_m4k_bulk_write_memory(struct target *target, uint32_t address, uint32_t if (retval != ERROR_OK) { /* FASTDATA access failed, try normal memory write */ - LOG_WARNING("Fastdata access Failed, falling back to non-bulk write"); + LOG_DEBUG("Fastdata access Failed, falling back to non-bulk write"); retval = mips_m4k_write_memory(target, address, 4, count, buffer); } commit c68c2751f309103cc7116464e6c3242d54c1007b Author: Spencer Oliver <nt...@us...> Date: Thu Jan 7 20:56:07 2010 +0000 MIPS: whitespace cleanup Signed-off-by: Spencer Oliver <nt...@us...> diff --git a/src/target/mips32.h b/src/target/mips32.h index 9ad5293..4fe61bc 100644 --- a/src/target/mips32.h +++ b/src/target/mips32.h @@ -123,7 +123,7 @@ struct mips32_core_reg /* ejtag specific instructions */ #define MIPS32_DRET 0x4200001F #define MIPS32_SDBBP 0x7000003F -#define MIPS16_SDBBP 0xE801 +#define MIPS16_SDBBP 0xE801 int mips32_arch_state(struct target *target); diff --git a/src/target/mips32_pracc.c b/src/target/mips32_pracc.c index ac1d1b3..52d31bd 100644 --- a/src/target/mips32_pracc.c +++ b/src/target/mips32_pracc.c @@ -288,37 +288,37 @@ int mips32_pracc_read_mem32(struct mips_ejtag *ejtag_info, uint32_t addr, int co static const uint32_t code[] = { /* start: */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(8,0,15), /* sw $8,($15) */ - MIPS32_SW(9,0,15), /* sw $9,($15) */ - MIPS32_SW(10,0,15), /* sw $10,($15) */ - MIPS32_SW(11,0,15), /* sw $11,($15) */ + MIPS32_SW(8,0,15), /* sw $8,($15) */ + MIPS32_SW(9,0,15), /* sw $9,($15) */ + MIPS32_SW(10,0,15), /* sw $10,($15) */ + MIPS32_SW(11,0,15), /* sw $11,($15) */ MIPS32_LUI(8,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $8 = MIPS32_PRACC_PARAM_IN */ MIPS32_ORI(8,8,LOWER16(MIPS32_PRACC_PARAM_IN)), MIPS32_LW(9,0,8), /* $9 = mem[$8]; read addr */ MIPS32_LW(10,4,8), /* $10 = mem[$8 + 4]; read count */ - MIPS32_LUI(11,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $11 = MIPS32_PRACC_PARAM_OUT */ + MIPS32_LUI(11,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $11 = MIPS32_PRACC_PARAM_OUT */ MIPS32_ORI(11,11,LOWER16(MIPS32_PRACC_PARAM_OUT)), /* loop: */ MIPS32_BEQ(0,10,8), /* beq 0, $10, end */ MIPS32_NOP, - MIPS32_LW(8,0,9), /* lw $8,0($9), Load $8 with the word @mem[$9] */ - MIPS32_SW(8,0,11), /* sw $8,0($11) */ + MIPS32_LW(8,0,9), /* lw $8,0($9), Load $8 with the word @mem[$9] */ + MIPS32_SW(8,0,11), /* sw $8,0($11) */ - MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ - MIPS32_ADDI(9,9,4), /* $1 += 4 */ - MIPS32_ADDI(11,11,4), /* $11 += 4 */ + MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ + MIPS32_ADDI(9,9,4), /* $1 += 4 */ + MIPS32_ADDI(11,11,4), /* $11 += 4 */ MIPS32_B(NEG16(8)), /* b loop */ MIPS32_NOP, /* end: */ - MIPS32_LW(11,0,15), /* lw $11,($15) */ - MIPS32_LW(10,0,15), /* lw $10,($15) */ - MIPS32_LW(9,0,15), /* lw $9,($15) */ - MIPS32_LW(8,0,15), /* lw $8,($15) */ + MIPS32_LW(11,0,15), /* lw $11,($15) */ + MIPS32_LW(10,0,15), /* lw $10,($15) */ + MIPS32_LW(9,0,15), /* lw $9,($15) */ + MIPS32_LW(8,0,15), /* lw $8,($15) */ MIPS32_B(NEG16(27)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; @@ -358,16 +358,16 @@ int mips32_pracc_read_u32(struct mips_ejtag *ejtag_info, uint32_t addr, uint32_t static const uint32_t code[] = { /* start: */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(8,0,15), /* sw $8,($15) */ + MIPS32_SW(8,0,15), /* sw $8,($15) */ MIPS32_LW(8,NEG16(MIPS32_PRACC_STACK-MIPS32_PRACC_PARAM_IN),15), /* load R8 @ param_in[0] = address */ - MIPS32_LW(8,0,8), /* lw $8,0($8), Load $8 with the word @mem[$8] */ + MIPS32_LW(8,0,8), /* lw $8,0($8), Load $8 with the word @mem[$8] */ MIPS32_SW(8,NEG16(MIPS32_PRACC_STACK-MIPS32_PRACC_PARAM_OUT),15), /* store R8 @ param_out[0] */ - MIPS32_LW(8,0,15), /* lw $8,($15) */ + MIPS32_LW(8,0,15), /* lw $8,($15) */ MIPS32_B(NEG16(9)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; @@ -391,12 +391,12 @@ int mips32_pracc_read_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int co static const uint32_t code[] = { /* start: */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(8,0,15), /* sw $8,($15) */ - MIPS32_SW(9,0,15), /* sw $9,($15) */ - MIPS32_SW(10,0,15), /* sw $10,($15) */ - MIPS32_SW(11,0,15), /* sw $11,($15) */ + MIPS32_SW(8,0,15), /* sw $8,($15) */ + MIPS32_SW(9,0,15), /* sw $9,($15) */ + MIPS32_SW(10,0,15), /* sw $10,($15) */ + MIPS32_SW(11,0,15), /* sw $11,($15) */ MIPS32_LUI(8,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $8 = MIPS32_PRACC_PARAM_IN */ MIPS32_ORI(8,8,LOWER16(MIPS32_PRACC_PARAM_IN)), @@ -405,22 +405,22 @@ int mips32_pracc_read_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int co MIPS32_LUI(11,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $11 = MIPS32_PRACC_PARAM_OUT */ MIPS32_ORI(11,11,LOWER16(MIPS32_PRACC_PARAM_OUT)), /* loop: */ - MIPS32_BEQ(0,10,8), /* beq 0, $10, end */ + MIPS32_BEQ(0,10,8), /* beq 0, $10, end */ MIPS32_NOP, - MIPS32_LHU(8,0,9), /* lw $8,0($9), Load $8 with the halfword @mem[$9] */ - MIPS32_SW(8,0,11), /* sw $8,0($11) */ + MIPS32_LHU(8,0,9), /* lw $8,0($9), Load $8 with the halfword @mem[$9] */ + MIPS32_SW(8,0,11), /* sw $8,0($11) */ - MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ - MIPS32_ADDI(9,9,2), /* $9 += 2 */ - MIPS32_ADDI(11,11,4), /* $11 += 4 */ + MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ + MIPS32_ADDI(9,9,2), /* $9 += 2 */ + MIPS32_ADDI(11,11,4), /* $11 += 4 */ MIPS32_B(NEG16(8)), /* b loop */ MIPS32_NOP, /* end: */ - MIPS32_LW(11,0,15), /* lw $11,($15) */ - MIPS32_LW(10,0,15), /* lw $10,($15) */ - MIPS32_LW(9,0,15), /* lw $9,($15) */ - MIPS32_LW(8,0,15), /* lw $8,($15) */ + MIPS32_LW(11,0,15), /* lw $11,($15) */ + MIPS32_LW(10,0,15), /* lw $10,($15) */ + MIPS32_LW(9,0,15), /* lw $9,($15) */ + MIPS32_LW(8,0,15), /* lw $8,($15) */ MIPS32_B(NEG16(27)), /* b start */ MIPS32_MFC0(15,30,0), /* move COP0 DeSave to $15 */ }; @@ -468,36 +468,36 @@ int mips32_pracc_read_mem8(struct mips_ejtag *ejtag_info, uint32_t addr, int cou static const uint32_t code[] = { /* start: */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(8,0,15), /* sw $8,($15) */ - MIPS32_SW(9,0,15), /* sw $9,($15) */ - MIPS32_SW(10,0,15), /* sw $10,($15) */ - MIPS32_SW(11,0,15), /* sw $11,($15) */ + MIPS32_SW(8,0,15), /* sw $8,($15) */ + MIPS32_SW(9,0,15), /* sw $9,($15) */ + MIPS32_SW(10,0,15), /* sw $10,($15) */ + MIPS32_SW(11,0,15), /* sw $11,($15) */ - MIPS32_LUI(8,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $8 = MIPS32_PRACC_PARAM_IN */ + MIPS32_LUI(8,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $8 = MIPS32_PRACC_PARAM_IN */ MIPS32_ORI(8,8,LOWER16(MIPS32_PRACC_PARAM_IN)), - MIPS32_LW(9,0,8), /* $9 = mem[$8]; read addr */ - MIPS32_LW(10,4,8), /* $10 = mem[$8 + 4]; read count */ - MIPS32_LUI(11,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $11 = MIPS32_PRACC_PARAM_OUT */ + MIPS32_LW(9,0,8), /* $9 = mem[$8]; read addr */ + MIPS32_LW(10,4,8), /* $10 = mem[$8 + 4]; read count */ + MIPS32_LUI(11,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $11 = MIPS32_PRACC_PARAM_OUT */ MIPS32_ORI(11,11,LOWER16(MIPS32_PRACC_PARAM_OUT)), /* loop: */ - MIPS32_BEQ(0,10,8), /* beq 0, $10, end */ + MIPS32_BEQ(0,10,8), /* beq 0, $10, end */ MIPS32_NOP, - MIPS32_LBU(8,0,9), /* lw $8,0($9), Load t4 with the byte @mem[t1] */ - MIPS32_SW(8,0,11), /* sw $8,0($11) */ + MIPS32_LBU(8,0,9), /* lw $8,0($9), Load t4 with the byte @mem[t1] */ + MIPS32_SW(8,0,11), /* sw $8,0($11) */ - MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ - MIPS32_ADDI(9,9,1), /* $9 += 1 */ - MIPS32_ADDI(11,11,4), /* $11 += 4 */ + MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ + MIPS32_ADDI(9,9,1), /* $9 += 1 */ + MIPS32_ADDI(11,11,4), /* $11 += 4 */ MIPS32_B(NEG16(8)), /* b loop */ MIPS32_NOP, /* end: */ - MIPS32_LW(11,0,15), /* lw $11,($15) */ - MIPS32_LW(10,0,15), /* lw $10,($15) */ - MIPS32_LW(9,0,15), /* lw $9,($15) */ - MIPS32_LW(8,0,15), /* lw $8,($15) */ + MIPS32_LW(11,0,15), /* lw $11,($15) */ + MIPS32_LW(10,0,15), /* lw $10,($15) */ + MIPS32_LW(9,0,15), /* lw $9,($15) */ + MIPS32_LW(8,0,15), /* lw $8,($15) */ MIPS32_B(NEG16(27)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; @@ -563,31 +563,31 @@ int mips32_pracc_write_mem32(struct mips_ejtag *ejtag_info, uint32_t addr, int c static const uint32_t code[] = { /* start: */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(8,0,15), /* sw $8,($15) */ - MIPS32_SW(9,0,15), /* sw $9,($15) */ - MIPS32_SW(10,0,15), /* sw $10,($15) */ - MIPS32_SW(11,0,15), /* sw $11,($15) */ + MIPS32_SW(8,0,15), /* sw $8,($15) */ + MIPS32_SW(9,0,15), /* sw $9,($15) */ + MIPS32_SW(10,0,15), /* sw $10,($15) */ + MIPS32_SW(11,0,15), /* sw $11,($15) */ MIPS32_ADDI(8,15,NEG16(MIPS32_PRACC_STACK-MIPS32_PRACC_PARAM_IN)), /* $8= MIPS32_PRACC_PARAM_IN */ - MIPS32_LW(9,0,8), /* Load write addr to $9 */ + MIPS32_LW(9,0,8), /* Load write addr to $9 */ MIPS32_LW(10,4,8), /* Load write count to $10 */ MIPS32_ADDI(8,8,8), /* $8 += 8 beginning of data */ /* loop: */ - MIPS32_LW(11,0,8), /* lw $11,0($8), Load $11 with the word @mem[$8] */ - MIPS32_SW(11,0,9), /* sw $11,0($9) */ + MIPS32_LW(11,0,8), /* lw $11,0($8), Load $11 with the word @mem[$8] */ + MIPS32_SW(11,0,9), /* sw $11,0($9) */ - MIPS32_ADDI(9,9,4), /* $9 += 4 */ + MIPS32_ADDI(9,9,4), /* $9 += 4 */ MIPS32_BNE(10,9,NEG16(4)), /* bne $10, $9, loop */ MIPS32_ADDI(8,8,4), /* $8 += 4 */ /* end: */ - MIPS32_LW(11,0,15), /* lw $11,($15) */ - MIPS32_LW(10,0,15), /* lw $10,($15) */ - MIPS32_LW(9,0,15), /* lw $9,($15) */ - MIPS32_LW(8,0,15), /* lw $8,($15) */ + MIPS32_LW(11,0,15), /* lw $11,($15) */ + MIPS32_LW(10,0,15), /* lw $10,($15) */ + MIPS32_LW(9,0,15), /* lw $9,($15) */ + MIPS32_LW(8,0,15), /* lw $8,($15) */ MIPS32_B(NEG16(21)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; @@ -612,18 +612,18 @@ int mips32_pracc_write_u32(struct mips_ejtag *ejtag_info, uint32_t addr, uint32_ static const uint32_t code[] = { /* start: */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(8,0,15), /* sw $8,($15) */ - MIPS32_SW(9,0,15), /* sw $9,($15) */ + MIPS32_SW(8,0,15), /* sw $8,($15) */ + MIPS32_SW(9,0,15), /* sw $9,($15) */ MIPS32_LW(8,NEG16((MIPS32_PRACC_STACK-MIPS32_PRACC_PARAM_IN)-4), 15), /* load R8 @ param_in[1] = data */ MIPS32_LW(9,NEG16(MIPS32_PRACC_STACK-MIPS32_PRACC_PARAM_IN), 15), /* load R9 @ param_in[0] = address */ - MIPS32_SW(8,0,9), /* sw $8,0($9) */ + MIPS32_SW(8,0,9), /* sw $8,0($9) */ - MIPS32_LW(9,0,15), /* lw $9,($15) */ - MIPS32_LW(8,0,15), /* lw $8,($15) */ + MIPS32_LW(9,0,15), /* lw $9,($15) */ + MIPS32_LW(8,0,15), /* lw $8,($15) */ MIPS32_B(NEG16(11)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; @@ -644,36 +644,36 @@ int mips32_pracc_write_mem16(struct mips_ejtag *ejtag_info, uint32_t addr, int c static const uint32_t code[] = { /* start: */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(8,0,15), /* sw $8,($15) */ - MIPS32_SW(9,0,15), /* sw $9,($15) */ - MIPS32_SW(10,0,15), /* sw $10,($15) */ - MIPS32_SW(11,0,15), /* sw $11,($15) */ + MIPS32_SW(8,0,15), /* sw $8,($15) */ + MIPS32_SW(9,0,15), /* sw $9,($15) */ + MIPS32_SW(10,0,15), /* sw $10,($15) */ + MIPS32_SW(11,0,15), /* sw $11,($15) */ - MIPS32_LUI(8,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $8 = MIPS32_PRACC_PARAM_IN */ + MIPS32_LUI(8,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $8 = MIPS32_PRACC_PARAM_IN */ MIPS32_ORI(8,8,LOWER16(MIPS32_PRACC_PARAM_IN)), - MIPS32_LW(9,0,8), /* Load write addr to $9 */ - MIPS32_LW(10,4,8), /* Load write count to $10 */ - MIPS32_ADDI(8,8,8), /* $8 += 8 */ + MIPS32_LW(9,0,8), /* Load write addr to $9 */ + MIPS32_LW(10,4,8), /* Load write count to $10 */ + MIPS32_ADDI(8,8,8), /* $8 += 8 */ /* loop: */ MIPS32_BEQ(0,10,8), /* beq $0, $10, end */ MIPS32_NOP, - MIPS32_LW(11,0,8), /* lw $11,0($8), Load $11 with the word @mem[$8] */ - MIPS32_SH(11,0,9), /* sh $11,0($9) */ + MIPS32_LW(11,0,8), /* lw $11,0($8), Load $11 with the word @mem[$8] */ + MIPS32_SH(11,0,9), /* sh $11,0($9) */ - MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ - MIPS32_ADDI(9,9,2), /* $9 += 2 */ - MIPS32_ADDI(8,8,4), /* $8 += 4 */ + MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ + MIPS32_ADDI(9,9,2), /* $9 += 2 */ + MIPS32_ADDI(8,8,4), /* $8 += 4 */ MIPS32_B(NEG16(8)), /* b loop */ MIPS32_NOP, /* end: */ - MIPS32_LW(11,0,15), /* lw $11,($15) */ - MIPS32_LW(10,0,15), /* lw $10,($15) */ - MIPS32_LW(9,0,15), /* lw $9,($15) */ - MIPS32_LW(8,0,15), /* lw $8,($15) */ + MIPS32_LW(11,0,15), /* lw $11,($15) */ + MIPS32_LW(10,0,15), /* lw $10,($15) */ + MIPS32_LW(9,0,15), /* lw $9,($15) */ + MIPS32_LW(8,0,15), /* lw $8,($15) */ MIPS32_B(NEG16(26)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; @@ -702,36 +702,36 @@ int mips32_pracc_write_mem8(struct mips_ejtag *ejtag_info, uint32_t addr, int co static const uint32_t code[] = { /* start: */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(8,0,15), /* sw $8,($15) */ - MIPS32_SW(9,0,15), /* sw $9,($15) */ - MIPS32_SW(10,0,15), /* sw $10,($15) */ - MIPS32_SW(11,0,15), /* sw $11,($15) */ + MIPS32_SW(8,0,15), /* sw $8,($15) */ + MIPS32_SW(9,0,15), /* sw $9,($15) */ + MIPS32_SW(10,0,15), /* sw $10,($15) */ + MIPS32_SW(11,0,15), /* sw $11,($15) */ - MIPS32_LUI(8,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $8 = MIPS32_PRACC_PARAM_IN */ + MIPS32_LUI(8,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $8 = MIPS32_PRACC_PARAM_IN */ MIPS32_ORI(8,8,LOWER16(MIPS32_PRACC_PARAM_IN)), - MIPS32_LW(9,0,8), /* Load write addr to $9 */ - MIPS32_LW(10,4,8), /* Load write count to $10 */ - MIPS32_ADDI(8,8,8), /* $8 += 8 */ + MIPS32_LW(9,0,8), /* Load write addr to $9 */ + MIPS32_LW(10,4,8), /* Load write count to $10 */ + MIPS32_ADDI(8,8,8), /* $8 += 8 */ /* loop: */ MIPS32_BEQ(0,10,8), /* beq $0, $10, end */ MIPS32_NOP, - MIPS32_LW(11,0,8), /* lw $11,0($8), Load $11 with the word @mem[$8] */ - MIPS32_SB(11,0,9), /* sb $11,0($9) */ + MIPS32_LW(11,0,8), /* lw $11,0($8), Load $11 with the word @mem[$8] */ + MIPS32_SB(11,0,9), /* sb $11,0($9) */ - MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ - MIPS32_ADDI(9,9,1), /* $9 += 1 */ - MIPS32_ADDI(8,8,4), /* $8 += 4 */ + MIPS32_ADDI(10,10,NEG16(1)), /* $10-- */ + MIPS32_ADDI(9,9,1), /* $9 += 1 */ + MIPS32_ADDI(8,8,4), /* $8 += 4 */ MIPS32_B(NEG16(8)), /* b loop */ MIPS32_NOP, /* end: */ - MIPS32_LW(11,0,15), /* lw $11,($15) */ - MIPS32_LW(10,0,15), /* lw $10,($15) */ - MIPS32_LW(9,0,15), /* lw $9,($15) */ - MIPS32_LW(8,0,15), /* lw $8,($15) */ + MIPS32_LW(11,0,15), /* lw $11,($15) */ + MIPS32_LW(10,0,15), /* lw $10,($15) */ + MIPS32_LW(9,0,15), /* lw $9,($15) */ + MIPS32_LW(8,0,15), /* lw $8,($15) */ MIPS32_B(NEG16(26)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; @@ -760,60 +760,60 @@ int mips32_pracc_write_regs(struct mips_ejtag *ejtag_info, uint32_t *regs) { static const uint32_t code[] = { /* start: */ - MIPS32_LUI(2,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $2 = MIPS32_PRACC_PARAM_IN */ + MIPS32_LUI(2,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $2 = MIPS32_PRACC_PARAM_IN */ MIPS32_ORI(2,2,LOWER16(MIPS32_PRACC_PARAM_IN)), - MIPS32_LW(1,1*4,2), /* lw $1,1*4($2) */ - MIPS32_LW(15,15*4,2), /* lw $15,15*4($2) */ + MIPS32_LW(1,1*4,2), /* lw $1,1*4($2) */ + MIPS32_LW(15,15*4,2), /* lw $15,15*4($2) */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(1,0,15), /* sw $1,($15) */ - MIPS32_LUI(1,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $1 = MIPS32_PRACC_PARAM_IN */ + MIPS32_SW(1,0,15), /* sw $1,($15) */ + MIPS32_LUI(1,UPPER16(MIPS32_PRACC_PARAM_IN)), /* $1 = MIPS32_PRACC_PARAM_IN */ MIPS32_ORI(1,1,LOWER16(MIPS32_PRACC_PARAM_IN)), - MIPS32_LW(3,3*4,1), /* lw $3,3*4($1) */ - MIPS32_LW(4,4*4,1), /* lw $4,4*4($1) */ - MIPS32_LW(5,5*4,1), /* lw $5,5*4($1) */ - MIPS32_LW(6,6*4,1), /* lw $6,6*4($1) */ - MIPS32_LW(7,7*4,1), /* lw $7,7*4($1) */ - MIPS32_LW(8,8*4,1), /* lw $8,8*4($1) */ - MIPS32_LW(9,9*4,1), /* lw $9,9*4($1) */ - MIPS32_LW(10,10*4,1), /* lw $10,10*4($1) */ - MIPS32_LW(11,11*4,1), /* lw $11,11*4($1) */ - MIPS32_LW(12,12*4,1), /* lw $12,12*4($1) */ - MIPS32_LW(13,13*4,1), /* lw $13,13*4($1) */ - MIPS32_LW(14,14*4,1), /* lw $14,14*4($1) */ - MIPS32_LW(16,16*4,1), /* lw $16,16*4($1) */ - MIPS32_LW(17,17*4,1), /* lw $17,17*4($1) */ - MIPS32_LW(18,18*4,1), /* lw $18,18*4($1) */ - MIPS32_LW(19,19*4,1), /* lw $19,19*4($1) */ - MIPS32_LW(20,20*4,1), /* lw $20,20*4($1) */ - MIPS32_LW(21,21*4,1), /* lw $21,21*4($1) */ - MIPS32_LW(22,22*4,1), /* lw $22,22*4($1) */ - MIPS32_LW(23,23*4,1), /* lw $23,23*4($1) */ - MIPS32_LW(24,24*4,1), /* lw $24,24*4($1) */ - MIPS32_LW(25,25*4,1), /* lw $25,25*4($1) */ - MIPS32_LW(26,26*4,1), /* lw $26,26*4($1) */ - MIPS32_LW(27,27*4,1), /* lw $27,27*4($1) */ - MIPS32_LW(28,28*4,1), /* lw $28,28*4($1) */ - MIPS32_LW(29,29*4,1), /* lw $29,29*4($1) */ - MIPS32_LW(30,30*4,1), /* lw $30,30*4($1) */ - MIPS32_LW(31,31*4,1), /* lw $31,31*4($1) */ - - MIPS32_LW(2,32*4,1), /* lw $2,32*4($1) */ + MIPS32_LW(3,3*4,1), /* lw $3,3*4($1) */ + MIPS32_LW(4,4*4,1), /* lw $4,4*4($1) */ + MIPS32_LW(5,5*4,1), /* lw $5,5*4($1) */ + MIPS32_LW(6,6*4,1), /* lw $6,6*4($1) */ + MIPS32_LW(7,7*4,1), /* lw $7,7*4($1) */ + MIPS32_LW(8,8*4,1), /* lw $8,8*4($1) */ + MIPS32_LW(9,9*4,1), /* lw $9,9*4($1) */ + MIPS32_LW(10,10*4,1), /* lw $10,10*4($1) */ + MIPS32_LW(11,11*4,1), /* lw $11,11*4($1) */ + MIPS32_LW(12,12*4,1), /* lw $12,12*4($1) */ + MIPS32_LW(13,13*4,1), /* lw $13,13*4($1) */ + MIPS32_LW(14,14*4,1), /* lw $14,14*4($1) */ + MIPS32_LW(16,16*4,1), /* lw $16,16*4($1) */ + MIPS32_LW(17,17*4,1), /* lw $17,17*4($1) */ + MIPS32_LW(18,18*4,1), /* lw $18,18*4($1) */ + MIPS32_LW(19,19*4,1), /* lw $19,19*4($1) */ + MIPS32_LW(20,20*4,1), /* lw $20,20*4($1) */ + MIPS32_LW(21,21*4,1), /* lw $21,21*4($1) */ + MIPS32_LW(22,22*4,1), /* lw $22,22*4($1) */ + MIPS32_LW(23,23*4,1), /* lw $23,23*4($1) */ + MIPS32_LW(24,24*4,1), /* lw $24,24*4($1) */ + MIPS32_LW(25,25*4,1), /* lw $25,25*4($1) */ + MIPS32_LW(26,26*4,1), /* lw $26,26*4($1) */ + MIPS32_LW(27,27*4,1), /* lw $27,27*4($1) */ + MIPS32_LW(28,28*4,1), /* lw $28,28*4($1) */ + MIPS32_LW(29,29*4,1), /* lw $29,29*4($1) */ + MIPS32_LW(30,30*4,1), /* lw $30,30*4($1) */ + MIPS32_LW(31,31*4,1), /* lw $31,31*4($1) */ + + MIPS32_LW(2,32*4,1), /* lw $2,32*4($1) */ MIPS32_MTC0(2,12,0), /* move $2 to status */ - MIPS32_LW(2,33*4,1), /* lw $2,33*4($1) */ + MIPS32_LW(2,33*4,1), /* lw $2,33*4($1) */ MIPS32_MTLO(2), /* move $2 to lo */ - MIPS32_LW(2,34*4,1), /* lw $2,34*4($1) */ + MIPS32_LW(2,34*4,1), /* lw $2,34*4($1) */ MIPS32_MTHI(2), /* move $2 to hi */ - MIPS32_LW(2,35*4,1), /* lw $2,35*4($1) */ + MIPS32_LW(2,35*4,1), /* lw $2,35*4($1) */ MIPS32_MTC0(2,8,0), /* move $2 to badvaddr */ - MIPS32_LW(2,36*4,1), /* lw $2,36*4($1) */ + MIPS32_LW(2,36*4,1), /* lw $2,36*4($1) */ MIPS32_MTC0(2,13,0), /* move $2 to cause*/ - MIPS32_LW(2,37*4,1), /* lw $2,37*4($1) */ + MIPS32_LW(2,37*4,1), /* lw $2,37*4($1) */ MIPS32_MTC0(2,24,0), /* move $2 to pc */ - MIPS32_LW(2,2*4,1), /* lw $2,2*4($1) */ - MIPS32_LW(1,0,15), /* lw $1,($15) */ + MIPS32_LW(2,2*4,1), /* lw $2,2*4($1) */ + MIPS32_LW(1,0,15), /* lw $1,($15) */ MIPS32_B(NEG16(53)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; @@ -831,64 +831,64 @@ int mips32_pracc_read_regs(struct mips_ejtag *ejtag_info, uint32_t *regs) static const uint32_t code[] = { /* start: */ MIPS32_MTC0(2,31,0), /* move $2 to COP0 DeSave */ - MIPS32_LUI(2,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $2 = MIPS32_PRACC_PARAM_OUT */ + MIPS32_LUI(2,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $2 = MIPS32_PRACC_PARAM_OUT */ MIPS32_ORI(2,2,LOWER16(MIPS32_PRACC_PARAM_OUT)), MIPS32_SW(0,0*4,2), /* sw $0,0*4($2) */ - MIPS32_SW(1,1*4,2), /* sw $1,1*4($2) */ - MIPS32_SW(15,15*4,2), /* sw $15,15*4($2) */ + MIPS32_SW(1,1*4,2), /* sw $1,1*4($2) */ + MIPS32_SW(15,15*4,2), /* sw $15,15*4($2) */ MIPS32_MFC0(2,31,0), /* move COP0 DeSave to $2 */ MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(1,0,15), /* sw $1,($15) */ - MIPS32_SW(2,0,15), /* sw $2,($15) */ - MIPS32_LUI(1,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $1 = MIPS32_PRACC_PARAM_OUT */ + MIPS32_SW(1,0,15), /* sw $1,($15) */ + MIPS32_SW(2,0,15), /* sw $2,($15) */ + MIPS32_LUI(1,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $1 = MIPS32_PRACC_PARAM_OUT */ MIPS32_ORI(1,1,LOWER16(MIPS32_PRACC_PARAM_OUT)), - MIPS32_SW(2,2*4,1), /* sw $2,2*4($1) */ - MIPS32_SW(3,3*4,1), /* sw $3,3*4($1) */ - MIPS32_SW(4,4*4,1), /* sw $4,4*4($1) */ - MIPS32_SW(5,5*4,1), /* sw $5,5*4($1) */ - MIPS32_SW(6,6*4,1), /* sw $6,6*4($1) */ - MIPS32_SW(7,7*4,1), /* sw $7,7*4($1) */ - MIPS32_SW(8,8*4,1), /* sw $8,8*4($1) */ - MIPS32_SW(9,9*4,1), /* sw $9,9*4($1) */ - MIPS32_SW(10,10*4,1), /* sw $10,10*4($1) */ - MIPS32_SW(11,11*4,1), /* sw $11,11*4($1) */ - MIPS32_SW(12,12*4,1), /* sw $12,12*4($1) */ - MIPS32_SW(13,13*4,1), /* sw $13,13*4($1) */ - MIPS32_SW(14,14*4,1), /* sw $14,14*4($1) */ - MIPS32_SW(16,16*4,1), /* sw $16,16*4($1) */ - MIPS32_SW(17,17*4,1), /* sw $17,17*4($1) */ - MIPS32_SW(18,18*4,1), /* sw $18,18*4($1) */ - MIPS32_SW(19,19*4,1), /* sw $19,19*4($1) */ - MIPS32_SW(20,20*4,1), /* sw $20,20*4($1) */ - MIPS32_SW(21,21*4,1), /* sw $21,21*4($1) */ - MIPS32_SW(22,22*4,1), /* sw $22,22*4($1) */ - MIPS32_SW(23,23*4,1), /* sw $23,23*4($1) */ - MIPS32_SW(24,24*4,1), /* sw $24,24*4($1) */ - MIPS32_SW(25,25*4,1), /* sw $25,25*4($1) */ - MIPS32_SW(26,26*4,1), /* sw $26,26*4($1) */ - MIPS32_SW(27,27*4,1), /* sw $27,27*4($1) */ - MIPS32_SW(28,28*4,1), /* sw $28,28*4($1) */ - MIPS32_SW(29,29*4,1), /* sw $29,29*4($1) */ - MIPS32_SW(30,30*4,1), /* sw $30,30*4($1) */ - MIPS32_SW(31,31*4,1), /* sw $31,31*4($1) */ + MIPS32_SW(2,2*4,1), /* sw $2,2*4($1) */ + MIPS32_SW(3,3*4,1), /* sw $3,3*4($1) */ + MIPS32_SW(4,4*4,1), /* sw $4,4*4($1) */ + MIPS32_SW(5,5*4,1), /* sw $5,5*4($1) */ + MIPS32_SW(6,6*4,1), /* sw $6,6*4($1) */ + MIPS32_SW(7,7*4,1), /* sw $7,7*4($1) */ + MIPS32_SW(8,8*4,1), /* sw $8,8*4($1) */ + MIPS32_SW(9,9*4,1), /* sw $9,9*4($1) */ + MIPS32_SW(10,10*4,1), /* sw $10,10*4($1) */ + MIPS32_SW(11,11*4,1), /* sw $11,11*4($1) */ + MIPS32_SW(12,12*4,1), /* sw $12,12*4($1) */ + MIPS32_SW(13,13*4,1), /* sw $13,13*4($1) */ + MIPS32_SW(14,14*4,1), /* sw $14,14*4($1) */ + MIPS32_SW(16,16*4,1), /* sw $16,16*4($1) */ + MIPS32_SW(17,17*4,1), /* sw $17,17*4($1) */ + MIPS32_SW(18,18*4,1), /* sw $18,18*4($1) */ + MIPS32_SW(19,19*4,1), /* sw $19,19*4($1) */ + MIPS32_SW(20,20*4,1), /* sw $20,20*4($1) */ + MIPS32_SW(21,21*4,1), /* sw $21,21*4($1) */ + MIPS32_SW(22,22*4,1), /* sw $22,22*4($1) */ + MIPS32_SW(23,23*4,1), /* sw $23,23*4($1) */ + MIPS32_SW(24,24*4,1), /* sw $24,24*4($1) */ + MIPS32_SW(25,25*4,1), /* sw $25,25*4($1) */ + MIPS32_SW(26,26*4,1), /* sw $26,26*4($1) */ + MIPS32_SW(27,27*4,1), /* sw $27,27*4($1) */ + MIPS32_SW(28,28*4,1), /* sw $28,28*4($1) */ + MIPS32_SW(29,29*4,1), /* sw $29,29*4($1) */ + MIPS32_SW(30,30*4,1), /* sw $30,30*4($1) */ + MIPS32_SW(31,31*4,1), /* sw $31,31*4($1) */ MIPS32_MFC0(2,12,0), /* move status to $2 */ - MIPS32_SW(2,32*4,1), /* sw $2,32*4($1) */ + MIPS32_SW(2,32*4,1), /* sw $2,32*4($1) */ MIPS32_MFLO(2), /* move lo to $2 */ - MIPS32_SW(2,33*4,1), /* sw $2,33*4($1) */ + MIPS32_SW(2,33*4,1), /* sw $2,33*4($1) */ MIPS32_MFHI(2), /* move hi to $2 */ - MIPS32_SW(2,34*4,1), /* sw $2,34*4($1) */ + MIPS32_SW(2,34*4,1), /* sw $2,34*4($1) */ MIPS32_MFC0(2,8,0), /* move badvaddr to $2 */ - MIPS32_SW(2,35*4,1), /* sw $2,35*4($1) */ + MIPS32_SW(2,35*4,1), /* sw $2,35*4($1) */ MIPS32_MFC0(2,13,0), /* move cause to $2 */ - MIPS32_SW(2,36*4,1), /* sw $2,36*4($1) */ + MIPS32_SW(2,36*4,1), /* sw $2,36*4($1) */ MIPS32_MFC0(2,24,0), /* move pc to $2 */ - MIPS32_SW(2,37*4,1), /* sw $2,37*4($1) */ + MIPS32_SW(2,37*4,1), /* sw $2,37*4($1) */ - MIPS32_LW(2,0,15), /* lw $2,($15) */ - MIPS32_LW(1,0,15), /* lw $1,($15) */ + MIPS32_LW(2,0,15), /* lw $2,($15) */ + MIPS32_LW(1,0,15), /* lw $1,($15) */ MIPS32_B(NEG16(58)), /* b start */ MIPS32_MFC0(15,31,0), /* move COP0 DeSave to $15 */ }; diff --git a/src/target/mips32_pracc.h b/src/target/mips32_pracc.h index a914686..f8b00d0 100644 --- a/src/target/mips32_pracc.h +++ b/src/target/mips32_pracc.h @@ -27,17 +27,17 @@ #define MIPS32_PRACC_FASTDATA_AREA 0xFF200000 #define MIPS32_PRACC_FASTDATA_SIZE 16 -#define MIPS32_PRACC_TEXT 0xFF200200 -#define MIPS32_PRACC_STACK 0xFF204000 -#define MIPS32_PRACC_PARAM_IN 0xFF201000 -#define MIPS32_PRACC_PARAM_IN_SIZE 0x1000 -#define MIPS32_PRACC_PARAM_OUT (MIPS32_PRACC_PARAM_IN + MIPS32_PRACC_PARAM_IN_SIZE) -#define MIPS32_PRACC_PARAM_OUT_SIZE 0x1000 +#define MIPS32_PRACC_TEXT 0xFF200200 +#define MIPS32_PRACC_STACK 0xFF204000 +#define MIPS32_PRACC_PARAM_IN 0xFF201000 +#define MIPS32_PRACC_PARAM_IN_SIZE 0x1000 +#define MIPS32_PRACC_PARAM_OUT (MIPS32_PRACC_PARAM_IN + MIPS32_PRACC_PARAM_IN_SIZE) +#define MIPS32_PRACC_PARAM_OUT_SIZE 0x1000 #define MIPS32_FASTDATA_HANDLER_SIZE 0x80 -#define UPPER16(uint32_t) (uint32_t >> 16) -#define LOWER16(uint32_t) (uint32_t & 0xFFFF) -#define NEG16(v) (((~(v)) + 1) & 0xFFFF) +#define UPPER16(uint32_t) (uint32_t >> 16) +#define LOWER16(uint32_t) (uint32_t & 0xFFFF) +#define NEG16(v) (((~(v)) + 1) & 0xFFFF) /*#define NEG18(v) (((~(v)) + 1) & 0x3FFFF)*/ int mips32_pracc_read_mem(struct mips_ejtag *ejtag_info, diff --git a/src/target/mips_ejtag.c b/src/target/mips_ejtag.c index bebad9a..58bd392 100644 --- a/src/target/mips_ejtag.c +++ b/src/target/mips_ejtag.c @@ -28,7 +28,6 @@ #include "mips32.h" #include "mips_ejtag.h" - int mips_ejtag_set_instr(struct mips_ejtag *ejtag_info, int new_instr, void *delete_me_and_submit_patch) { struct jtag_tap *tap; @@ -152,12 +151,12 @@ int mips_ejtag_step_disable(struct mips_ejtag *ejtag_info) { uint32_t code[] = { MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(1,0,15), /* sw $1,($15) */ - MIPS32_SW(2,0,15), /* sw $2,($15) */ + MIPS32_SW(1,0,15), /* sw $1,($15) */ + MIPS32_SW(2,0,15), /* sw $2,($15) */ MIPS32_MFC0(1,23,0), /* move COP0 Debug to $1 */ - MIPS32_LUI(2,0xFFFF), /* $2 = 0xfffffeff */ + MIPS32_LUI(2,0xFFFF), /* $2 = 0xfffffeff */ MIPS32_ORI(2,2,0xFEFF), MIPS32_AND(1,1,2), MIPS32_MTC0(1,23,0), /* move $1 to COP0 Debug */ @@ -216,11 +215,11 @@ int mips_ejtag_read_debug(struct mips_ejtag *ejtag_info, uint32_t* debug_reg) /* read ejtag ECR */ uint32_t code[] = { MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */ - MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ + MIPS32_LUI(15,UPPER16(MIPS32_PRACC_STACK)), /* $15 = MIPS32_PRACC_STACK */ MIPS32_ORI(15,15,LOWER16(MIPS32_PRACC_STACK)), - MIPS32_SW(1,0,15), /* sw $1,($15) */ - MIPS32_SW(2,0,15), /* sw $2,($15) */ - MIPS32_LUI(1,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $1 = MIPS32_PRACC_PARAM_OUT */ + MIPS32_SW(1,0,15), /* sw $1,($15) */ + MIPS32_SW(2,0,15), /* sw $2,($15) */ + MIPS32_LUI(1,UPPER16(MIPS32_PRACC_PARAM_OUT)), /* $1 = MIPS32_PRACC_PARAM_OUT */ MIPS32_ORI(1,1,LOWER16(MIPS32_PRACC_PARAM_OUT)), MIPS32_MFC0(2,23,0), /* move COP0 Debug to $2 */ MIPS32_SW(2,0,1), diff --git a/src/target/mips_ejtag.h b/src/target/mips_ejtag.h index eb42d67..e9da39e 100644 --- a/src/target/mips_ejtag.h +++ b/src/target/mips_ejtag.h @@ -96,11 +96,11 @@ #define EJTAG_IBA1 0xFF301100 #define EJTAG_DBS 0xFF302000 #define EJTAG_DBA1 0xFF302100 -#define EJTAG_DBCn_NOSB (1 << 13) -#define EJTAG_DBCn_NOLB (1 << 12) -#define EJTAG_DBCn_BLM_MASK 0xff -#define EJTAG_DBCn_BLM_SHIFT 4 -#define EJTAG_DBCn_BE (1 << 0) +#define EJTAG_DBCn_NOSB (1 << 13) +#define EJTAG_DBCn_NOLB (1 << 12) +#define EJTAG_DBCn_BLM_MASK 0xff +#define EJTAG_DBCn_BLM_SHIFT 4 +#define EJTAG_DBCn_BE (1 << 0) struct mips_ejtag { commit 2d450b90333b01fbd85570e5d881c3a795038744 Author: Spencer Oliver <nt...@us...> Date: Wed Jan 6 20:24:31 2010 +0000 MIPS: fastdata bulk write fallback If fastdata access fails, then fallback to default mips_m4k_write_memory Remove unnecessary fastdata loader verify check Signed-off-by: Spencer Oliver <nt...@us...> diff --git a/src/target/mips32_pracc.c b/src/target/mips32_pracc.c index 26d5a6b..ac1d1b3 100644 --- a/src/target/mips32_pracc.c +++ b/src/target/mips32_pracc.c @@ -968,15 +968,7 @@ int mips32_pracc_fastdata_xfer(struct mips_ejtag *ejtag_info, struct working_are /* write program into RAM */ mips32_pracc_write_mem32(ejtag_info, source->address, ARRAY_SIZE(handler_code), handler_code); - /* quick verify RAM is working */ - mips32_pracc_read_u32(ejtag_info, source->address, &val); - if (val != handler_code[0]) - { - LOG_ERROR("fastdata handler verify failed\n"); - return ERROR_TARGET_RESOURCE_NOT_AVAILABLE; - } - - LOG_INFO("%s using 0x%.8x for write handler\n", __func__, source->address); + LOG_DEBUG("%s using 0x%.8x for write handler\n", __func__, source->address); jmp_code[1] |= UPPER16(source->address); jmp_code[2] |= LOWER16(source->address); diff --git a/src/target/mips_m4k.c b/src/target/mips_m4k.c index 4adc1f1..312fc09 100644 --- a/src/target/mips_m4k.c +++ b/src/target/mips_m4k.c @@ -1001,6 +1001,12 @@ int mips_m4k_bulk_write_memory(struct target *target, uint32_t address, uint32_t } retval = mips32_pracc_fastdata_xfer(ejtag_info, source, write, address, count, (uint32_t*) buffer); + if (retval != ERROR_OK) + { + /* FASTDATA access failed, try normal memory write */ + LOG_WARNING("Fastdata access Failed, falling back to non-bulk write"); + retval = mips_m4k_write_memory(target, address, 4, count, buffer); + } if (source) target_free_working_area(target, source); ----------------------------------------------------------------------- Summary of changes: src/target/mips32.h | 2 +- src/target/mips32_pracc.c | 400 ++++++++++++++++++++++----------------------- src/target/mips32_pracc.h | 18 +- src/target/mips_ejtag.c | 17 +- src/target/mips_ejtag.h | 10 +- src/target/mips_m4k.c | 6 + 6 files changed, 225 insertions(+), 228 deletions(-) hooks/post-receive -- Main OpenOCD repository |