Browse Source

flashing speed improved using queued jtag. error propagation improved.

tags/v0.5.0-rc1
Rodrigo L. Rosa 13 years ago
committed by Øyvind Harboe
parent
commit
ef599aebfd
3 changed files with 354 additions and 290 deletions
  1. +3
    -3
      src/flash/nor/dsp5680xx_flash.c
  2. +342
    -275
      src/target/dsp5680xx.c
  3. +9
    -12
      src/target/dsp5680xx.h

+ 3
- 3
src/flash/nor/dsp5680xx_flash.c View File

@@ -142,8 +142,8 @@ static int dsp5680xx_flash_write(struct flash_bank *bank, uint8_t *buffer, uint3
}

static int dsp5680xx_probe(struct flash_bank *bank){
//LOG_USER("%s not implemented",__FUNCTION__);
return ERROR_OK;
LOG_DEBUG("%s not implemented",__FUNCTION__);
return ERROR_OK;
}

static int dsp5680xx_flash_info(struct flash_bank *bank, char *buf, int buf_size){
@@ -197,7 +197,7 @@ struct flash_driver dsp5680xx_flash = {
.protect = dsp5680xx_flash_protect,
.write = dsp5680xx_flash_write,
//.read = default_flash_read,
//.probe = dsp5680xx_probe,
.probe = dsp5680xx_probe,
.auto_probe = dsp5680xx_probe,
.erase_check = dsp5680xx_flash_erase_check,
.protect_check = dsp5680xx_flash_protect_check,


+ 342
- 275
src/target/dsp5680xx.c
File diff suppressed because it is too large
View File


+ 9
- 12
src/target/dsp5680xx.h View File

@@ -124,6 +124,8 @@
#define DSP5680XX_ONCE_OPABDR 0x13 /* OnCE Program Address Register—Decode cycle (OPABDR) */
//----------------------------------------------------------------

#define FLUSH_COUNT_WRITE 4095 // This value works, higher values (and lower...) may work as well.
#define FLUSH_COUNT_FLASH 7 // Waiting for longer queues will cause flashing errors.
//----------------------------------------------------------------
// HFM (flash module) Commands (ref:MC56F801xRM.pdf@159)
//----------------------------------------------------------------
@@ -190,21 +192,16 @@
#define SIM_CMD_RESET 0x10
//----------------------------------------------------------------

struct dsp5680xx_common
{
//TODO
};

static inline struct dsp5680xx_common *target_to_dsp5680xx(struct target *target)
{
return target->arch_info;
}

struct context
{
struct dsp5680xx_common{
//TODO
uint32_t stored_pc;
int flush;
}context;

static inline struct dsp5680xx_common *target_to_dsp5680xx(struct target *target){
return target->arch_info;
}

int dsp5680xx_f_wr(struct target * target, uint8_t *buffer, uint32_t address, uint32_t count);

int dsp5680xx_f_erase_check(struct target * target,uint8_t * erased);


Loading…
Cancel
Save