static int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
#endif
-typedef struct ecosflash_flash_bank_s
+struct ecosflash_flash_bank
{
struct target_s *target;
working_area_t *write_algorithm;
working_area_t *erase_check_algorithm;
char *driverPath;
uint32_t start_address;
-} ecosflash_flash_bank_t;
+};
static const int sectorSize = 0x10000;
*/
FLASH_BANK_COMMAND_HANDLER(ecosflash_flash_bank_command)
{
- ecosflash_flash_bank_t *info;
+ struct ecosflash_flash_bank *info;
if (argc < 7)
{
return ERROR_FLASH_BANK_INVALID;
}
- info = malloc(sizeof(ecosflash_flash_bank_t));
+ info = malloc(sizeof(struct ecosflash_flash_bank));
if (info == NULL)
{
LOG_ERROR("no memory for flash bank info");
return ERROR_OK;
}
-static int loadDriver(ecosflash_flash_bank_t *info)
+static int loadDriver(struct ecosflash_flash_bank *info)
{
uint32_t buf_cnt;
uint32_t image_size;
static int const OFFSET_GET_WORKAREA = 0x18;
static int const OFFSET_GET_WORKAREA_SIZE = 0x4;
-static int runCode(ecosflash_flash_bank_t *info,
+static int runCode(struct ecosflash_flash_bank *info,
uint32_t codeStart, uint32_t codeStop, uint32_t r0, uint32_t r1, uint32_t r2,
uint32_t *result,
/* timeout in ms */
return ERROR_OK;
}
-static int eCosBoard_erase(ecosflash_flash_bank_t *info, uint32_t address, uint32_t len)
+static int eCosBoard_erase(struct ecosflash_flash_bank *info, uint32_t address, uint32_t len)
{
int retval;
int timeout = (len / 20480 + 1) * 1000; /*asume 20 KB/s*/
return ERROR_OK;
}
-static int eCosBoard_flash(ecosflash_flash_bank_t *info, void *data, uint32_t address, uint32_t len)
+static int eCosBoard_flash(struct ecosflash_flash_bank *info, void *data, uint32_t address, uint32_t len)
{
target_t *target = info->target;
const int chunk = 8192;
#if 0
static void command(flash_bank_t *bank, uint8_t cmd, uint8_t *cmd_buf)
{
- ecosflash_flash_bank_t *info = bank->driver_priv;
+ struct ecosflash_flash_bank *info = bank->driver_priv;
int i;
if (info->target->endianness == TARGET_LITTLE_ENDIAN)
static int ecosflash_erase(struct flash_bank_s *bank, int first, int last)
{
struct flash_bank_s *c = bank;
- ecosflash_flash_bank_t *info = bank->driver_priv;
+ struct ecosflash_flash_bank *info = bank->driver_priv;
return eCosBoard_erase(info, c->base + first*sectorSize, sectorSize*(last-first + 1));
}
static int ecosflash_write(struct flash_bank_s *bank, uint8_t *buffer, uint32_t offset, uint32_t count)
{
- ecosflash_flash_bank_t *info = bank->driver_priv;
+ struct ecosflash_flash_bank *info = bank->driver_priv;
struct flash_bank_s *c = bank;
return eCosBoard_flash(info, buffer, c->base + offset, count);
}
static int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size)
{
- ecosflash_flash_bank_t *info = bank->driver_priv;
+ struct ecosflash_flash_bank *info = bank->driver_priv;
snprintf(buf, buf_size, "eCos flash driver: %s", info->driverPath);
return ERROR_OK;
}