#include "str9x.h"
#include "arm966e.h"
+#include "algorithm.h"
static uint32_t bank1start = 0x00080000;
-static int str9x_build_block_list(struct flash_bank_s *bank)
+static int str9x_build_block_list(struct flash_bank *bank)
{
- str9x_flash_bank_t *str9x_info = bank->driver_priv;
+ struct str9x_flash_bank *str9x_info = bank->driver_priv;
int i;
int num_sectors;
num_sectors = b0_sectors + b1_sectors;
bank->num_sectors = num_sectors;
- bank->sectors = malloc(sizeof(flash_sector_t) * num_sectors);
+ bank->sectors = malloc(sizeof(struct flash_sector) * num_sectors);
str9x_info->sector_bits = malloc(sizeof(uint32_t) * num_sectors);
num_sectors = 0;
*/
FLASH_BANK_COMMAND_HANDLER(str9x_flash_bank_command)
{
- str9x_flash_bank_t *str9x_info;
+ struct str9x_flash_bank *str9x_info;
- if (argc < 6)
+ if (CMD_ARGC < 6)
{
LOG_WARNING("incomplete flash_bank str9x configuration");
return ERROR_FLASH_BANK_INVALID;
}
- str9x_info = malloc(sizeof(str9x_flash_bank_t));
+ str9x_info = malloc(sizeof(struct str9x_flash_bank));
bank->driver_priv = str9x_info;
str9x_build_block_list(bank);
return ERROR_OK;
}
-static int str9x_protect_check(struct flash_bank_s *bank)
+static int str9x_protect_check(struct flash_bank *bank)
{
int retval;
- str9x_flash_bank_t *str9x_info = bank->driver_priv;
- target_t *target = bank->target;
+ struct str9x_flash_bank *str9x_info = bank->driver_priv;
+ struct target *target = bank->target;
int i;
uint32_t adr;
return ERROR_OK;
}
-static int str9x_erase(struct flash_bank_s *bank, int first, int last)
+static int str9x_erase(struct flash_bank *bank, int first, int last)
{
- target_t *target = bank->target;
+ struct target *target = bank->target;
int i;
uint32_t adr;
uint8_t status;
return ERROR_OK;
}
-static int str9x_protect(struct flash_bank_s *bank,
+static int str9x_protect(struct flash_bank *bank,
int set, int first, int last)
{
- target_t *target = bank->target;
+ struct target *target = bank->target;
int i;
uint32_t adr;
uint8_t status;
return ERROR_OK;
}
-static int str9x_write_block(struct flash_bank_s *bank,
+static int str9x_write_block(struct flash_bank *bank,
uint8_t *buffer, uint32_t offset, uint32_t count)
{
- str9x_flash_bank_t *str9x_info = bank->driver_priv;
- target_t *target = bank->target;
+ struct str9x_flash_bank *str9x_info = bank->driver_priv;
+ struct target *target = bank->target;
uint32_t buffer_size = 8192;
- working_area_t *source;
+ struct working_area *source;
uint32_t address = bank->base + offset;
- reg_param_t reg_params[4];
- armv4_5_algorithm_t armv4_5_info;
+ struct reg_param reg_params[4];
+ struct armv4_5_algorithm armv4_5_info;
int retval = ERROR_OK;
uint32_t str9x_flash_write_code[] = {
return retval;
}
-static int str9x_write(struct flash_bank_s *bank,
+static int str9x_write(struct flash_bank *bank,
uint8_t *buffer, uint32_t offset, uint32_t count)
{
- target_t *target = bank->target;
+ struct target *target = bank->target;
uint32_t words_remaining = (count / 2);
uint32_t bytes_remaining = (count & 0x00000001);
uint32_t address = bank->base + offset;
return ERROR_OK;
}
-static int str9x_probe(struct flash_bank_s *bank)
+static int str9x_probe(struct flash_bank *bank)
{
return ERROR_OK;
}
}
#endif
-static int str9x_info(struct flash_bank_s *bank, char *buf, int buf_size)
+static int str9x_info(struct flash_bank *bank, char *buf, int buf_size)
{
snprintf(buf, buf_size, "str9x flash driver info");
return ERROR_OK;
COMMAND_HANDLER(str9x_handle_flash_config_command)
{
- str9x_flash_bank_t *str9x_info;
- target_t *target = NULL;
+ struct str9x_flash_bank *str9x_info;
+ struct target *target = NULL;
- if (argc < 5)
+ if (CMD_ARGC < 5)
{
return ERROR_COMMAND_SYNTAX_ERROR;
}
- flash_bank_t *bank;
- int retval = flash_command_get_bank_by_num(cmd_ctx, args[0], &bank);
+ struct flash_bank *bank;
+ int retval = CALL_COMMAND_HANDLER(flash_command_get_bank, 0, &bank);
if (ERROR_OK != retval)
return retval;
uint32_t bbsr, nbbsr, bbadr, nbbadr;
- COMMAND_PARSE_NUMBER(u32, args[1], bbsr);
- COMMAND_PARSE_NUMBER(u32, args[2], nbbsr);
- COMMAND_PARSE_NUMBER(u32, args[3], bbadr);
- COMMAND_PARSE_NUMBER(u32, args[4], nbbadr);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], bbsr);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[2], nbbsr);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[3], bbadr);
+ COMMAND_PARSE_NUMBER(u32, CMD_ARGV[4], nbbadr);
str9x_info = bank->driver_priv;
return ERROR_OK;
}
-static int str9x_register_commands(struct command_context_s *cmd_ctx)
+static int str9x_register_commands(struct command_context *cmd_ctx)
{
- command_t *str9x_cmd = register_command(cmd_ctx, NULL, "str9x",
+ struct command *str9x_cmd = COMMAND_REGISTER(cmd_ctx, NULL, "str9x",
NULL, COMMAND_ANY, "str9x flash commands");
- register_command(cmd_ctx, str9x_cmd, "flash_config",
+ COMMAND_REGISTER(cmd_ctx, str9x_cmd, "flash_config",
str9x_handle_flash_config_command, COMMAND_EXEC,
"configure str9 flash controller");
return ERROR_OK;
}
-flash_driver_t str9x_flash = {
+struct flash_driver str9x_flash = {
.name = "str9x",
.register_commands = &str9x_register_commands,
.flash_bank_command = &str9x_flash_bank_command,