From f4a3db0d4a353ccc6d701a2645390ef9039e0d02 Mon Sep 17 00:00:00 2001 From: "Rodrigo L. Rosa" Date: Fri, 10 Jun 2011 12:19:58 -0700 Subject: fix flash driver size, sector erase --- src/target/dsp5680xx.c | 174 ++++++++++++++----------------------------------- src/target/dsp5680xx.h | 19 +++--- 2 files changed, 58 insertions(+), 135 deletions(-) (limited to 'src/target') diff --git a/src/target/dsp5680xx.c b/src/target/dsp5680xx.c index 9eba3742..c79ee3ae 100644 --- a/src/target/dsp5680xx.c +++ b/src/target/dsp5680xx.c @@ -244,17 +244,6 @@ static int eonce_read_status_reg(struct target * target, uint16_t * data){ return retval; } -static int dsp5680xx_obase_addr(struct target * target, uint32_t * addr){ - // Finds out the default value of the OBASE register address. - int retval; - uint32_t data_to_shift_into_dr;// just to make jtag happy - retval = eonce_instruction_exec(target,DSP5680XX_ONCE_OBASE,1,0,0,NULL); - err_check_propagate(retval); - retval = dsp5680xx_drscan(target,(uint8_t *)& data_to_shift_into_dr,(uint8_t *) addr, 8); - err_check_propagate(retval); - return retval; -} - static int dsp5680xx_halt(struct target *target){ int retval; uint8_t jtag_status; @@ -614,24 +603,15 @@ static int eonce_move_value_to_pc(struct target * target, uint32_t value) static int eonce_load_TX_RX_to_r0(struct target * target) { - uint32_t obase_addr; - int retval = dsp5680xx_obase_addr(target,& obase_addr); - err_check_propagate(retval); - retval = eonce_move_long_to_r0(target,((MC568013_EONCE_TX_RX_ADDR)+(obase_addr<<16))); + int retval; + retval = eonce_move_long_to_r0(target,((MC568013_EONCE_TX_RX_ADDR)+(MC568013_EONCE_OBASE_ADDR<<16))); return retval; } static int eonce_load_TX_RX_high_to_r0(struct target * target) { - uint32_t obase_addr; - int retval = dsp5680xx_obase_addr(target,& obase_addr); - err_check_propagate(retval); - if(!(obase_addr && 0xff)){ - LOG_USER("%s: OBASE address read as 0x%04X instead of 0xFF.",__FUNCTION__,obase_addr); - return ERROR_FAIL; - } - eonce_move_long_to_r0(target,((MC568013_EONCE_TX1_RX1_HIGH_ADDR)+(obase_addr<<16))); - err_check_propagate(retval); + int retval = 0; + retval = eonce_move_long_to_r0(target,((MC568013_EONCE_TX1_RX1_HIGH_ADDR)+(MC568013_EONCE_OBASE_ADDR<<16))); return retval; } @@ -804,11 +784,11 @@ static int dsp5680xx_write_8(struct target * target, uint32_t address, uint32_t uint16_t * data_w = (uint16_t *)data; uint32_t iter; - int counter = FLUSH_COUNT_WRITE; + int counter = FLUSH_COUNT_READ_WRITE; for(iter = 0; iter