The following patches was applied:

- openocd-flash-static-keyword-v3.patch
- openocd-lpc2000-fix-erase-obo.patch
- openocd-jlink-fix-sign-ptr-warn.patch
- openocd-wextra-etm.patch
- openocd-wextra-jtag.patch
- openocd-add-new-tap-symbols-v6.patch

Many thanks to  Zach Welch <zw(at)superlucidity.net>

git-svn-id: svn://svn.berlios.de/openocd/trunk@1462 b42882b7-edfa-0310-969c-e2dbd0fdcd60
__archive__
mifi 2009-04-18 10:08:13 +00:00
parent 13de2d2fef
commit 0bba832713
52 changed files with 802 additions and 776 deletions

View File

@ -36,19 +36,19 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int aduc702x_register_commands(struct command_context_s *cmd_ctx); static int aduc702x_register_commands(struct command_context_s *cmd_ctx);
int aduc702x_erase(struct flash_bank_s *bank, int first, int last); static int aduc702x_erase(struct flash_bank_s *bank, int first, int last);
int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last); static int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last);
int aduc702x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int aduc702x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int aduc702x_probe(struct flash_bank_s *bank); static int aduc702x_probe(struct flash_bank_s *bank);
int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size); static int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size);
int aduc702x_protect_check(struct flash_bank_s *bank); static int aduc702x_protect_check(struct flash_bank_s *bank);
int aduc702x_build_sector_list(struct flash_bank_s *bank); static int aduc702x_build_sector_list(struct flash_bank_s *bank);
int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms); static int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms);
int aduc702x_set_write_enable(target_t *target, int enable); static int aduc702x_set_write_enable(target_t *target, int enable);
#define ADUC702x_FLASH 0xfffff800 #define ADUC702x_FLASH 0xfffff800
#define ADUC702x_FLASH_FEESTA (0*4) #define ADUC702x_FLASH_FEESTA (0*4)
@ -91,14 +91,14 @@ flash_driver_t aduc702x_flash =
.info = aduc702x_info .info = aduc702x_info
}; };
int aduc702x_register_commands(struct command_context_s *cmd_ctx) static int aduc702x_register_commands(struct command_context_s *cmd_ctx)
{ {
return ERROR_OK; return ERROR_OK;
} }
/* flash bank aduc702x 0 0 0 0 <target#> /* flash bank aduc702x 0 0 0 0 <target#>
* The ADC7019-28 devices all have the same flash layout */ * The ADC7019-28 devices all have the same flash layout */
int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
aduc702x_flash_bank_t *nbank; aduc702x_flash_bank_t *nbank;
@ -113,7 +113,7 @@ int aduc702x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, ch
return ERROR_OK; return ERROR_OK;
} }
int aduc702x_build_sector_list(struct flash_bank_s *bank) static int aduc702x_build_sector_list(struct flash_bank_s *bank)
{ {
//aduc7026_flash_bank_t *aduc7026_info = bank->driver_priv; //aduc7026_flash_bank_t *aduc7026_info = bank->driver_priv;
@ -135,13 +135,13 @@ int aduc702x_build_sector_list(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int aduc702x_protect_check(struct flash_bank_s *bank) static int aduc702x_protect_check(struct flash_bank_s *bank)
{ {
printf("aduc702x_protect_check not implemented yet.\n"); printf("aduc702x_protect_check not implemented yet.\n");
return ERROR_OK; return ERROR_OK;
} }
int aduc702x_erase(struct flash_bank_s *bank, int first, int last) static int aduc702x_erase(struct flash_bank_s *bank, int first, int last)
{ {
//int res; //int res;
int x; int x;
@ -194,13 +194,13 @@ int aduc702x_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last) static int aduc702x_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
printf("aduc702x_protect not implemented yet.\n"); printf("aduc702x_protect not implemented yet.\n");
return ERROR_FLASH_OPERATION_FAILED; return ERROR_FLASH_OPERATION_FAILED;
} }
int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
aduc702x_flash_bank_t *aduc702x_info = bank->driver_priv; aduc702x_flash_bank_t *aduc702x_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -329,7 +329,7 @@ int aduc702x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32
/* All-JTAG, single-access method. Very slow. Used only if there is no /* All-JTAG, single-access method. Very slow. Used only if there is no
* working area available. */ * working area available. */
int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int aduc702x_write_single(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
int x; int x;
u8 b; u8 b;
@ -399,12 +399,12 @@ int aduc702x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int aduc702x_probe(struct flash_bank_s *bank) static int aduc702x_probe(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size) static int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
snprintf(buf, buf_size, "aduc702x flash driver info" ); snprintf(buf, buf_size, "aduc702x flash driver info" );
return ERROR_OK; return ERROR_OK;
@ -412,7 +412,7 @@ int aduc702x_info(struct flash_bank_s *bank, char *buf, int buf_size)
/* sets FEEMOD bit 3 /* sets FEEMOD bit 3
* enable = 1 enables writes & erases, 0 disables them */ * enable = 1 enables writes & erases, 0 disables them */
int aduc702x_set_write_enable(target_t *target, int enable) static int aduc702x_set_write_enable(target_t *target, int enable)
{ {
// don't bother to preserve int enable bit here // don't bother to preserve int enable bit here
target_write_u16(target, ADUC702x_FLASH + ADUC702x_FLASH_FEEMOD, enable ? 8 : 0); target_write_u16(target, ADUC702x_FLASH + ADUC702x_FLASH_FEEMOD, enable ? 8 : 0);
@ -425,7 +425,7 @@ int aduc702x_set_write_enable(target_t *target, int enable)
* *
* this function sleeps 1ms between checks (after the first one), * this function sleeps 1ms between checks (after the first one),
* so in some cases may slow things down without a usleep after the first read */ * so in some cases may slow things down without a usleep after the first read */
int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms) static int aduc702x_check_flash_completion(target_t* target, unsigned int timeout_ms)
{ {
u8 v = 4; u8 v = 4;

View File

@ -53,22 +53,22 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
int at91sam7_register_commands(struct command_context_s *cmd_ctx); static int at91sam7_register_commands(struct command_context_s *cmd_ctx);
int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int at91sam7_erase(struct flash_bank_s *bank, int first, int last); static int at91sam7_erase(struct flash_bank_s *bank, int first, int last);
int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last); static int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last);
int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int at91sam7_probe(struct flash_bank_s *bank); static int at91sam7_probe(struct flash_bank_s *bank);
int at91sam7_auto_probe(struct flash_bank_s *bank); //static int at91sam7_auto_probe(struct flash_bank_s *bank);
int at91sam7_erase_check(struct flash_bank_s *bank); static int at91sam7_erase_check(struct flash_bank_s *bank);
int at91sam7_protect_check(struct flash_bank_s *bank); static int at91sam7_protect_check(struct flash_bank_s *bank);
int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size); static int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size);
u32 at91sam7_get_flash_status(target_t *target, int bank_number); static u32 at91sam7_get_flash_status(target_t *target, int bank_number);
void at91sam7_set_flash_mode(flash_bank_t *bank, int mode); static void at91sam7_set_flash_mode(flash_bank_t *bank, int mode);
u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout); static u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout);
int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen); static int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen);
int at91sam7_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int at91sam7_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
flash_driver_t at91sam7_flash = flash_driver_t at91sam7_flash =
{ {
@ -85,13 +85,14 @@ flash_driver_t at91sam7_flash =
.info = at91sam7_info .info = at91sam7_info
}; };
u32 MC_FMR[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 }; static u32 MC_FMR[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 };
u32 MC_FCR[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 }; static u32 MC_FCR[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 };
u32 MC_FSR[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 }; static u32 MC_FSR[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 };
char * EPROC[8]= {"Unknown","ARM946-E","ARM7TDMI","Unknown","ARM920T","ARM926EJ-S","Unknown","Unknown"}; static char * EPROC[8]= {"Unknown","ARM946-E","ARM7TDMI","Unknown","ARM920T","ARM926EJ-S","Unknown","Unknown"};
long SRAMSIZ[16] = { #if 0
static long SRAMSIZ[16] = {
-1, -1,
0x0400, /* 1K */ 0x0400, /* 1K */
0x0800, /* 2K */ 0x0800, /* 2K */
@ -109,8 +110,9 @@ long SRAMSIZ[16] = {
0x18000, /* 96K */ 0x18000, /* 96K */
0x80000, /* 512K */ 0x80000, /* 512K */
}; };
#endif
int at91sam7_register_commands(struct command_context_s *cmd_ctx) static int at91sam7_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *at91sam7_cmd = register_command(cmd_ctx, NULL, "at91sam7_new", NULL, COMMAND_ANY, NULL); command_t *at91sam7_cmd = register_command(cmd_ctx, NULL, "at91sam7_new", NULL, COMMAND_ANY, NULL);
@ -119,7 +121,7 @@ int at91sam7_register_commands(struct command_context_s *cmd_ctx)
return ERROR_OK; return ERROR_OK;
} }
u32 at91sam7_get_flash_status(target_t *target, int bank_number) static u32 at91sam7_get_flash_status(target_t *target, int bank_number)
{ {
u32 fsr; u32 fsr;
target_read_u32(target, MC_FSR[bank_number], &fsr); target_read_u32(target, MC_FSR[bank_number], &fsr);
@ -128,7 +130,7 @@ u32 at91sam7_get_flash_status(target_t *target, int bank_number)
} }
/* Read clock configuration and set at91sam7_info->mck_freq */ /* Read clock configuration and set at91sam7_info->mck_freq */
void at91sam7_read_clock_info(flash_bank_t *bank) static void at91sam7_read_clock_info(flash_bank_t *bank)
{ {
at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -207,7 +209,7 @@ void at91sam7_read_clock_info(flash_bank_t *bank)
} }
/* Setup the timimg registers for nvbits or normal flash */ /* Setup the timimg registers for nvbits or normal flash */
void at91sam7_set_flash_mode(flash_bank_t *bank, int mode) static void at91sam7_set_flash_mode(flash_bank_t *bank, int mode)
{ {
u32 fmr, fmcn = 0, fws = 0; u32 fmr, fmcn = 0, fws = 0;
at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv;
@ -255,7 +257,7 @@ void at91sam7_set_flash_mode(flash_bank_t *bank, int mode)
at91sam7_info->flashmode = mode; at91sam7_info->flashmode = mode;
} }
u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout) static u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout)
{ {
u32 status; u32 status;
@ -282,7 +284,7 @@ u32 at91sam7_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout)
} }
/* Send one command to the AT91SAM flash controller */ /* Send one command to the AT91SAM flash controller */
int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen) static int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen)
{ {
u32 fcr; u32 fcr;
at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv;
@ -311,7 +313,7 @@ int at91sam7_flash_command(struct flash_bank_s *bank, u8 cmd, u16 pagen)
} }
/* Read device id register, main clock frequency register and fill in driver info structure */ /* Read device id register, main clock frequency register and fill in driver info structure */
int at91sam7_read_part_info(struct flash_bank_s *bank) static int at91sam7_read_part_info(struct flash_bank_s *bank)
{ {
flash_bank_t *t_bank = bank; flash_bank_t *t_bank = bank;
at91sam7_flash_bank_t *at91sam7_info; at91sam7_flash_bank_t *at91sam7_info;
@ -626,7 +628,7 @@ int at91sam7_read_part_info(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_erase_check(struct flash_bank_s *bank) static int at91sam7_erase_check(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u16 retval; u16 retval;
@ -692,7 +694,7 @@ int at91sam7_erase_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_protect_check(struct flash_bank_s *bank) static int at91sam7_protect_check(struct flash_bank_s *bank)
{ {
u8 lock_pos, gpnvm_pos; u8 lock_pos, gpnvm_pos;
u32 status; u32 status;
@ -752,7 +754,7 @@ int at91sam7_protect_check(struct flash_bank_s *bank)
# flash bank at91sam7 0x00100000 0 0 4 0 0 AT91SAM7XC256 1 16 64 256 3 0 ==== NOT RECOMENDED !!! ==== # flash bank at91sam7 0x00100000 0 0 4 0 0 AT91SAM7XC256 1 16 64 256 3 0 ==== NOT RECOMENDED !!! ====
# flash bank at91sam7 0 0 0 0 0 (old style, full auto-detection) ==== NOT RECOMENDED !!! ==== # flash bank at91sam7 0 0 0 0 0 (old style, full auto-detection) ==== NOT RECOMENDED !!! ====
****************************************************************************************************************************************************************************************/ ****************************************************************************************************************************************************************************************/
int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
flash_bank_t *t_bank = bank; flash_bank_t *t_bank = bank;
at91sam7_flash_bank_t *at91sam7_info; at91sam7_flash_bank_t *at91sam7_info;
@ -864,7 +866,7 @@ int at91sam7_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, ch
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_erase(struct flash_bank_s *bank, int first, int last) static int at91sam7_erase(struct flash_bank_s *bank, int first, int last)
{ {
at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv;
int sec; int sec;
@ -932,7 +934,7 @@ int at91sam7_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last) static int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
u32 cmd; u32 cmd;
u32 sector, pagen; u32 sector, pagen;
@ -981,7 +983,7 @@ int at91sam7_protect(struct flash_bank_s *bank, int set, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
int retval; int retval;
at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv;
@ -1050,7 +1052,7 @@ int at91sam7_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_probe(struct flash_bank_s *bank) static int at91sam7_probe(struct flash_bank_s *bank)
{ {
/* we can't probe on an at91sam7 /* we can't probe on an at91sam7
* if this is an at91sam7, it has the configured flash */ * if this is an at91sam7, it has the configured flash */
@ -1069,7 +1071,7 @@ int at91sam7_probe(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size) static int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
int printed; int printed;
at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv; at91sam7_flash_bank_t *at91sam7_info = bank->driver_priv;
@ -1130,7 +1132,7 @@ int at91sam7_info(struct flash_bank_s *bank, char *buf, int buf_size)
* The maximum number of write/erase cycles for Non volatile Memory bits is 100. this includes * The maximum number of write/erase cycles for Non volatile Memory bits is 100. this includes
* Lock Bits (LOCKx), General Purpose NVM bits (GPNVMx) and the Security Bit. * Lock Bits (LOCKx), General Purpose NVM bits (GPNVMx) and the Security Bit.
*/ */
int at91sam7_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int at91sam7_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
int bit; int bit;

View File

@ -51,22 +51,22 @@ There are some things to notice
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
int at91sam7_old_register_commands(struct command_context_s *cmd_ctx); static int at91sam7_old_register_commands(struct command_context_s *cmd_ctx);
int at91sam7_old_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int at91sam7_old_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int at91sam7_old_erase(struct flash_bank_s *bank, int first, int last); static int at91sam7_old_erase(struct flash_bank_s *bank, int first, int last);
int at91sam7_old_protect(struct flash_bank_s *bank, int set, int first, int last); static int at91sam7_old_protect(struct flash_bank_s *bank, int set, int first, int last);
int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int at91sam7_old_probe(struct flash_bank_s *bank); static int at91sam7_old_probe(struct flash_bank_s *bank);
int at91sam7_old_auto_probe(struct flash_bank_s *bank); //static int at91sam7_old_auto_probe(struct flash_bank_s *bank);
int at91sam7_old_erase_check(struct flash_bank_s *bank); static int at91sam7_old_erase_check(struct flash_bank_s *bank);
int at91sam7_old_protect_check(struct flash_bank_s *bank); static int at91sam7_old_protect_check(struct flash_bank_s *bank);
int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size); static int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size);
u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane); static u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane);
void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode); static void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode);
u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbits, int timeout); static u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbits, int timeout);
int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd, u16 pagen); static int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd, u16 pagen);
int at91sam7_old_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int at91sam7_old_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
flash_driver_t at91sam7_old_flash = flash_driver_t at91sam7_old_flash =
{ {
@ -83,12 +83,12 @@ flash_driver_t at91sam7_old_flash =
.info = at91sam7_old_info .info = at91sam7_old_info
}; };
u32 MC_FMR_old[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 }; static u32 MC_FMR_old[4] = { 0xFFFFFF60, 0xFFFFFF70, 0xFFFFFF80, 0xFFFFFF90 };
u32 MC_FCR_old[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 }; static u32 MC_FCR_old[4] = { 0xFFFFFF64, 0xFFFFFF74, 0xFFFFFF84, 0xFFFFFF94 };
u32 MC_FSR_old[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 }; static u32 MC_FSR_old[4] = { 0xFFFFFF68, 0xFFFFFF78, 0xFFFFFF88, 0xFFFFFF98 };
char * EPROC_old[8]= {"Unknown","ARM946-E","ARM7TDMI","Unknown","ARM920T","ARM926EJ-S","Unknown","Unknown"}; static char * EPROC_old[8]= {"Unknown","ARM946-E","ARM7TDMI","Unknown","ARM920T","ARM926EJ-S","Unknown","Unknown"};
long NVPSIZ_old[16] = { static long NVPSIZ_old[16] = {
0, 0,
0x2000, /* 8K */ 0x2000, /* 8K */
0x4000, /* 16K */ 0x4000, /* 16K */
@ -107,7 +107,8 @@ long NVPSIZ_old[16] = {
-1 -1
}; };
long SRAMSIZ_old[16] = { #if 0
static long SRAMSIZ_old[16] = {
-1, -1,
0x0400, /* 1K */ 0x0400, /* 1K */
0x0800, /* 2K */ 0x0800, /* 2K */
@ -125,8 +126,9 @@ long SRAMSIZ_old[16] = {
0x18000, /* 96K */ 0x18000, /* 96K */
0x80000, /* 512K */ 0x80000, /* 512K */
}; };
#endif
int at91sam7_old_register_commands(struct command_context_s *cmd_ctx) static int at91sam7_old_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *at91sam7_old_cmd = register_command(cmd_ctx, NULL, "at91sam7", NULL, COMMAND_ANY, NULL); command_t *at91sam7_old_cmd = register_command(cmd_ctx, NULL, "at91sam7", NULL, COMMAND_ANY, NULL);
register_command(cmd_ctx, at91sam7_old_cmd, "gpnvm", at91sam7_old_handle_gpnvm_command, COMMAND_EXEC, register_command(cmd_ctx, at91sam7_old_cmd, "gpnvm", at91sam7_old_handle_gpnvm_command, COMMAND_EXEC,
@ -135,7 +137,7 @@ int at91sam7_old_register_commands(struct command_context_s *cmd_ctx)
return ERROR_OK; return ERROR_OK;
} }
u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane) static u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 fsr; u32 fsr;
@ -146,7 +148,7 @@ u32 at91sam7_old_get_flash_status(flash_bank_t *bank, u8 flashplane)
} }
/* Read clock configuration and set at91sam7_old_info->usec_clocks*/ /* Read clock configuration and set at91sam7_old_info->usec_clocks*/
void at91sam7_old_read_clock_info(flash_bank_t *bank) static void at91sam7_old_read_clock_info(flash_bank_t *bank)
{ {
at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -210,7 +212,7 @@ void at91sam7_old_read_clock_info(flash_bank_t *bank)
} }
/* Setup the timimg registers for nvbits or normal flash */ /* Setup the timimg registers for nvbits or normal flash */
void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode) static void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode)
{ {
u32 fmr, fmcn = 0, fws = 0; u32 fmr, fmcn = 0, fws = 0;
at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv;
@ -251,7 +253,7 @@ void at91sam7_old_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode)
at91sam7_old_info->flashmode[flashplane] = mode; at91sam7_old_info->flashmode[flashplane] = mode;
} }
u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbits, int timeout) static u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbits, int timeout)
{ {
u32 status; u32 status;
@ -279,7 +281,7 @@ u32 at91sam7_old_wait_status_busy(flash_bank_t *bank, u8 flashplane, u32 waitbit
/* Send one command to the AT91SAM flash controller */ /* Send one command to the AT91SAM flash controller */
int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd, u16 pagen) static int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd, u16 pagen)
{ {
u32 fcr; u32 fcr;
at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv;
@ -307,7 +309,7 @@ int at91sam7_old_flash_command(struct flash_bank_s *bank, u8 flashplane, u8 cmd,
} }
/* Read device id register, main clock frequency register and fill in driver info structure */ /* Read device id register, main clock frequency register and fill in driver info structure */
int at91sam7_old_read_part_info(struct flash_bank_s *bank) static int at91sam7_old_read_part_info(struct flash_bank_s *bank)
{ {
at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -574,7 +576,7 @@ int at91sam7_old_erase_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_old_protect_check(struct flash_bank_s *bank) static int at91sam7_old_protect_check(struct flash_bank_s *bank)
{ {
u32 status; u32 status;
int flashplane; int flashplane;
@ -625,7 +627,7 @@ int at91sam7_old_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd
return ERROR_OK; return ERROR_OK;
} }
int at91sam7_old_erase(struct flash_bank_s *bank, int first, int last) static int at91sam7_old_erase(struct flash_bank_s *bank, int first, int last)
{ {
at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv;
u8 flashplane; u8 flashplane;
@ -716,7 +718,7 @@ int at91sam7_old_protect(struct flash_bank_s *bank, int set, int first, int last
} }
int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -784,7 +786,7 @@ int at91sam7_old_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 co
} }
int at91sam7_old_probe(struct flash_bank_s *bank) static int at91sam7_old_probe(struct flash_bank_s *bank)
{ {
/* we can't probe on an at91sam7_old /* we can't probe on an at91sam7_old
* if this is an at91sam7_old, it has the configured flash * if this is an at91sam7_old, it has the configured flash
@ -811,7 +813,7 @@ int at91sam7_old_probe(struct flash_bank_s *bank)
} }
int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size) static int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
int printed, flashplane; int printed, flashplane;
at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv; at91sam7_old_flash_bank_t *at91sam7_old_info = bank->driver_priv;
@ -871,7 +873,7 @@ int at91sam7_old_info(struct flash_bank_s *bank, char *buf, int buf_size)
* The maximum number of write/erase cycles for Non Volatile Memory bits is 100. This includes * The maximum number of write/erase cycles for Non Volatile Memory bits is 100. This includes
* Lock Bits (LOCKx), General Purpose NVM bits (GPNVMx) and the Security Bit. * Lock Bits (LOCKx), General Purpose NVM bits (GPNVMx) and the Security Bit.
*/ */
int at91sam7_old_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int at91sam7_old_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
int bit; int bit;

View File

@ -38,17 +38,17 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
int cfi_register_commands(struct command_context_s *cmd_ctx); static int cfi_register_commands(struct command_context_s *cmd_ctx);
int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int cfi_erase(struct flash_bank_s *bank, int first, int last); static int cfi_erase(struct flash_bank_s *bank, int first, int last);
int cfi_protect(struct flash_bank_s *bank, int set, int first, int last); static int cfi_protect(struct flash_bank_s *bank, int set, int first, int last);
int cfi_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int cfi_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int cfi_probe(struct flash_bank_s *bank); static int cfi_probe(struct flash_bank_s *bank);
int cfi_auto_probe(struct flash_bank_s *bank); static int cfi_auto_probe(struct flash_bank_s *bank);
int cfi_protect_check(struct flash_bank_s *bank); static int cfi_protect_check(struct flash_bank_s *bank);
int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size); static int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size);
int cfi_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); //static int cfi_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
#define CFI_MAX_BUS_WIDTH 4 #define CFI_MAX_BUS_WIDTH 4
#define CFI_MAX_CHIP_WIDTH 4 #define CFI_MAX_CHIP_WIDTH 4
@ -71,19 +71,19 @@ flash_driver_t cfi_flash =
.info = cfi_info .info = cfi_info
}; };
cfi_unlock_addresses_t cfi_unlock_addresses[] = static cfi_unlock_addresses_t cfi_unlock_addresses[] =
{ {
[CFI_UNLOCK_555_2AA] = { .unlock1 = 0x555, .unlock2 = 0x2aa }, [CFI_UNLOCK_555_2AA] = { .unlock1 = 0x555, .unlock2 = 0x2aa },
[CFI_UNLOCK_5555_2AAA] = { .unlock1 = 0x5555, .unlock2 = 0x2aaa }, [CFI_UNLOCK_5555_2AAA] = { .unlock1 = 0x5555, .unlock2 = 0x2aaa },
}; };
/* CFI fixups foward declarations */ /* CFI fixups foward declarations */
void cfi_fixup_0002_erase_regions(flash_bank_t *flash, void *param); static void cfi_fixup_0002_erase_regions(flash_bank_t *flash, void *param);
void cfi_fixup_0002_unlock_addresses(flash_bank_t *flash, void *param); static void cfi_fixup_0002_unlock_addresses(flash_bank_t *flash, void *param);
void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *flash, void *param); static void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *flash, void *param);
/* fixup after identifying JEDEC manufactuer and ID */ /* fixup after identifying JEDEC manufactuer and ID */
cfi_fixup_t cfi_jedec_fixups[] = { static cfi_fixup_t cfi_jedec_fixups[] = {
{CFI_MFR_SST, 0x00D4, cfi_fixup_non_cfi, NULL}, {CFI_MFR_SST, 0x00D4, cfi_fixup_non_cfi, NULL},
{CFI_MFR_SST, 0x00D5, cfi_fixup_non_cfi, NULL}, {CFI_MFR_SST, 0x00D5, cfi_fixup_non_cfi, NULL},
{CFI_MFR_SST, 0x00D6, cfi_fixup_non_cfi, NULL}, {CFI_MFR_SST, 0x00D6, cfi_fixup_non_cfi, NULL},
@ -101,7 +101,7 @@ cfi_fixup_t cfi_jedec_fixups[] = {
}; };
/* fixup after reading cmdset 0002 primary query table */ /* fixup after reading cmdset 0002 primary query table */
cfi_fixup_t cfi_0002_fixups[] = { static cfi_fixup_t cfi_0002_fixups[] = {
{CFI_MFR_SST, 0x00D4, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, {CFI_MFR_SST, 0x00D4, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]},
{CFI_MFR_SST, 0x00D5, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, {CFI_MFR_SST, 0x00D5, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]},
{CFI_MFR_SST, 0x00D6, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]}, {CFI_MFR_SST, 0x00D6, cfi_fixup_0002_unlock_addresses, &cfi_unlock_addresses[CFI_UNLOCK_5555_2AAA]},
@ -117,11 +117,11 @@ cfi_fixup_t cfi_0002_fixups[] = {
}; };
/* fixup after reading cmdset 0001 primary query table */ /* fixup after reading cmdset 0001 primary query table */
cfi_fixup_t cfi_0001_fixups[] = { static cfi_fixup_t cfi_0001_fixups[] = {
{0, 0, NULL, NULL} {0, 0, NULL, NULL}
}; };
void cfi_fixup(flash_bank_t *bank, cfi_fixup_t *fixups) static void cfi_fixup(flash_bank_t *bank, cfi_fixup_t *fixups)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
cfi_fixup_t *f; cfi_fixup_t *f;
@ -154,7 +154,7 @@ __inline__ u32 flash_address(flash_bank_t *bank, int sector, u32 offset)
} }
void cfi_command(flash_bank_t *bank, u8 cmd, u8 *cmd_buf) static void cfi_command(flash_bank_t *bank, u8 cmd, u8 *cmd_buf)
{ {
int i; int i;
@ -184,7 +184,7 @@ void cfi_command(flash_bank_t *bank, u8 cmd, u8 *cmd_buf)
* flash banks are expected to be made of similar chips * flash banks are expected to be made of similar chips
* the query result should be the same for all * the query result should be the same for all
*/ */
u8 cfi_query_u8(flash_bank_t *bank, int sector, u32 offset) static u8 cfi_query_u8(flash_bank_t *bank, int sector, u32 offset)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u8 data[CFI_MAX_BUS_WIDTH]; u8 data[CFI_MAX_BUS_WIDTH];
@ -201,7 +201,7 @@ u8 cfi_query_u8(flash_bank_t *bank, int sector, u32 offset)
* in case of a bank made of multiple chips, * in case of a bank made of multiple chips,
* the individual values are ORed * the individual values are ORed
*/ */
u8 cfi_get_u8(flash_bank_t *bank, int sector, u32 offset) static u8 cfi_get_u8(flash_bank_t *bank, int sector, u32 offset)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u8 data[CFI_MAX_BUS_WIDTH]; u8 data[CFI_MAX_BUS_WIDTH];
@ -226,7 +226,7 @@ u8 cfi_get_u8(flash_bank_t *bank, int sector, u32 offset)
} }
} }
u16 cfi_query_u16(flash_bank_t *bank, int sector, u32 offset) static u16 cfi_query_u16(flash_bank_t *bank, int sector, u32 offset)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u8 data[CFI_MAX_BUS_WIDTH * 2]; u8 data[CFI_MAX_BUS_WIDTH * 2];
@ -239,7 +239,7 @@ u16 cfi_query_u16(flash_bank_t *bank, int sector, u32 offset)
return data[bank->bus_width - 1] | data[(2 * bank->bus_width) - 1] << 8; return data[bank->bus_width - 1] | data[(2 * bank->bus_width) - 1] << 8;
} }
u32 cfi_query_u32(flash_bank_t *bank, int sector, u32 offset) static u32 cfi_query_u32(flash_bank_t *bank, int sector, u32 offset)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u8 data[CFI_MAX_BUS_WIDTH * 4]; u8 data[CFI_MAX_BUS_WIDTH * 4];
@ -253,7 +253,7 @@ u32 cfi_query_u32(flash_bank_t *bank, int sector, u32 offset)
data[(3 * bank->bus_width) - 1] << 16 | data[(4 * bank->bus_width) - 1] << 24; data[(3 * bank->bus_width) - 1] << 16 | data[(4 * bank->bus_width) - 1] << 24;
} }
void cfi_intel_clear_status_register(flash_bank_t *bank) static void cfi_intel_clear_status_register(flash_bank_t *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u8 command[8]; u8 command[8];
@ -343,7 +343,7 @@ int cfi_spansion_wait_status_busy(flash_bank_t *bank, int timeout)
return(ERROR_FLASH_BUSY); return(ERROR_FLASH_BUSY);
} }
int cfi_read_intel_pri_ext(flash_bank_t *bank) static int cfi_read_intel_pri_ext(flash_bank_t *bank)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -406,7 +406,7 @@ int cfi_read_intel_pri_ext(flash_bank_t *bank)
return ERROR_OK; return ERROR_OK;
} }
int cfi_read_spansion_pri_ext(flash_bank_t *bank) static int cfi_read_spansion_pri_ext(flash_bank_t *bank)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -471,7 +471,7 @@ int cfi_read_spansion_pri_ext(flash_bank_t *bank)
return ERROR_OK; return ERROR_OK;
} }
int cfi_read_atmel_pri_ext(flash_bank_t *bank) static int cfi_read_atmel_pri_ext(flash_bank_t *bank)
{ {
int retval; int retval;
cfi_atmel_pri_ext_t atmel_pri_ext; cfi_atmel_pri_ext_t atmel_pri_ext;
@ -538,7 +538,7 @@ int cfi_read_atmel_pri_ext(flash_bank_t *bank)
return ERROR_OK; return ERROR_OK;
} }
int cfi_read_0002_pri_ext(flash_bank_t *bank) static int cfi_read_0002_pri_ext(flash_bank_t *bank)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -552,7 +552,7 @@ int cfi_read_0002_pri_ext(flash_bank_t *bank)
} }
} }
int cfi_spansion_info(struct flash_bank_s *bank, char *buf, int buf_size) static int cfi_spansion_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
int printed; int printed;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -587,7 +587,7 @@ int cfi_spansion_info(struct flash_bank_s *bank, char *buf, int buf_size)
return ERROR_OK; return ERROR_OK;
} }
int cfi_intel_info(struct flash_bank_s *bank, char *buf, int buf_size) static int cfi_intel_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
int printed; int printed;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -616,7 +616,7 @@ int cfi_intel_info(struct flash_bank_s *bank, char *buf, int buf_size)
return ERROR_OK; return ERROR_OK;
} }
int cfi_register_commands(struct command_context_s *cmd_ctx) static int cfi_register_commands(struct command_context_s *cmd_ctx)
{ {
/*command_t *cfi_cmd = */ /*command_t *cfi_cmd = */
register_command(cmd_ctx, NULL, "cfi", NULL, COMMAND_ANY, "flash bank cfi <base> <size> <chip_width> <bus_width> <targetNum> [jedec_probe/x16_as_x8]"); register_command(cmd_ctx, NULL, "cfi", NULL, COMMAND_ANY, "flash bank cfi <base> <size> <chip_width> <bus_width> <targetNum> [jedec_probe/x16_as_x8]");
@ -629,7 +629,7 @@ int cfi_register_commands(struct command_context_s *cmd_ctx)
/* flash_bank cfi <base> <size> <chip_width> <bus_width> <target#> [options] /* flash_bank cfi <base> <size> <chip_width> <bus_width> <target#> [options]
*/ */
int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
cfi_flash_bank_t *cfi_info; cfi_flash_bank_t *cfi_info;
int i; int i;
@ -677,7 +677,7 @@ int cfi_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **
return ERROR_OK; return ERROR_OK;
} }
int cfi_intel_erase(struct flash_bank_s *bank, int first, int last) static int cfi_intel_erase(struct flash_bank_s *bank, int first, int last)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -721,7 +721,7 @@ int cfi_intel_erase(struct flash_bank_s *bank, int first, int last)
} }
int cfi_spansion_erase(struct flash_bank_s *bank, int first, int last) static int cfi_spansion_erase(struct flash_bank_s *bank, int first, int last)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -787,7 +787,7 @@ int cfi_spansion_erase(struct flash_bank_s *bank, int first, int last)
return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command); return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command);
} }
int cfi_erase(struct flash_bank_s *bank, int first, int last) static int cfi_erase(struct flash_bank_s *bank, int first, int last)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -822,7 +822,7 @@ int cfi_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int cfi_intel_protect(struct flash_bank_s *bank, int set, int first, int last) static int cfi_intel_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -939,7 +939,7 @@ int cfi_intel_protect(struct flash_bank_s *bank, int set, int first, int last)
return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command); return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command);
} }
int cfi_protect(struct flash_bank_s *bank, int set, int first, int last) static int cfi_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -1018,7 +1018,7 @@ static void cfi_fix_code_endian(target_t *target, u8 *dest, const u32 *src, u32
} }
} }
u32 cfi_command_val(flash_bank_t *bank, u8 cmd) static u32 cfi_command_val(flash_bank_t *bank, u8 cmd)
{ {
target_t *target = bank->target; target_t *target = bank->target;
@ -1041,7 +1041,7 @@ u32 cfi_command_val(flash_bank_t *bank, u8 cmd)
} }
} }
int cfi_intel_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address, u32 count) static int cfi_intel_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address, u32 count)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -1285,7 +1285,7 @@ cleanup:
return retval; return retval;
} }
int cfi_spansion_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address, u32 count) static int cfi_spansion_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address, u32 count)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext; cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext;
@ -1547,7 +1547,7 @@ int cfi_spansion_write_block(struct flash_bank_s *bank, u8 *buffer, u32 address,
return exit_code; return exit_code;
} }
int cfi_intel_write_word(struct flash_bank_s *bank, u8 *word, u32 address) static int cfi_intel_write_word(struct flash_bank_s *bank, u8 *word, u32 address)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -1581,7 +1581,7 @@ int cfi_intel_write_word(struct flash_bank_s *bank, u8 *word, u32 address)
return ERROR_OK; return ERROR_OK;
} }
int cfi_intel_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) static int cfi_intel_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -1673,7 +1673,7 @@ int cfi_intel_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u3
return ERROR_OK; return ERROR_OK;
} }
int cfi_spansion_write_word(struct flash_bank_s *bank, u8 *word, u32 address) static int cfi_spansion_write_word(struct flash_bank_s *bank, u8 *word, u32 address)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -1719,7 +1719,7 @@ int cfi_spansion_write_word(struct flash_bank_s *bank, u8 *word, u32 address)
return ERROR_OK; return ERROR_OK;
} }
int cfi_spansion_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) static int cfi_spansion_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -1811,7 +1811,7 @@ int cfi_spansion_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount,
return ERROR_OK; return ERROR_OK;
} }
int cfi_write_word(struct flash_bank_s *bank, u8 *word, u32 address) static int cfi_write_word(struct flash_bank_s *bank, u8 *word, u32 address)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -1832,7 +1832,7 @@ int cfi_write_word(struct flash_bank_s *bank, u8 *word, u32 address)
return ERROR_FLASH_OPERATION_FAILED; return ERROR_FLASH_OPERATION_FAILED;
} }
int cfi_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address) static int cfi_write_words(struct flash_bank_s *bank, u8 *word, u32 wordcount, u32 address)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -2062,7 +2062,7 @@ int cfi_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, current_word); return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, current_word);
} }
void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *bank, void *param) static void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *bank, void *param)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext; cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext;
@ -2070,7 +2070,7 @@ void cfi_fixup_atmel_reversed_erase_regions(flash_bank_t *bank, void *param)
pri_ext->_reversed_geometry = 1; pri_ext->_reversed_geometry = 1;
} }
void cfi_fixup_0002_erase_regions(flash_bank_t *bank, void *param) static void cfi_fixup_0002_erase_regions(flash_bank_t *bank, void *param)
{ {
int i; int i;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -2092,7 +2092,7 @@ void cfi_fixup_0002_erase_regions(flash_bank_t *bank, void *param)
} }
} }
void cfi_fixup_0002_unlock_addresses(flash_bank_t *bank, void *param) static void cfi_fixup_0002_unlock_addresses(flash_bank_t *bank, void *param)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext; cfi_spansion_pri_ext_t *pri_ext = cfi_info->pri_ext;
@ -2102,7 +2102,7 @@ void cfi_fixup_0002_unlock_addresses(flash_bank_t *bank, void *param)
pri_ext->_unlock2 = unlock_addresses->unlock2; pri_ext->_unlock2 = unlock_addresses->unlock2;
} }
int cfi_probe(struct flash_bank_s *bank) static int cfi_probe(struct flash_bank_s *bank)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -2379,7 +2379,7 @@ int cfi_probe(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int cfi_auto_probe(struct flash_bank_s *bank) static int cfi_auto_probe(struct flash_bank_s *bank)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
if (cfi_info->probed) if (cfi_info->probed)
@ -2388,7 +2388,7 @@ int cfi_auto_probe(struct flash_bank_s *bank)
} }
int cfi_intel_protect_check(struct flash_bank_s *bank) static int cfi_intel_protect_check(struct flash_bank_s *bank)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -2421,7 +2421,7 @@ int cfi_intel_protect_check(struct flash_bank_s *bank)
return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command); return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command);
} }
int cfi_spansion_protect_check(struct flash_bank_s *bank) static int cfi_spansion_protect_check(struct flash_bank_s *bank)
{ {
int retval; int retval;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -2462,7 +2462,7 @@ int cfi_spansion_protect_check(struct flash_bank_s *bank)
return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command); return target->type->write_memory(target, flash_address(bank, 0, 0x0), bank->bus_width, 1, command);
} }
int cfi_protect_check(struct flash_bank_s *bank) static int cfi_protect_check(struct flash_bank_s *bank)
{ {
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;
@ -2492,7 +2492,7 @@ int cfi_protect_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size) static int cfi_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
int printed; int printed;
cfi_flash_bank_t *cfi_info = bank->driver_priv; cfi_flash_bank_t *cfi_info = bank->driver_priv;

View File

@ -36,19 +36,21 @@
#include "../target/embeddedice.h" #include "../target/embeddedice.h"
#include "types.h" #include "types.h"
int ecosflash_register_commands(struct command_context_s *cmd_ctx); static int ecosflash_register_commands(struct command_context_s *cmd_ctx);
int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int ecosflash_erase(struct flash_bank_s *bank, int first, int last); static int ecosflash_erase(struct flash_bank_s *bank, int first, int last);
int ecosflash_protect(struct flash_bank_s *bank, int set, int first, int last); static int ecosflash_protect(struct flash_bank_s *bank, int set, int first, int last);
int ecosflash_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int ecosflash_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int ecosflash_probe(struct flash_bank_s *bank); static int ecosflash_probe(struct flash_bank_s *bank);
int ecosflash_protect_check(struct flash_bank_s *bank); static int ecosflash_protect_check(struct flash_bank_s *bank);
int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size); static int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size);
u32 ecosflash_get_flash_status(flash_bank_t *bank); #if 0
void ecosflash_set_flash_mode(flash_bank_t *bank,int mode); static u32 ecosflash_get_flash_status(flash_bank_t *bank);
u32 ecosflash_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout); static void ecosflash_set_flash_mode(flash_bank_t *bank,int mode);
int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static u32 ecosflash_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout);
static int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
#endif
flash_driver_t ecosflash_flash = flash_driver_t ecosflash_flash =
{ {
@ -136,7 +138,7 @@ flash_errmsg(int err)
/* flash bank ecosflash <base> <size> <chip_width> <bus_width> <target#> <driverPath> /* flash bank ecosflash <base> <size> <chip_width> <bus_width> <target#> <driverPath>
*/ */
int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
ecosflash_flash_bank_t *info; ecosflash_flash_bank_t *info;
@ -181,7 +183,7 @@ int ecosflash_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, c
return ERROR_OK; return ERROR_OK;
} }
int loadDriver(ecosflash_flash_bank_t *info) static int loadDriver(ecosflash_flash_bank_t *info)
{ {
u32 buf_cnt; u32 buf_cnt;
u32 image_size; u32 image_size;
@ -230,7 +232,7 @@ static int const OFFSET_FLASH_SIZE=0x8;
static int const OFFSET_GET_WORKAREA=0x18; static int const OFFSET_GET_WORKAREA=0x18;
static int const OFFSET_GET_WORKAREA_SIZE=0x4; static int const OFFSET_GET_WORKAREA_SIZE=0x4;
int runCode(ecosflash_flash_bank_t *info, static int runCode(ecosflash_flash_bank_t *info,
u32 codeStart, u32 codeStop, u32 r0, u32 r1, u32 r2, u32 codeStart, u32 codeStop, u32 r0, u32 r1, u32 r2,
u32 *result, u32 *result,
/* timeout in ms */ /* timeout in ms */
@ -271,7 +273,7 @@ int runCode(ecosflash_flash_bank_t *info,
return ERROR_OK; return ERROR_OK;
} }
int eCosBoard_erase(ecosflash_flash_bank_t *info, u32 address, u32 len) static int eCosBoard_erase(ecosflash_flash_bank_t *info, u32 address, u32 len)
{ {
int retval; int retval;
int timeout = (len / 20480 + 1) * 1000; /*asume 20 KB/s*/ int timeout = (len / 20480 + 1) * 1000; /*asume 20 KB/s*/
@ -302,7 +304,7 @@ int eCosBoard_erase(ecosflash_flash_bank_t *info, u32 address, u32 len)
return ERROR_OK; return ERROR_OK;
} }
int eCosBoard_flash(ecosflash_flash_bank_t *info, void *data, u32 address, u32 len) static int eCosBoard_flash(ecosflash_flash_bank_t *info, void *data, u32 address, u32 len)
{ {
target_t *target=info->target; target_t *target=info->target;
const int chunk=8192; const int chunk=8192;
@ -361,12 +363,12 @@ int eCosBoard_flash(ecosflash_flash_bank_t *info, void *data, u32 address, u32 l
return ERROR_OK; return ERROR_OK;
} }
int ecosflash_probe(struct flash_bank_s *bank) static int ecosflash_probe(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
int ecosflash_register_commands(struct command_context_s *cmd_ctx) static int ecosflash_register_commands(struct command_context_s *cmd_ctx)
{ {
register_command(cmd_ctx, NULL, "ecosflash", NULL, COMMAND_ANY, NULL); register_command(cmd_ctx, NULL, "ecosflash", NULL, COMMAND_ANY, NULL);
@ -396,7 +398,8 @@ static void command(flash_bank_t *bank, u8 cmd, u8 *cmd_buf)
} }
#endif #endif
u32 ecosflash_address(struct flash_bank_s *bank, u32 address) #if 0
static u32 ecosflash_address(struct flash_bank_s *bank, u32 address)
{ {
u32 retval = 0; u32 retval = 0;
switch(bank->bus_width) switch(bank->bus_width)
@ -411,54 +414,57 @@ u32 ecosflash_address(struct flash_bank_s *bank, u32 address)
return retval + bank->base; return retval + bank->base;
} }
#endif
int ecosflash_erase(struct flash_bank_s *bank, int first, int last) static int ecosflash_erase(struct flash_bank_s *bank, int first, int last)
{ {
struct flash_bank_s *c=bank; struct flash_bank_s *c=bank;
ecosflash_flash_bank_t *info = bank->driver_priv; ecosflash_flash_bank_t *info = bank->driver_priv;
return eCosBoard_erase(info, c->base+first*sectorSize, sectorSize*(last-first+1)); return eCosBoard_erase(info, c->base+first*sectorSize, sectorSize*(last-first+1));
} }
int ecosflash_protect(struct flash_bank_s *bank, int set, int first, int last) static int ecosflash_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
return ERROR_OK; return ERROR_OK;
} }
int ecosflash_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int ecosflash_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
ecosflash_flash_bank_t *info = bank->driver_priv; ecosflash_flash_bank_t *info = bank->driver_priv;
struct flash_bank_s *c=bank; struct flash_bank_s *c=bank;
return eCosBoard_flash(info, buffer, c->base+offset, count); return eCosBoard_flash(info, buffer, c->base+offset, count);
} }
int ecosflash_protect_check(struct flash_bank_s *bank) static int ecosflash_protect_check(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size) static int ecosflash_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
ecosflash_flash_bank_t *info = bank->driver_priv; ecosflash_flash_bank_t *info = bank->driver_priv;
snprintf(buf, buf_size, "eCos flash driver: %s", info->driverPath); snprintf(buf, buf_size, "eCos flash driver: %s", info->driverPath);
return ERROR_OK; return ERROR_OK;
} }
u32 ecosflash_get_flash_status(flash_bank_t *bank) #if 0
static u32 ecosflash_get_flash_status(flash_bank_t *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
void ecosflash_set_flash_mode(flash_bank_t *bank,int mode) static void ecosflash_set_flash_mode(flash_bank_t *bank,int mode)
{ {
} }
u32 ecosflash_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout) static u32 ecosflash_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout)
{ {
return ERROR_OK; return ERROR_OK;
} }
int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int ecosflash_handle_gpnvm_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
return ERROR_OK; return ERROR_OK;
} }
#endif

View File

@ -48,19 +48,17 @@
#include <inttypes.h> #include <inttypes.h>
/* command handlers */ /* command handlers */
int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
flash_bank_t *get_flash_bank_by_addr(target_t *target, u32 addr);
/* flash drivers /* flash drivers
*/ */
@ -265,7 +263,7 @@ flash_bank_t *get_flash_bank_by_num(int num)
return p; return p;
} }
int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
int retval; int retval;
int i; int i;
@ -345,7 +343,7 @@ int handle_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *p; flash_bank_t *p;
int i = 0; int i = 0;
@ -396,7 +394,7 @@ int handle_flash_info_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *p; flash_bank_t *p;
int retval; int retval;
@ -432,7 +430,7 @@ int handle_flash_probe_command(struct command_context_s *cmd_ctx, char *cmd, cha
return ERROR_OK; return ERROR_OK;
} }
int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *p; flash_bank_t *p;
int retval; int retval;
@ -476,7 +474,7 @@ int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, char *cm
return ERROR_OK; return ERROR_OK;
} }
int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *p; flash_bank_t *p;
int retval; int retval;
@ -524,7 +522,7 @@ int handle_flash_erase_address_command(struct command_context_s *cmd_ctx, char *
return retval; return retval;
} }
int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *p; flash_bank_t *p;
int retval; int retval;
@ -558,7 +556,7 @@ int handle_flash_protect_check_command(struct command_context_s *cmd_ctx, char *
return ERROR_OK; return ERROR_OK;
} }
int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
if (argc > 2) if (argc > 2)
{ {
@ -595,7 +593,7 @@ int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *cmd, cha
return ERROR_OK; return ERROR_OK;
} }
int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
if (argc > 3) if (argc > 3)
{ {
@ -634,7 +632,7 @@ int handle_flash_protect_command(struct command_context_s *cmd_ctx, char *cmd, c
return ERROR_OK; return ERROR_OK;
} }
int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
target_t *target = get_current_target(cmd_ctx); target_t *target = get_current_target(cmd_ctx);
@ -719,7 +717,7 @@ int handle_flash_write_image_command(struct command_context_s *cmd_ctx, char *cm
return retval; return retval;
} }
int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
int err = ERROR_OK, retval; int err = ERROR_OK, retval;
u32 address; u32 address;
@ -819,7 +817,7 @@ int handle_flash_fill_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
u32 offset; u32 offset;
u8 *buffer; u8 *buffer;

View File

@ -51,17 +51,17 @@
* - 2378 * - 2378
*/ */
int lpc2000_register_commands(struct command_context_s *cmd_ctx); static int lpc2000_register_commands(struct command_context_s *cmd_ctx);
int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int lpc2000_erase(struct flash_bank_s *bank, int first, int last); static int lpc2000_erase(struct flash_bank_s *bank, int first, int last);
int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last); static int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last);
int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int lpc2000_probe(struct flash_bank_s *bank); static int lpc2000_probe(struct flash_bank_s *bank);
int lpc2000_erase_check(struct flash_bank_s *bank); static int lpc2000_erase_check(struct flash_bank_s *bank);
int lpc2000_protect_check(struct flash_bank_s *bank); static int lpc2000_protect_check(struct flash_bank_s *bank);
int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size); static int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size);
int lpc2000_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int lpc2000_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
flash_driver_t lpc2000_flash = flash_driver_t lpc2000_flash =
{ {
@ -78,7 +78,7 @@ flash_driver_t lpc2000_flash =
.info = lpc2000_info .info = lpc2000_info
}; };
int lpc2000_register_commands(struct command_context_s *cmd_ctx) static int lpc2000_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *lpc2000_cmd = register_command(cmd_ctx, NULL, "lpc2000", NULL, COMMAND_ANY, NULL); command_t *lpc2000_cmd = register_command(cmd_ctx, NULL, "lpc2000", NULL, COMMAND_ANY, NULL);
@ -88,7 +88,7 @@ int lpc2000_register_commands(struct command_context_s *cmd_ctx)
return ERROR_OK; return ERROR_OK;
} }
int lpc2000_build_sector_list(struct flash_bank_s *bank) static int lpc2000_build_sector_list(struct flash_bank_s *bank)
{ {
lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv;
@ -239,7 +239,7 @@ int lpc2000_build_sector_list(struct flash_bank_s *bank)
* 0x20 to 0x2b: command result table * 0x20 to 0x2b: command result table
* 0x2c to 0xac: stack (only 128b needed) * 0x2c to 0xac: stack (only 128b needed)
*/ */
int lpc2000_iap_call(flash_bank_t *bank, int code, u32 param_table[5], u32 result_table[2]) static int lpc2000_iap_call(flash_bank_t *bank, int code, u32 param_table[5], u32 result_table[2])
{ {
int retval; int retval;
lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv;
@ -322,14 +322,14 @@ int lpc2000_iap_call(flash_bank_t *bank, int code, u32 param_table[5], u32 resul
return status_code; return status_code;
} }
int lpc2000_iap_blank_check(struct flash_bank_s *bank, int first, int last) static int lpc2000_iap_blank_check(struct flash_bank_s *bank, int first, int last)
{ {
u32 param_table[5]; u32 param_table[5];
u32 result_table[2]; u32 result_table[2];
int status_code; int status_code;
int i; int i;
if ((first < 0) || (last > bank->num_sectors)) if ((first < 0) || (last >= bank->num_sectors))
return ERROR_FLASH_SECTOR_INVALID; return ERROR_FLASH_SECTOR_INVALID;
for (i = first; i <= last; i++) for (i = first; i <= last; i++)
@ -365,7 +365,7 @@ int lpc2000_iap_blank_check(struct flash_bank_s *bank, int first, int last)
/* flash bank lpc2000 <base> <size> 0 0 <target#> <lpc_variant> <cclk> [calc_checksum] /* flash bank lpc2000 <base> <size> 0 0 <target#> <lpc_variant> <cclk> [calc_checksum]
*/ */
int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
lpc2000_flash_bank_t *lpc2000_info; lpc2000_flash_bank_t *lpc2000_info;
@ -413,7 +413,7 @@ int lpc2000_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, cha
return ERROR_OK; return ERROR_OK;
} }
int lpc2000_erase(struct flash_bank_s *bank, int first, int last) static int lpc2000_erase(struct flash_bank_s *bank, int first, int last)
{ {
lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv;
u32 param_table[5]; u32 param_table[5];
@ -465,13 +465,13 @@ int lpc2000_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last) static int lpc2000_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
/* can't protect/unprotect on the lpc2000 */ /* can't protect/unprotect on the lpc2000 */
return ERROR_OK; return ERROR_OK;
} }
int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -635,7 +635,7 @@ int lpc2000_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return retval; return retval;
} }
int lpc2000_probe(struct flash_bank_s *bank) static int lpc2000_probe(struct flash_bank_s *bank)
{ {
/* we can't probe on an lpc2000 /* we can't probe on an lpc2000
* if this is an lpc2xxx, it has the configured flash * if this is an lpc2xxx, it has the configured flash
@ -643,7 +643,7 @@ int lpc2000_probe(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int lpc2000_erase_check(struct flash_bank_s *bank) static int lpc2000_erase_check(struct flash_bank_s *bank)
{ {
if (bank->target->state != TARGET_HALTED) if (bank->target->state != TARGET_HALTED)
{ {
@ -654,13 +654,13 @@ int lpc2000_erase_check(struct flash_bank_s *bank)
return lpc2000_iap_blank_check(bank, 0, bank->num_sectors - 1); return lpc2000_iap_blank_check(bank, 0, bank->num_sectors - 1);
} }
int lpc2000_protect_check(struct flash_bank_s *bank) static int lpc2000_protect_check(struct flash_bank_s *bank)
{ {
/* sectors are always protected */ /* sectors are always protected */
return ERROR_OK; return ERROR_OK;
} }
int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size) static int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv; lpc2000_flash_bank_t *lpc2000_info = bank->driver_priv;
@ -669,7 +669,7 @@ int lpc2000_info(struct flash_bank_s *bank, char *buf, int buf_size)
return ERROR_OK; return ERROR_OK;
} }
int lpc2000_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int lpc2000_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
u32 param_table[5]; u32 param_table[5];

View File

@ -94,22 +94,19 @@
/* F_CLK_TIME */ /* F_CLK_TIME */
#define FCT_CLK_DIV_MASK 0x0FFF #define FCT_CLK_DIV_MASK 0x0FFF
int lpc288x_register_commands(struct command_context_s *cmd_ctx); static int lpc288x_register_commands(struct command_context_s *cmd_ctx);
int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int lpc288x_erase(struct flash_bank_s *bank, int first, int last); static int lpc288x_erase(struct flash_bank_s *bank, int first, int last);
int lpc288x_protect(struct flash_bank_s *bank, int set, int first, int last); static int lpc288x_protect(struct flash_bank_s *bank, int set, int first, int last);
int lpc288x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int lpc288x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int lpc288x_probe(struct flash_bank_s *bank); static int lpc288x_probe(struct flash_bank_s *bank);
int lpc288x_auto_probe(struct flash_bank_s *bank); static int lpc288x_erase_check(struct flash_bank_s *bank);
int lpc288x_erase_check(struct flash_bank_s *bank); static int lpc288x_protect_check(struct flash_bank_s *bank);
int lpc288x_protect_check(struct flash_bank_s *bank); static int lpc288x_info(struct flash_bank_s *bank, char *buf, int buf_size);
int lpc288x_info(struct flash_bank_s *bank, char *buf, int buf_size); static u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout);
void lpc288x_set_flash_mode(flash_bank_t *bank, u8 flashplane, int mode); static void lpc288x_load_timer(int erase, struct target_s *target);
u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout); static void lpc288x_set_flash_clk(struct flash_bank_s *bank);
void lpc288x_load_timer(int erase, struct target_s *target); static u32 lpc288x_system_ready(struct flash_bank_s *bank);
void lpc288x_set_flash_clk(struct flash_bank_s *bank);
u32 lpc288x_system_ready(struct flash_bank_s *bank);
int lpc288x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
flash_driver_t lpc288x_flash = flash_driver_t lpc288x_flash =
{ {
@ -126,12 +123,12 @@ flash_driver_t lpc288x_flash =
.info = lpc288x_info .info = lpc288x_info
}; };
int lpc288x_register_commands(struct command_context_s *cmd_ctx) static int lpc288x_register_commands(struct command_context_s *cmd_ctx)
{ {
return ERROR_OK; return ERROR_OK;
} }
u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout) static u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout)
{ {
u32 status; u32 status;
target_t *target = bank->target; target_t *target = bank->target;
@ -151,7 +148,7 @@ u32 lpc288x_wait_status_busy(flash_bank_t *bank, int timeout)
} }
/* Read device id register and fill in driver info structure */ /* Read device id register and fill in driver info structure */
int lpc288x_read_part_info(struct flash_bank_s *bank) static int lpc288x_read_part_info(struct flash_bank_s *bank)
{ {
lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv; lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -201,13 +198,13 @@ int lpc288x_read_part_info(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int lpc288x_protect_check(struct flash_bank_s *bank) static int lpc288x_protect_check(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
/* flash_bank LPC288x 0 0 0 0 <target#> <cclk> */ /* flash_bank LPC288x 0 0 0 0 <target#> <cclk> */
int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
lpc288x_flash_bank_t *lpc288x_info; lpc288x_flash_bank_t *lpc288x_info;
@ -232,7 +229,7 @@ int lpc288x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, cha
* AHB = 12 MHz ? * AHB = 12 MHz ?
* 12000000/66000 = 182 * 12000000/66000 = 182
* CLK_DIV = 60 ? */ * CLK_DIV = 60 ? */
void lpc288x_set_flash_clk(struct flash_bank_s *bank) static void lpc288x_set_flash_clk(struct flash_bank_s *bank)
{ {
u32 clk_time; u32 clk_time;
lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv; lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv;
@ -247,7 +244,7 @@ void lpc288x_set_flash_clk(struct flash_bank_s *bank)
* LOAD_TIMER_WRITE FPT_TIME = ((1,000,000 / AHB tcyc (in ns)) - 2) / 512 * LOAD_TIMER_WRITE FPT_TIME = ((1,000,000 / AHB tcyc (in ns)) - 2) / 512
* = 23 (75) (AN10548 72 - is this wrong?) * = 23 (75) (AN10548 72 - is this wrong?)
* TODO: Sort out timing calcs ;) */ * TODO: Sort out timing calcs ;) */
void lpc288x_load_timer(int erase, struct target_s *target) static void lpc288x_load_timer(int erase, struct target_s *target)
{ {
if (erase == LOAD_TIMER_ERASE) if (erase == LOAD_TIMER_ERASE)
{ {
@ -259,7 +256,7 @@ void lpc288x_load_timer(int erase, struct target_s *target)
} }
} }
u32 lpc288x_system_ready(struct flash_bank_s *bank) static u32 lpc288x_system_ready(struct flash_bank_s *bank)
{ {
lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv; lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv;
if (lpc288x_info->cidr == 0) if (lpc288x_info->cidr == 0)
@ -275,7 +272,7 @@ u32 lpc288x_system_ready(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int lpc288x_erase_check(struct flash_bank_s *bank) static int lpc288x_erase_check(struct flash_bank_s *bank)
{ {
u32 status = lpc288x_system_ready(bank); /* probed? halted? */ u32 status = lpc288x_system_ready(bank); /* probed? halted? */
if (status != ERROR_OK) if (status != ERROR_OK)
@ -287,7 +284,7 @@ int lpc288x_erase_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int lpc288x_erase(struct flash_bank_s *bank, int first, int last) static int lpc288x_erase(struct flash_bank_s *bank, int first, int last)
{ {
u32 status; u32 status;
int sector; int sector;
@ -328,7 +325,7 @@ int lpc288x_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int lpc288x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int lpc288x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
u8 page_buffer[FLASH_PAGE_SIZE]; u8 page_buffer[FLASH_PAGE_SIZE];
u32 i, status, source_offset,dest_offset; u32 i, status, source_offset,dest_offset;
@ -443,7 +440,7 @@ int lpc288x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int lpc288x_probe(struct flash_bank_s *bank) static int lpc288x_probe(struct flash_bank_s *bank)
{ {
/* we only deal with LPC2888 so flash config is fixed */ /* we only deal with LPC2888 so flash config is fixed */
lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv; lpc288x_flash_bank_t *lpc288x_info = bank->driver_priv;
@ -466,13 +463,13 @@ int lpc288x_probe(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int lpc288x_info(struct flash_bank_s *bank, char *buf, int buf_size) static int lpc288x_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
snprintf(buf, buf_size, "lpc288x flash driver"); snprintf(buf, buf_size, "lpc288x flash driver");
return ERROR_OK; return ERROR_OK;
} }
int lpc288x_protect(struct flash_bank_s *bank, int set, int first, int last) static int lpc288x_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
int lockregion, status; int lockregion, status;
u32 value; u32 value;

View File

@ -32,20 +32,20 @@
#include "nand.h" #include "nand.h"
#include "target.h" #include "target.h"
int lpc3180_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device); static int lpc3180_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device);
int lpc3180_register_commands(struct command_context_s *cmd_ctx); static int lpc3180_register_commands(struct command_context_s *cmd_ctx);
int lpc3180_init(struct nand_device_s *device); static int lpc3180_init(struct nand_device_s *device);
int lpc3180_reset(struct nand_device_s *device); static int lpc3180_reset(struct nand_device_s *device);
int lpc3180_command(struct nand_device_s *device, u8 command); static int lpc3180_command(struct nand_device_s *device, u8 command);
int lpc3180_address(struct nand_device_s *device, u8 address); static int lpc3180_address(struct nand_device_s *device, u8 address);
int lpc3180_write_data(struct nand_device_s *device, u16 data); static int lpc3180_write_data(struct nand_device_s *device, u16 data);
int lpc3180_read_data(struct nand_device_s *device, void *data); static int lpc3180_read_data(struct nand_device_s *device, void *data);
int lpc3180_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size); static int lpc3180_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size);
int lpc3180_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size); static int lpc3180_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size);
int lpc3180_controller_ready(struct nand_device_s *device, int timeout); static int lpc3180_controller_ready(struct nand_device_s *device, int timeout);
int lpc3180_nand_ready(struct nand_device_s *device, int timeout); static int lpc3180_nand_ready(struct nand_device_s *device, int timeout);
int handle_lpc3180_select_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_lpc3180_select_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
nand_flash_controller_t lpc3180_nand_controller = nand_flash_controller_t lpc3180_nand_controller =
{ {
@ -66,7 +66,7 @@ nand_flash_controller_t lpc3180_nand_controller =
/* nand device lpc3180 <target#> <oscillator_frequency> /* nand device lpc3180 <target#> <oscillator_frequency>
*/ */
int lpc3180_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device) static int lpc3180_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device)
{ {
lpc3180_nand_controller_t *lpc3180_info; lpc3180_nand_controller_t *lpc3180_info;
@ -99,7 +99,7 @@ int lpc3180_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, ch
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_register_commands(struct command_context_s *cmd_ctx) static int lpc3180_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *lpc3180_cmd = register_command(cmd_ctx, NULL, "lpc3180", NULL, COMMAND_ANY, "commands specific to the LPC3180 NAND flash controllers"); command_t *lpc3180_cmd = register_command(cmd_ctx, NULL, "lpc3180", NULL, COMMAND_ANY, "commands specific to the LPC3180 NAND flash controllers");
@ -108,7 +108,7 @@ int lpc3180_register_commands(struct command_context_s *cmd_ctx)
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_pll(int fclkin, u32 pll_ctrl) static int lpc3180_pll(int fclkin, u32 pll_ctrl)
{ {
int bypass = (pll_ctrl & 0x8000) >> 15; int bypass = (pll_ctrl & 0x8000) >> 15;
int direct = (pll_ctrl & 0x4000) >> 14; int direct = (pll_ctrl & 0x4000) >> 14;
@ -136,7 +136,7 @@ int lpc3180_pll(int fclkin, u32 pll_ctrl)
return (m / (2 * p)) * (fclkin / n); return (m / (2 * p)) * (fclkin / n);
} }
float lpc3180_cycle_time(lpc3180_nand_controller_t *lpc3180_info) static float lpc3180_cycle_time(lpc3180_nand_controller_t *lpc3180_info)
{ {
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
u32 sysclk_ctrl, pwr_ctrl, hclkdiv_ctrl, hclkpll_ctrl; u32 sysclk_ctrl, pwr_ctrl, hclkdiv_ctrl, hclkpll_ctrl;
@ -186,7 +186,7 @@ float lpc3180_cycle_time(lpc3180_nand_controller_t *lpc3180_info)
return cycle; return cycle;
} }
int lpc3180_init(struct nand_device_s *device) static int lpc3180_init(struct nand_device_s *device)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -316,7 +316,7 @@ int lpc3180_init(struct nand_device_s *device)
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_reset(struct nand_device_s *device) static int lpc3180_reset(struct nand_device_s *device)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -358,7 +358,7 @@ int lpc3180_reset(struct nand_device_s *device)
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_command(struct nand_device_s *device, u8 command) static int lpc3180_command(struct nand_device_s *device, u8 command)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -388,7 +388,7 @@ int lpc3180_command(struct nand_device_s *device, u8 command)
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_address(struct nand_device_s *device, u8 address) static int lpc3180_address(struct nand_device_s *device, u8 address)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -418,7 +418,7 @@ int lpc3180_address(struct nand_device_s *device, u8 address)
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_write_data(struct nand_device_s *device, u16 data) static int lpc3180_write_data(struct nand_device_s *device, u16 data)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -448,7 +448,7 @@ int lpc3180_write_data(struct nand_device_s *device, u16 data)
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_read_data(struct nand_device_s *device, void *data) static int lpc3180_read_data(struct nand_device_s *device, void *data)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -510,7 +510,7 @@ int lpc3180_read_data(struct nand_device_s *device, void *data)
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size) static int lpc3180_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -649,7 +649,7 @@ int lpc3180_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 dat
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size) static int lpc3180_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -796,7 +796,7 @@ int lpc3180_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data
return ERROR_OK; return ERROR_OK;
} }
int lpc3180_controller_ready(struct nand_device_s *device, int timeout) static int lpc3180_controller_ready(struct nand_device_s *device, int timeout)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -830,7 +830,7 @@ int lpc3180_controller_ready(struct nand_device_s *device, int timeout)
return 0; return 0;
} }
int lpc3180_nand_ready(struct nand_device_s *device, int timeout) static int lpc3180_nand_ready(struct nand_device_s *device, int timeout)
{ {
lpc3180_nand_controller_t *lpc3180_info = device->controller_priv; lpc3180_nand_controller_t *lpc3180_info = device->controller_priv;
target_t *target = lpc3180_info->target; target_t *target = lpc3180_info->target;
@ -870,7 +870,7 @@ int lpc3180_nand_ready(struct nand_device_s *device, int timeout)
return 0; return 0;
} }
int handle_lpc3180_select_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_lpc3180_select_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
nand_device_t *device = NULL; nand_device_t *device = NULL;
lpc3180_nand_controller_t *lpc3180_info = NULL; lpc3180_nand_controller_t *lpc3180_info = NULL;

View File

@ -39,24 +39,21 @@
#include "fileio.h" #include "fileio.h"
#include "image.h" #include "image.h"
int nand_register_commands(struct command_context_s *cmd_ctx); static int handle_nand_list_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_list_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_nand_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_nand_check_bad_blocks_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_check_bad_blocks_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_nand_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_nand_copy_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_copy_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_nand_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_nand_dump_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_dump_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_nand_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int handle_nand_raw_access_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int handle_nand_raw_access_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int nand_read_page_raw(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size); static int nand_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size);
int nand_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size); //static int nand_read_plain(struct nand_device_s *device, u32 address, u8 *data, u32 data_size);
int nand_read_plain(struct nand_device_s *device, u32 address, u8 *data, u32 data_size);
int nand_write_page_raw(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size); static int nand_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size);
int nand_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size);
/* NAND flash controller /* NAND flash controller
*/ */
@ -69,7 +66,7 @@ extern nand_flash_controller_t s3c2443_nand_controller;
/* extern nand_flash_controller_t boundary_scan_nand_controller; */ /* extern nand_flash_controller_t boundary_scan_nand_controller; */
nand_flash_controller_t *nand_flash_controllers[] = static nand_flash_controller_t *nand_flash_controllers[] =
{ {
&lpc3180_nand_controller, &lpc3180_nand_controller,
&orion_nand_controller, &orion_nand_controller,
@ -82,7 +79,7 @@ nand_flash_controller_t *nand_flash_controllers[] =
}; };
/* configured NAND devices and NAND Flash command handler */ /* configured NAND devices and NAND Flash command handler */
nand_device_t *nand_devices = NULL; static nand_device_t *nand_devices = NULL;
static command_t *nand_cmd; static command_t *nand_cmd;
/* Chip ID list /* Chip ID list
@ -95,7 +92,7 @@ static command_t *nand_cmd;
* 256 256 Byte page size * 256 256 Byte page size
* 512 512 Byte page size * 512 512 Byte page size
*/ */
nand_info_t nand_flash_ids[] = static nand_info_t nand_flash_ids[] =
{ {
{"NAND 1MiB 5V 8-bit", 0x6e, 256, 1, 0x1000, 0}, {"NAND 1MiB 5V 8-bit", 0x6e, 256, 1, 0x1000, 0},
{"NAND 2MiB 5V 8-bit", 0x64, 256, 2, 0x1000, 0}, {"NAND 2MiB 5V 8-bit", 0x64, 256, 2, 0x1000, 0},
@ -173,7 +170,7 @@ nand_info_t nand_flash_ids[] =
/* Manufacturer ID list /* Manufacturer ID list
*/ */
nand_manufacturer_t nand_manuf_ids[] = static nand_manufacturer_t nand_manuf_ids[] =
{ {
{0x0, "unknown"}, {0x0, "unknown"},
{NAND_MFR_TOSHIBA, "Toshiba"}, {NAND_MFR_TOSHIBA, "Toshiba"},
@ -190,7 +187,8 @@ nand_manufacturer_t nand_manuf_ids[] =
* Define default oob placement schemes for large and small page devices * Define default oob placement schemes for large and small page devices
*/ */
nand_ecclayout_t nand_oob_8 = { #if 0
static nand_ecclayout_t nand_oob_8 = {
.eccbytes = 3, .eccbytes = 3,
.eccpos = {0, 1, 2}, .eccpos = {0, 1, 2},
.oobfree = { .oobfree = {
@ -199,8 +197,9 @@ nand_ecclayout_t nand_oob_8 = {
{.offset = 6, {.offset = 6,
.length = 2}} .length = 2}}
}; };
#endif
nand_ecclayout_t nand_oob_16 = { static nand_ecclayout_t nand_oob_16 = {
.eccbytes = 6, .eccbytes = 6,
.eccpos = {0, 1, 2, 3, 6, 7}, .eccpos = {0, 1, 2, 3, 6, 7},
.oobfree = { .oobfree = {
@ -208,7 +207,7 @@ nand_ecclayout_t nand_oob_16 = {
. length = 8}} . length = 8}}
}; };
nand_ecclayout_t nand_oob_64 = { static nand_ecclayout_t nand_oob_64 = {
.eccbytes = 24, .eccbytes = 24,
.eccpos = { .eccpos = {
40, 41, 42, 43, 44, 45, 46, 47, 40, 41, 42, 43, 44, 45, 46, 47,
@ -221,7 +220,7 @@ nand_ecclayout_t nand_oob_64 = {
/* nand device <nand_controller> [controller options] /* nand device <nand_controller> [controller options]
*/ */
int handle_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
int i; int i;
int retval; int retval;
@ -346,7 +345,7 @@ nand_device_t *get_nand_device_by_num(int num)
return NULL; return NULL;
} }
int nand_build_bbt(struct nand_device_s *device, int first, int last) static int nand_build_bbt(struct nand_device_s *device, int first, int last)
{ {
u32 page = 0x0; u32 page = 0x0;
int i; int i;
@ -405,7 +404,7 @@ int nand_read_status(struct nand_device_s *device, u8 *status)
return ERROR_OK; return ERROR_OK;
} }
int nand_poll_ready(struct nand_device_s *device, int timeout) static int nand_poll_ready(struct nand_device_s *device, int timeout)
{ {
u8 status; u8 status;
@ -729,7 +728,8 @@ int nand_erase(struct nand_device_s *device, int first_block, int last_block)
return ERROR_OK; return ERROR_OK;
} }
int nand_read_plain(struct nand_device_s *device, u32 address, u8 *data, u32 data_size) #if 0
static int nand_read_plain(struct nand_device_s *device, u32 address, u8 *data, u32 data_size)
{ {
u8 *page; u8 *page;
@ -766,7 +766,7 @@ int nand_read_plain(struct nand_device_s *device, u32 address, u8 *data, u32 dat
return ERROR_OK; return ERROR_OK;
} }
int nand_write_plain(struct nand_device_s *device, u32 address, u8 *data, u32 data_size) static int nand_write_plain(struct nand_device_s *device, u32 address, u8 *data, u32 data_size)
{ {
u8 *page; u8 *page;
@ -802,6 +802,7 @@ int nand_write_plain(struct nand_device_s *device, u32 address, u8 *data, u32 da
return ERROR_OK; return ERROR_OK;
} }
#endif
int nand_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size) int nand_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size)
{ {
@ -820,7 +821,7 @@ int nand_write_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_s
return device->controller->write_page(device, page, data, data_size, oob, oob_size); return device->controller->write_page(device, page, data, data_size, oob, oob_size);
} }
int nand_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size) static int nand_read_page(struct nand_device_s *device, u32 page, u8 *data, u32 data_size, u8 *oob, u32 oob_size)
{ {
if (!device->device) if (!device->device)
return ERROR_NAND_DEVICE_NOT_PROBED; return ERROR_NAND_DEVICE_NOT_PROBED;
@ -1089,7 +1090,7 @@ int handle_nand_list_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_nand_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_nand_info_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
nand_device_t *p; nand_device_t *p;
int i = 0; int i = 0;
@ -1159,7 +1160,7 @@ int handle_nand_info_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_nand_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_nand_probe_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
nand_device_t *p; nand_device_t *p;
int retval; int retval;
@ -1193,7 +1194,7 @@ int handle_nand_probe_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_nand_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_nand_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
nand_device_t *p; nand_device_t *p;
int retval; int retval;
@ -1274,7 +1275,7 @@ int handle_nand_check_bad_blocks_command(struct command_context_s *cmd_ctx, char
return ERROR_OK; return ERROR_OK;
} }
int handle_nand_copy_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_nand_copy_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
nand_device_t *p; nand_device_t *p;
@ -1297,7 +1298,7 @@ int handle_nand_copy_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_nand_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_nand_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
u32 offset; u32 offset;
u32 binary_size; u32 binary_size;
@ -1452,7 +1453,7 @@ int handle_nand_write_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_nand_dump_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_nand_dump_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
nand_device_t *p; nand_device_t *p;
@ -1574,7 +1575,7 @@ int handle_nand_dump_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int handle_nand_raw_access_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int handle_nand_raw_access_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
nand_device_t *p; nand_device_t *p;

View File

@ -37,16 +37,16 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
int ocl_register_commands(struct command_context_s *cmd_ctx); static int ocl_register_commands(struct command_context_s *cmd_ctx);
int ocl_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int ocl_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int ocl_erase(struct flash_bank_s *bank, int first, int last); static int ocl_erase(struct flash_bank_s *bank, int first, int last);
int ocl_protect(struct flash_bank_s *bank, int set, int first, int last); static int ocl_protect(struct flash_bank_s *bank, int set, int first, int last);
int ocl_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int ocl_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int ocl_probe(struct flash_bank_s *bank); static int ocl_probe(struct flash_bank_s *bank);
int ocl_erase_check(struct flash_bank_s *bank); static int ocl_erase_check(struct flash_bank_s *bank);
int ocl_protect_check(struct flash_bank_s *bank); static int ocl_protect_check(struct flash_bank_s *bank);
int ocl_info(struct flash_bank_s *bank, char *buf, int buf_size); static int ocl_info(struct flash_bank_s *bank, char *buf, int buf_size);
int ocl_auto_probe(struct flash_bank_s *bank); static int ocl_auto_probe(struct flash_bank_s *bank);
flash_driver_t ocl_flash = flash_driver_t ocl_flash =
{ {
@ -70,23 +70,23 @@ typedef struct ocl_priv_s
int bufalign; int bufalign;
} ocl_priv_t; } ocl_priv_t;
int ocl_register_commands(struct command_context_s *cmd_ctx) static int ocl_register_commands(struct command_context_s *cmd_ctx)
{ {
return ERROR_OK; return ERROR_OK;
} }
int ocl_erase_check(struct flash_bank_s *bank) static int ocl_erase_check(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
int ocl_protect_check(struct flash_bank_s *bank) static int ocl_protect_check(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
/* flash_bank ocl 0 0 0 0 <target#> */ /* flash_bank ocl 0 0 0 0 <target#> */
int ocl_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int ocl_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
int retval; int retval;
armv4_5_common_t *armv4_5; armv4_5_common_t *armv4_5;
@ -110,7 +110,7 @@ int ocl_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **
return ERROR_OK; return ERROR_OK;
} }
int ocl_erase(struct flash_bank_s *bank, int first, int last) static int ocl_erase(struct flash_bank_s *bank, int first, int last)
{ {
ocl_priv_t *ocl = bank->driver_priv; ocl_priv_t *ocl = bank->driver_priv;
int retval; int retval;
@ -165,12 +165,12 @@ int ocl_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int ocl_protect(struct flash_bank_s *bank, int set, int first, int last) static int ocl_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
return ERROR_OK; return ERROR_OK;
} }
int ocl_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int ocl_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
ocl_priv_t *ocl = bank->driver_priv; ocl_priv_t *ocl = bank->driver_priv;
int retval; int retval;
@ -277,7 +277,7 @@ int ocl_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int ocl_probe(struct flash_bank_s *bank) static int ocl_probe(struct flash_bank_s *bank)
{ {
ocl_priv_t *ocl = bank->driver_priv; ocl_priv_t *ocl = bank->driver_priv;
int retval; int retval;
@ -375,12 +375,12 @@ int ocl_probe(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int ocl_info(struct flash_bank_s *bank, char *buf, int buf_size) static int ocl_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
return ERROR_OK; return ERROR_OK;
} }
int ocl_auto_probe(struct flash_bank_s *bank) static int ocl_auto_probe(struct flash_bank_s *bank)
{ {
ocl_priv_t *ocl = bank->driver_priv; ocl_priv_t *ocl = bank->driver_priv;

View File

@ -55,7 +55,7 @@ typedef struct orion_nand_controller_s
} \ } \
} while (0) } while (0)
int orion_nand_command(struct nand_device_s *device, u8 command) static int orion_nand_command(struct nand_device_s *device, u8 command)
{ {
orion_nand_controller_t *hw = device->controller_priv; orion_nand_controller_t *hw = device->controller_priv;
target_t *target = hw->target; target_t *target = hw->target;
@ -65,7 +65,7 @@ int orion_nand_command(struct nand_device_s *device, u8 command)
return ERROR_OK; return ERROR_OK;
} }
int orion_nand_address(struct nand_device_s *device, u8 address) static int orion_nand_address(struct nand_device_s *device, u8 address)
{ {
orion_nand_controller_t *hw = device->controller_priv; orion_nand_controller_t *hw = device->controller_priv;
target_t *target = hw->target; target_t *target = hw->target;
@ -75,7 +75,7 @@ int orion_nand_address(struct nand_device_s *device, u8 address)
return ERROR_OK; return ERROR_OK;
} }
int orion_nand_read(struct nand_device_s *device, void *data) static int orion_nand_read(struct nand_device_s *device, void *data)
{ {
orion_nand_controller_t *hw = device->controller_priv; orion_nand_controller_t *hw = device->controller_priv;
target_t *target = hw->target; target_t *target = hw->target;
@ -85,7 +85,7 @@ int orion_nand_read(struct nand_device_s *device, void *data)
return ERROR_OK; return ERROR_OK;
} }
int orion_nand_write(struct nand_device_s *device, u16 data) static int orion_nand_write(struct nand_device_s *device, u16 data)
{ {
orion_nand_controller_t *hw = device->controller_priv; orion_nand_controller_t *hw = device->controller_priv;
target_t *target = hw->target; target_t *target = hw->target;
@ -95,14 +95,14 @@ int orion_nand_write(struct nand_device_s *device, u16 data)
return ERROR_OK; return ERROR_OK;
} }
int orion_nand_slow_block_write(struct nand_device_s *device, u8 *data, int size) static int orion_nand_slow_block_write(struct nand_device_s *device, u8 *data, int size)
{ {
while (size--) while (size--)
orion_nand_write(device, *data++); orion_nand_write(device, *data++);
return ERROR_OK; return ERROR_OK;
} }
int orion_nand_fast_block_write(struct nand_device_s *device, u8 *data, int size) static int orion_nand_fast_block_write(struct nand_device_s *device, u8 *data, int size)
{ {
orion_nand_controller_t *hw = device->controller_priv; orion_nand_controller_t *hw = device->controller_priv;
target_t *target = hw->target; target_t *target = hw->target;
@ -181,17 +181,17 @@ int orion_nand_fast_block_write(struct nand_device_s *device, u8 *data, int size
return retval; return retval;
} }
int orion_nand_reset(struct nand_device_s *device) static int orion_nand_reset(struct nand_device_s *device)
{ {
return orion_nand_command(device, NAND_CMD_RESET); return orion_nand_command(device, NAND_CMD_RESET);
} }
int orion_nand_controller_ready(struct nand_device_s *device, int timeout) static int orion_nand_controller_ready(struct nand_device_s *device, int timeout)
{ {
return 1; return 1;
} }
int orion_nand_register_commands(struct command_context_s *cmd_ctx) static int orion_nand_register_commands(struct command_context_s *cmd_ctx)
{ {
return ERROR_OK; return ERROR_OK;
} }
@ -234,7 +234,7 @@ int orion_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
return ERROR_OK; return ERROR_OK;
} }
int orion_nand_init(struct nand_device_s *device) static int orion_nand_init(struct nand_device_s *device)
{ {
return ERROR_OK; return ERROR_OK;
} }

View File

@ -66,26 +66,26 @@ struct pic32mx_devs_s {
{ 0x00, NULL, 0 } { 0x00, NULL, 0 }
}; };
int pic32mx_register_commands(struct command_context_s *cmd_ctx); static int pic32mx_register_commands(struct command_context_s *cmd_ctx);
int pic32mx_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int pic32mx_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int pic32mx_erase(struct flash_bank_s *bank, int first, int last); static int pic32mx_erase(struct flash_bank_s *bank, int first, int last);
int pic32mx_protect(struct flash_bank_s *bank, int set, int first, int last); static int pic32mx_protect(struct flash_bank_s *bank, int set, int first, int last);
int pic32mx_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int pic32mx_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int pic32mx_write_row(struct flash_bank_s *bank, u32 address, u32 srcaddr); static int pic32mx_write_row(struct flash_bank_s *bank, u32 address, u32 srcaddr);
int pic32mx_write_word(struct flash_bank_s *bank, u32 address, u32 word); static int pic32mx_write_word(struct flash_bank_s *bank, u32 address, u32 word);
int pic32mx_probe(struct flash_bank_s *bank); static int pic32mx_probe(struct flash_bank_s *bank);
int pic32mx_auto_probe(struct flash_bank_s *bank); static int pic32mx_auto_probe(struct flash_bank_s *bank);
int pic32mx_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); //static int pic32mx_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int pic32mx_protect_check(struct flash_bank_s *bank); static int pic32mx_protect_check(struct flash_bank_s *bank);
int pic32mx_info(struct flash_bank_s *bank, char *buf, int buf_size); static int pic32mx_info(struct flash_bank_s *bank, char *buf, int buf_size);
#if 0 #if 0
int pic32mx_handle_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); int pic32mx_handle_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int pic32mx_handle_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); int pic32mx_handle_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
#endif #endif
int pic32mx_handle_chip_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int pic32mx_handle_chip_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int pic32mx_handle_pgm_word_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int pic32mx_handle_pgm_word_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int pic32mx_chip_erase(struct flash_bank_s *bank); //static int pic32mx_chip_erase(struct flash_bank_s *bank);
flash_driver_t pic32mx_flash = flash_driver_t pic32mx_flash =
{ {
@ -102,7 +102,7 @@ flash_driver_t pic32mx_flash =
.info = pic32mx_info .info = pic32mx_info
}; };
int pic32mx_register_commands(struct command_context_s *cmd_ctx) static int pic32mx_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *pic32mx_cmd = register_command(cmd_ctx, NULL, "pic32mx", NULL, COMMAND_ANY, "pic32mx flash specific commands"); command_t *pic32mx_cmd = register_command(cmd_ctx, NULL, "pic32mx", NULL, COMMAND_ANY, "pic32mx flash specific commands");
@ -121,7 +121,7 @@ int pic32mx_register_commands(struct command_context_s *cmd_ctx)
/* flash bank pic32mx <base> <size> 0 0 <target#> /* flash bank pic32mx <base> <size> 0 0 <target#>
*/ */
int pic32mx_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int pic32mx_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
pic32mx_flash_bank_t *pic32mx_info; pic32mx_flash_bank_t *pic32mx_info;
@ -140,7 +140,7 @@ int pic32mx_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, cha
return ERROR_OK; return ERROR_OK;
} }
u32 pic32mx_get_flash_status(flash_bank_t *bank) static u32 pic32mx_get_flash_status(flash_bank_t *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 status; u32 status;
@ -150,7 +150,7 @@ u32 pic32mx_get_flash_status(flash_bank_t *bank)
return status; return status;
} }
u32 pic32mx_wait_status_busy(flash_bank_t *bank, int timeout) static u32 pic32mx_wait_status_busy(flash_bank_t *bank, int timeout)
{ {
u32 status; u32 status;
@ -166,7 +166,7 @@ u32 pic32mx_wait_status_busy(flash_bank_t *bank, int timeout)
return status; return status;
} }
int pic32mx_nvm_exec(struct flash_bank_s *bank, u32 op, u32 timeout) static int pic32mx_nvm_exec(struct flash_bank_s *bank, u32 op, u32 timeout)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 status; u32 status;
@ -188,7 +188,7 @@ int pic32mx_nvm_exec(struct flash_bank_s *bank, u32 op, u32 timeout)
return status; return status;
} }
int pic32mx_protect_check(struct flash_bank_s *bank) static int pic32mx_protect_check(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
@ -222,7 +222,7 @@ int pic32mx_protect_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int pic32mx_erase(struct flash_bank_s *bank, int first, int last) static int pic32mx_erase(struct flash_bank_s *bank, int first, int last)
{ {
target_t *target = bank->target; target_t *target = bank->target;
int i; int i;
@ -264,7 +264,7 @@ int pic32mx_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int pic32mx_protect(struct flash_bank_s *bank, int set, int first, int last) static int pic32mx_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
pic32mx_flash_bank_t *pic32mx_info = NULL; pic32mx_flash_bank_t *pic32mx_info = NULL;
target_t *target = bank->target; target_t *target = bank->target;
@ -357,7 +357,7 @@ int pic32mx_protect(struct flash_bank_s *bank, int set, int first, int last)
#endif #endif
} }
int pic32mx_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int pic32mx_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 buffer_size = 512; u32 buffer_size = 512;
@ -485,7 +485,7 @@ int pic32mx_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 c
return retval; return retval;
} }
int pic32mx_write_word(struct flash_bank_s *bank, u32 address, u32 word) static int pic32mx_write_word(struct flash_bank_s *bank, u32 address, u32 word)
{ {
target_t *target = bank->target; target_t *target = bank->target;
@ -501,7 +501,7 @@ int pic32mx_write_word(struct flash_bank_s *bank, u32 address, u32 word)
/* /*
* Write a 128 word (512 byte) row to flash address from RAM srcaddr. * Write a 128 word (512 byte) row to flash address from RAM srcaddr.
*/ */
int pic32mx_write_row(struct flash_bank_s *bank, u32 address, u32 srcaddr) static int pic32mx_write_row(struct flash_bank_s *bank, u32 address, u32 srcaddr)
{ {
target_t *target = bank->target; target_t *target = bank->target;
@ -519,7 +519,7 @@ int pic32mx_write_row(struct flash_bank_s *bank, u32 address, u32 srcaddr)
return pic32mx_nvm_exec(bank, NVMCON_OP_ROW_PROG, 100); return pic32mx_nvm_exec(bank, NVMCON_OP_ROW_PROG, 100);
} }
int pic32mx_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int pic32mx_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
u32 words_remaining = (count / 4); u32 words_remaining = (count / 4);
u32 bytes_remaining = (count & 0x00000003); u32 bytes_remaining = (count & 0x00000003);
@ -604,7 +604,7 @@ int pic32mx_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int pic32mx_probe(struct flash_bank_s *bank) static int pic32mx_probe(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
pic32mx_flash_bank_t *pic32mx_info = bank->driver_priv; pic32mx_flash_bank_t *pic32mx_info = bank->driver_priv;
@ -683,7 +683,7 @@ int pic32mx_probe(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int pic32mx_auto_probe(struct flash_bank_s *bank) static int pic32mx_auto_probe(struct flash_bank_s *bank)
{ {
pic32mx_flash_bank_t *pic32mx_info = bank->driver_priv; pic32mx_flash_bank_t *pic32mx_info = bank->driver_priv;
if (pic32mx_info->probed) if (pic32mx_info->probed)
@ -691,12 +691,14 @@ int pic32mx_auto_probe(struct flash_bank_s *bank)
return pic32mx_probe(bank); return pic32mx_probe(bank);
} }
int pic32mx_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) #if 0
static int pic32mx_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
return ERROR_OK; return ERROR_OK;
} }
#endif
int pic32mx_info(struct flash_bank_s *bank, char *buf, int buf_size) static int pic32mx_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
target_t *target = bank->target; target_t *target = bank->target;
mips32_common_t *mips32 = target->arch_info; mips32_common_t *mips32 = target->arch_info;
@ -823,7 +825,8 @@ int pic32mx_handle_unlock_command(struct command_context_s *cmd_ctx, char *cmd,
} }
#endif #endif
int pic32mx_chip_erase(struct flash_bank_s *bank) #if 0
static int pic32mx_chip_erase(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
#if 0 #if 0
@ -866,8 +869,9 @@ int pic32mx_chip_erase(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
#endif
int pic32mx_handle_chip_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int pic32mx_handle_chip_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
#if 0 #if 0
flash_bank_t *bank; flash_bank_t *bank;
@ -905,7 +909,7 @@ int pic32mx_handle_chip_erase_command(struct command_context_s *cmd_ctx, char *c
return ERROR_OK; return ERROR_OK;
} }
int pic32mx_handle_pgm_word_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int pic32mx_handle_pgm_word_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
u32 address, value; u32 address, value;

View File

@ -38,11 +38,11 @@
#include "s3c24xx_nand.h" #include "s3c24xx_nand.h"
#include "target.h" #include "target.h"
int s3c2410_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device); static int s3c2410_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device);
int s3c2410_init(struct nand_device_s *device); static int s3c2410_init(struct nand_device_s *device);
int s3c2410_read_data(struct nand_device_s *device, void *data); static int s3c2410_read_data(struct nand_device_s *device, void *data);
int s3c2410_write_data(struct nand_device_s *device, u16 data); static int s3c2410_write_data(struct nand_device_s *device, u16 data);
int s3c2410_nand_ready(struct nand_device_s *device, int timeout); static int s3c2410_nand_ready(struct nand_device_s *device, int timeout);
nand_flash_controller_t s3c2410_nand_controller = nand_flash_controller_t s3c2410_nand_controller =
{ {
@ -61,7 +61,7 @@ nand_flash_controller_t s3c2410_nand_controller =
.nand_ready = s3c2410_nand_ready, .nand_ready = s3c2410_nand_ready,
}; };
int s3c2410_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, static int s3c2410_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
char **args, int argc, char **args, int argc,
struct nand_device_s *device) struct nand_device_s *device)
{ {
@ -81,7 +81,7 @@ int s3c2410_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
return ERROR_OK; return ERROR_OK;
} }
int s3c2410_init(struct nand_device_s *device) static int s3c2410_init(struct nand_device_s *device)
{ {
s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv; s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv;
target_t *target = s3c24xx_info->target; target_t *target = s3c24xx_info->target;
@ -93,7 +93,7 @@ int s3c2410_init(struct nand_device_s *device)
return ERROR_OK; return ERROR_OK;
} }
int s3c2410_write_data(struct nand_device_s *device, u16 data) static int s3c2410_write_data(struct nand_device_s *device, u16 data)
{ {
s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv; s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv;
target_t *target = s3c24xx_info->target; target_t *target = s3c24xx_info->target;
@ -107,7 +107,7 @@ int s3c2410_write_data(struct nand_device_s *device, u16 data)
return ERROR_OK; return ERROR_OK;
} }
int s3c2410_read_data(struct nand_device_s *device, void *data) static int s3c2410_read_data(struct nand_device_s *device, void *data)
{ {
s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv; s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv;
target_t *target = s3c24xx_info->target; target_t *target = s3c24xx_info->target;
@ -121,7 +121,7 @@ int s3c2410_read_data(struct nand_device_s *device, void *data)
return ERROR_OK; return ERROR_OK;
} }
int s3c2410_nand_ready(struct nand_device_s *device, int timeout) static int s3c2410_nand_ready(struct nand_device_s *device, int timeout)
{ {
s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv; s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv;
target_t *target = s3c24xx_info->target; target_t *target = s3c24xx_info->target;

View File

@ -38,8 +38,8 @@
#include "s3c24xx_nand.h" #include "s3c24xx_nand.h"
#include "target.h" #include "target.h"
int s3c2412_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device); static int s3c2412_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device);
int s3c2412_init(struct nand_device_s *device); static int s3c2412_init(struct nand_device_s *device);
nand_flash_controller_t s3c2412_nand_controller = nand_flash_controller_t s3c2412_nand_controller =
{ {
@ -60,7 +60,7 @@ nand_flash_controller_t s3c2412_nand_controller =
.nand_ready = s3c2440_nand_ready, .nand_ready = s3c2440_nand_ready,
}; };
int s3c2412_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, static int s3c2412_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
char **args, int argc, char **args, int argc,
struct nand_device_s *device) struct nand_device_s *device)
{ {
@ -80,7 +80,7 @@ int s3c2412_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
return ERROR_OK; return ERROR_OK;
} }
int s3c2412_init(struct nand_device_s *device) static int s3c2412_init(struct nand_device_s *device)
{ {
s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv; s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv;
target_t *target = s3c24xx_info->target; target_t *target = s3c24xx_info->target;

View File

@ -38,9 +38,9 @@
#include "s3c24xx_nand.h" #include "s3c24xx_nand.h"
#include "target.h" #include "target.h"
int s3c2440_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device); static int s3c2440_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device);
int s3c2440_init(struct nand_device_s *device); static int s3c2440_init(struct nand_device_s *device);
int s3c2440_nand_ready(struct nand_device_s *device, int timeout); //static int s3c2440_nand_ready(struct nand_device_s *device, int timeout);
nand_flash_controller_t s3c2440_nand_controller = nand_flash_controller_t s3c2440_nand_controller =
{ {
@ -61,7 +61,7 @@ nand_flash_controller_t s3c2440_nand_controller =
.nand_ready = s3c2440_nand_ready, .nand_ready = s3c2440_nand_ready,
}; };
int s3c2440_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, static int s3c2440_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
char **args, int argc, char **args, int argc,
struct nand_device_s *device) struct nand_device_s *device)
{ {
@ -81,7 +81,7 @@ int s3c2440_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
return ERROR_OK; return ERROR_OK;
} }
int s3c2440_init(struct nand_device_s *device) static int s3c2440_init(struct nand_device_s *device)
{ {
s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv; s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv;
target_t *target = s3c24xx_info->target; target_t *target = s3c24xx_info->target;

View File

@ -38,9 +38,8 @@
#include "s3c24xx_nand.h" #include "s3c24xx_nand.h"
#include "target.h" #include "target.h"
int s3c2443_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device); static int s3c2443_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct nand_device_s *device);
int s3c2443_init(struct nand_device_s *device); static int s3c2443_init(struct nand_device_s *device);
int s3c2443_nand_ready(struct nand_device_s *device, int timeout);
nand_flash_controller_t s3c2443_nand_controller = nand_flash_controller_t s3c2443_nand_controller =
{ {
@ -61,7 +60,7 @@ nand_flash_controller_t s3c2443_nand_controller =
.nand_ready = s3c2440_nand_ready, .nand_ready = s3c2440_nand_ready,
}; };
int s3c2443_nand_device_command(struct command_context_s *cmd_ctx, char *cmd, static int s3c2443_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
char **args, int argc, char **args, int argc,
struct nand_device_s *device) struct nand_device_s *device)
{ {
@ -81,7 +80,7 @@ int s3c2443_nand_device_command(struct command_context_s *cmd_ctx, char *cmd,
return ERROR_OK; return ERROR_OK;
} }
int s3c2443_init(struct nand_device_s *device) static int s3c2443_init(struct nand_device_s *device)
{ {
s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv; s3c24xx_nand_controller_t *s3c24xx_info = device->controller_priv;
target_t *target = s3c24xx_info->target; target_t *target = s3c24xx_info->target;

View File

@ -44,24 +44,24 @@
#include <unistd.h> #include <unistd.h>
#define DID0_VER(did0) ((did0>>28)&0x07) #define DID0_VER(did0) ((did0>>28)&0x07)
int stellaris_register_commands(struct command_context_s *cmd_ctx); static int stellaris_register_commands(struct command_context_s *cmd_ctx);
int stellaris_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int stellaris_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int stellaris_erase(struct flash_bank_s *bank, int first, int last); static int stellaris_erase(struct flash_bank_s *bank, int first, int last);
int stellaris_protect(struct flash_bank_s *bank, int set, int first, int last); static int stellaris_protect(struct flash_bank_s *bank, int set, int first, int last);
int stellaris_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int stellaris_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int stellaris_auto_probe(struct flash_bank_s *bank); static int stellaris_auto_probe(struct flash_bank_s *bank);
int stellaris_probe(struct flash_bank_s *bank); static int stellaris_probe(struct flash_bank_s *bank);
int stellaris_protect_check(struct flash_bank_s *bank); static int stellaris_protect_check(struct flash_bank_s *bank);
int stellaris_info(struct flash_bank_s *bank, char *buf, int buf_size); static int stellaris_info(struct flash_bank_s *bank, char *buf, int buf_size);
int stellaris_read_part_info(struct flash_bank_s *bank); static int stellaris_read_part_info(struct flash_bank_s *bank);
u32 stellaris_get_flash_status(flash_bank_t *bank); static u32 stellaris_get_flash_status(flash_bank_t *bank);
void stellaris_set_flash_mode(flash_bank_t *bank,int mode); static void stellaris_set_flash_mode(flash_bank_t *bank,int mode);
u32 stellaris_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout); //static u32 stellaris_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout);
int stellaris_read_part_info(struct flash_bank_s *bank); static int stellaris_read_part_info(struct flash_bank_s *bank);
int stellaris_handle_mass_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int stellaris_handle_mass_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int stellaris_mass_erase(struct flash_bank_s *bank); static int stellaris_mass_erase(struct flash_bank_s *bank);
flash_driver_t stellaris_flash = flash_driver_t stellaris_flash =
{ {
@ -78,7 +78,7 @@ flash_driver_t stellaris_flash =
.info = stellaris_info .info = stellaris_info
}; };
struct { static struct {
u32 partno; u32 partno;
char *partname; char *partname;
} StellarisParts[] = } StellarisParts[] =
@ -234,7 +234,7 @@ struct {
{0,"Unknown part"} {0,"Unknown part"}
}; };
char * StellarisClassname[5] = static char * StellarisClassname[5] =
{ {
"Sandstorm", "Sandstorm",
"Fury", "Fury",
@ -249,7 +249,7 @@ char * StellarisClassname[5] =
/* flash_bank stellaris <base> <size> 0 0 <target#> /* flash_bank stellaris <base> <size> 0 0 <target#>
*/ */
int stellaris_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int stellaris_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
stellaris_flash_bank_t *stellaris_info; stellaris_flash_bank_t *stellaris_info;
@ -272,7 +272,7 @@ int stellaris_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, c
return ERROR_OK; return ERROR_OK;
} }
int stellaris_register_commands(struct command_context_s *cmd_ctx) static int stellaris_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *stm32x_cmd = register_command(cmd_ctx, NULL, "stellaris", NULL, COMMAND_ANY, "stellaris flash specific commands"); command_t *stm32x_cmd = register_command(cmd_ctx, NULL, "stellaris", NULL, COMMAND_ANY, "stellaris flash specific commands");
@ -280,7 +280,7 @@ int stellaris_register_commands(struct command_context_s *cmd_ctx)
return ERROR_OK; return ERROR_OK;
} }
int stellaris_info(struct flash_bank_s *bank, char *buf, int buf_size) static int stellaris_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
int printed, device_class; int printed, device_class;
stellaris_flash_bank_t *stellaris_info = bank->driver_priv; stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
@ -331,7 +331,7 @@ int stellaris_info(struct flash_bank_s *bank, char *buf, int buf_size)
* chip identification and status * * chip identification and status *
***************************************************************************/ ***************************************************************************/
u32 stellaris_get_flash_status(flash_bank_t *bank) static u32 stellaris_get_flash_status(flash_bank_t *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 fmc; u32 fmc;
@ -343,7 +343,7 @@ u32 stellaris_get_flash_status(flash_bank_t *bank)
/** Read clock configuration and set stellaris_info->usec_clocks*/ /** Read clock configuration and set stellaris_info->usec_clocks*/
void stellaris_read_clock_info(flash_bank_t *bank) static void stellaris_read_clock_info(flash_bank_t *bank)
{ {
stellaris_flash_bank_t *stellaris_info = bank->driver_priv; stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -395,7 +395,7 @@ void stellaris_read_clock_info(flash_bank_t *bank)
} }
/* Setup the timimg registers */ /* Setup the timimg registers */
void stellaris_set_flash_mode(flash_bank_t *bank,int mode) static void stellaris_set_flash_mode(flash_bank_t *bank,int mode)
{ {
stellaris_flash_bank_t *stellaris_info = bank->driver_priv; stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -405,7 +405,8 @@ void stellaris_set_flash_mode(flash_bank_t *bank,int mode)
target_write_u32(target, SCB_BASE|USECRL, usecrl); target_write_u32(target, SCB_BASE|USECRL, usecrl);
} }
u32 stellaris_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout) #if 0
static u32 stellaris_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout)
{ {
u32 status; u32 status;
@ -422,7 +423,7 @@ u32 stellaris_wait_status_busy(flash_bank_t *bank, u32 waitbits, int timeout)
} }
/* Send one command to the flash controller */ /* Send one command to the flash controller */
int stellaris_flash_command(struct flash_bank_s *bank,u8 cmd,u16 pagen) static int stellaris_flash_command(struct flash_bank_s *bank,u8 cmd,u16 pagen)
{ {
u32 fmc; u32 fmc;
target_t *target = bank->target; target_t *target = bank->target;
@ -438,9 +439,10 @@ int stellaris_flash_command(struct flash_bank_s *bank,u8 cmd,u16 pagen)
return ERROR_OK; return ERROR_OK;
} }
#endif
/* Read device id register, main clock frequency register and fill in driver info structure */ /* Read device id register, main clock frequency register and fill in driver info structure */
int stellaris_read_part_info(struct flash_bank_s *bank) static int stellaris_read_part_info(struct flash_bank_s *bank)
{ {
stellaris_flash_bank_t *stellaris_info = bank->driver_priv; stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -515,7 +517,7 @@ int stellaris_read_part_info(struct flash_bank_s *bank)
* flash operations * * flash operations *
***************************************************************************/ ***************************************************************************/
int stellaris_protect_check(struct flash_bank_s *bank) static int stellaris_protect_check(struct flash_bank_s *bank)
{ {
u32 status; u32 status;
@ -544,7 +546,7 @@ int stellaris_protect_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int stellaris_erase(struct flash_bank_s *bank, int first, int last) static int stellaris_erase(struct flash_bank_s *bank, int first, int last)
{ {
int banknr; int banknr;
u32 flash_fmc, flash_cris; u32 flash_fmc, flash_cris;
@ -614,7 +616,7 @@ int stellaris_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int stellaris_protect(struct flash_bank_s *bank, int set, int first, int last) static int stellaris_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
u32 fmppe, flash_fmc, flash_cris; u32 fmppe, flash_fmc, flash_cris;
int lockregion; int lockregion;
@ -690,7 +692,7 @@ int stellaris_protect(struct flash_bank_s *bank, int set, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
u8 stellaris_write_code[] = static u8 stellaris_write_code[] =
{ {
/* /*
Call with : Call with :
@ -730,7 +732,7 @@ u8 stellaris_write_code[] =
0x01,0x00,0x42,0xA4 /* .word 0xA4420001 */ 0x01,0x00,0x42,0xA4 /* .word 0xA4420001 */
}; };
int stellaris_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 wcount) static int stellaris_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 wcount)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 buffer_size = 8192; u32 buffer_size = 8192;
@ -810,7 +812,7 @@ int stellaris_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32
return retval; return retval;
} }
int stellaris_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int stellaris_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
stellaris_flash_bank_t *stellaris_info = bank->driver_priv; stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -945,7 +947,7 @@ int stellaris_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count
return ERROR_OK; return ERROR_OK;
} }
int stellaris_probe(struct flash_bank_s *bank) static int stellaris_probe(struct flash_bank_s *bank)
{ {
/* we can't probe on an stellaris /* we can't probe on an stellaris
* if this is an stellaris, it has the configured flash * if this is an stellaris, it has the configured flash
@ -961,7 +963,7 @@ int stellaris_probe(struct flash_bank_s *bank)
return stellaris_read_part_info(bank); return stellaris_read_part_info(bank);
} }
int stellaris_auto_probe(struct flash_bank_s *bank) static int stellaris_auto_probe(struct flash_bank_s *bank)
{ {
stellaris_flash_bank_t *stellaris_info = bank->driver_priv; stellaris_flash_bank_t *stellaris_info = bank->driver_priv;
if (stellaris_info->did1) if (stellaris_info->did1)
@ -969,7 +971,7 @@ int stellaris_auto_probe(struct flash_bank_s *bank)
return stellaris_probe(bank); return stellaris_probe(bank);
} }
int stellaris_mass_erase(struct flash_bank_s *bank) static int stellaris_mass_erase(struct flash_bank_s *bank)
{ {
target_t *target = NULL; target_t *target = NULL;
stellaris_flash_bank_t *stellaris_info = NULL; stellaris_flash_bank_t *stellaris_info = NULL;
@ -1029,7 +1031,7 @@ int stellaris_mass_erase(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int stellaris_handle_mass_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int stellaris_handle_mass_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
int i; int i;

View File

@ -37,23 +37,23 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
int stm32x_register_commands(struct command_context_s *cmd_ctx); static int stm32x_register_commands(struct command_context_s *cmd_ctx);
int stm32x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int stm32x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int stm32x_erase(struct flash_bank_s *bank, int first, int last); static int stm32x_erase(struct flash_bank_s *bank, int first, int last);
int stm32x_protect(struct flash_bank_s *bank, int set, int first, int last); static int stm32x_protect(struct flash_bank_s *bank, int set, int first, int last);
int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int stm32x_probe(struct flash_bank_s *bank); static int stm32x_probe(struct flash_bank_s *bank);
int stm32x_auto_probe(struct flash_bank_s *bank); static int stm32x_auto_probe(struct flash_bank_s *bank);
int stm32x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); //static int stm32x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int stm32x_protect_check(struct flash_bank_s *bank); static int stm32x_protect_check(struct flash_bank_s *bank);
int stm32x_info(struct flash_bank_s *bank, char *buf, int buf_size); static int stm32x_info(struct flash_bank_s *bank, char *buf, int buf_size);
int stm32x_handle_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int stm32x_handle_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int stm32x_handle_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int stm32x_handle_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int stm32x_handle_options_read_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int stm32x_handle_options_read_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int stm32x_handle_options_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int stm32x_handle_options_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int stm32x_handle_mass_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int stm32x_handle_mass_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int stm32x_mass_erase(struct flash_bank_s *bank); static int stm32x_mass_erase(struct flash_bank_s *bank);
flash_driver_t stm32x_flash = flash_driver_t stm32x_flash =
{ {
@ -70,7 +70,7 @@ flash_driver_t stm32x_flash =
.info = stm32x_info .info = stm32x_info
}; };
int stm32x_register_commands(struct command_context_s *cmd_ctx) static int stm32x_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *stm32x_cmd = register_command(cmd_ctx, NULL, "stm32x", NULL, COMMAND_ANY, "stm32x flash specific commands"); command_t *stm32x_cmd = register_command(cmd_ctx, NULL, "stm32x", NULL, COMMAND_ANY, "stm32x flash specific commands");
@ -89,7 +89,7 @@ int stm32x_register_commands(struct command_context_s *cmd_ctx)
/* flash bank stm32x <base> <size> 0 0 <target#> /* flash bank stm32x <base> <size> 0 0 <target#>
*/ */
int stm32x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int stm32x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
stm32x_flash_bank_t *stm32x_info; stm32x_flash_bank_t *stm32x_info;
@ -108,7 +108,7 @@ int stm32x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
u32 stm32x_get_flash_status(flash_bank_t *bank) static u32 stm32x_get_flash_status(flash_bank_t *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 status; u32 status;
@ -118,7 +118,7 @@ u32 stm32x_get_flash_status(flash_bank_t *bank)
return status; return status;
} }
u32 stm32x_wait_status_busy(flash_bank_t *bank, int timeout) static u32 stm32x_wait_status_busy(flash_bank_t *bank, int timeout)
{ {
u32 status; u32 status;
@ -132,7 +132,7 @@ u32 stm32x_wait_status_busy(flash_bank_t *bank, int timeout)
return status; return status;
} }
int stm32x_read_options(struct flash_bank_s *bank) static int stm32x_read_options(struct flash_bank_s *bank)
{ {
u32 optiondata; u32 optiondata;
stm32x_flash_bank_t *stm32x_info = NULL; stm32x_flash_bank_t *stm32x_info = NULL;
@ -160,7 +160,7 @@ int stm32x_read_options(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_erase_options(struct flash_bank_s *bank) static int stm32x_erase_options(struct flash_bank_s *bank)
{ {
stm32x_flash_bank_t *stm32x_info = NULL; stm32x_flash_bank_t *stm32x_info = NULL;
target_t *target = bank->target; target_t *target = bank->target;
@ -197,7 +197,7 @@ int stm32x_erase_options(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_write_options(struct flash_bank_s *bank) static int stm32x_write_options(struct flash_bank_s *bank)
{ {
stm32x_flash_bank_t *stm32x_info = NULL; stm32x_flash_bank_t *stm32x_info = NULL;
target_t *target = bank->target; target_t *target = bank->target;
@ -281,7 +281,7 @@ int stm32x_write_options(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_protect_check(struct flash_bank_s *bank) static int stm32x_protect_check(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
stm32x_flash_bank_t *stm32x_info = bank->driver_priv; stm32x_flash_bank_t *stm32x_info = bank->driver_priv;
@ -352,7 +352,7 @@ int stm32x_protect_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_erase(struct flash_bank_s *bank, int first, int last) static int stm32x_erase(struct flash_bank_s *bank, int first, int last)
{ {
target_t *target = bank->target; target_t *target = bank->target;
int i; int i;
@ -393,7 +393,7 @@ int stm32x_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_protect(struct flash_bank_s *bank, int set, int first, int last) static int stm32x_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
stm32x_flash_bank_t *stm32x_info = NULL; stm32x_flash_bank_t *stm32x_info = NULL;
target_t *target = bank->target; target_t *target = bank->target;
@ -480,7 +480,7 @@ int stm32x_protect(struct flash_bank_s *bank, int set, int first, int last)
return stm32x_write_options(bank); return stm32x_write_options(bank);
} }
int stm32x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int stm32x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
stm32x_flash_bank_t *stm32x_info = bank->driver_priv; stm32x_flash_bank_t *stm32x_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -595,7 +595,7 @@ int stm32x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 co
return retval; return retval;
} }
int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 words_remaining = (count / 2); u32 words_remaining = (count / 2);
@ -704,7 +704,7 @@ int stm32x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_probe(struct flash_bank_s *bank) static int stm32x_probe(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
stm32x_flash_bank_t *stm32x_info = bank->driver_priv; stm32x_flash_bank_t *stm32x_info = bank->driver_priv;
@ -821,7 +821,7 @@ int stm32x_probe(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_auto_probe(struct flash_bank_s *bank) static int stm32x_auto_probe(struct flash_bank_s *bank)
{ {
stm32x_flash_bank_t *stm32x_info = bank->driver_priv; stm32x_flash_bank_t *stm32x_info = bank->driver_priv;
if (stm32x_info->probed) if (stm32x_info->probed)
@ -829,12 +829,14 @@ int stm32x_auto_probe(struct flash_bank_s *bank)
return stm32x_probe(bank); return stm32x_probe(bank);
} }
int stm32x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) #if 0
static int stm32x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
return ERROR_OK; return ERROR_OK;
} }
#endif
int stm32x_info(struct flash_bank_s *bank, char *buf, int buf_size) static int stm32x_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 device_id; u32 device_id;
@ -936,7 +938,7 @@ int stm32x_info(struct flash_bank_s *bank, char *buf, int buf_size)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_handle_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int stm32x_handle_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
target_t *target = NULL; target_t *target = NULL;
@ -985,7 +987,7 @@ int stm32x_handle_lock_command(struct command_context_s *cmd_ctx, char *cmd, cha
return ERROR_OK; return ERROR_OK;
} }
int stm32x_handle_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int stm32x_handle_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
target_t *target = NULL; target_t *target = NULL;
@ -1031,7 +1033,7 @@ int stm32x_handle_unlock_command(struct command_context_s *cmd_ctx, char *cmd, c
return ERROR_OK; return ERROR_OK;
} }
int stm32x_handle_options_read_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int stm32x_handle_options_read_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
u32 optionbyte; u32 optionbyte;
@ -1090,7 +1092,7 @@ int stm32x_handle_options_read_command(struct command_context_s *cmd_ctx, char *
return ERROR_OK; return ERROR_OK;
} }
int stm32x_handle_options_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int stm32x_handle_options_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
target_t *target = NULL; target_t *target = NULL;
@ -1166,7 +1168,7 @@ int stm32x_handle_options_write_command(struct command_context_s *cmd_ctx, char
return ERROR_OK; return ERROR_OK;
} }
int stm32x_mass_erase(struct flash_bank_s *bank) static int stm32x_mass_erase(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 status; u32 status;
@ -1204,7 +1206,7 @@ int stm32x_mass_erase(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int stm32x_handle_mass_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int stm32x_handle_mass_erase_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
int i; int i;

View File

@ -54,17 +54,17 @@ str7x_mem_layout_t mem_layout_str7bank1[] = {
{0x00002000, 0x02000, 0x20000} {0x00002000, 0x02000, 0x20000}
}; };
int str7x_register_commands(struct command_context_s *cmd_ctx); static int str7x_register_commands(struct command_context_s *cmd_ctx);
int str7x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int str7x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int str7x_erase(struct flash_bank_s *bank, int first, int last); static int str7x_erase(struct flash_bank_s *bank, int first, int last);
int str7x_protect(struct flash_bank_s *bank, int set, int first, int last); static int str7x_protect(struct flash_bank_s *bank, int set, int first, int last);
int str7x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int str7x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int str7x_probe(struct flash_bank_s *bank); static int str7x_probe(struct flash_bank_s *bank);
int str7x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); //static int str7x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str7x_protect_check(struct flash_bank_s *bank); static int str7x_protect_check(struct flash_bank_s *bank);
int str7x_info(struct flash_bank_s *bank, char *buf, int buf_size); static int str7x_info(struct flash_bank_s *bank, char *buf, int buf_size);
int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
flash_driver_t str7x_flash = flash_driver_t str7x_flash =
{ {
@ -81,7 +81,7 @@ flash_driver_t str7x_flash =
.info = str7x_info .info = str7x_info
}; };
int str7x_register_commands(struct command_context_s *cmd_ctx) static int str7x_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *str7x_cmd = register_command(cmd_ctx, NULL, "str7x", NULL, COMMAND_ANY, NULL); command_t *str7x_cmd = register_command(cmd_ctx, NULL, "str7x", NULL, COMMAND_ANY, NULL);
@ -91,13 +91,13 @@ int str7x_register_commands(struct command_context_s *cmd_ctx)
return ERROR_OK; return ERROR_OK;
} }
int str7x_get_flash_adr(struct flash_bank_s *bank, u32 reg) static int str7x_get_flash_adr(struct flash_bank_s *bank, u32 reg)
{ {
str7x_flash_bank_t *str7x_info = bank->driver_priv; str7x_flash_bank_t *str7x_info = bank->driver_priv;
return (str7x_info->register_base | reg); return (str7x_info->register_base | reg);
} }
int str7x_build_block_list(struct flash_bank_s *bank) static int str7x_build_block_list(struct flash_bank_s *bank)
{ {
str7x_flash_bank_t *str7x_info = bank->driver_priv; str7x_flash_bank_t *str7x_info = bank->driver_priv;
@ -155,7 +155,7 @@ int str7x_build_block_list(struct flash_bank_s *bank)
/* flash bank str7x <base> <size> 0 0 <target#> <str71_variant> /* flash bank str7x <base> <size> 0 0 <target#> <str71_variant>
*/ */
int str7x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int str7x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
str7x_flash_bank_t *str7x_info; str7x_flash_bank_t *str7x_info;
@ -200,7 +200,7 @@ int str7x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
u32 str7x_status(struct flash_bank_s *bank) static u32 str7x_status(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 retval; u32 retval;
@ -210,7 +210,7 @@ u32 str7x_status(struct flash_bank_s *bank)
return retval; return retval;
} }
u32 str7x_result(struct flash_bank_s *bank) static u32 str7x_result(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 retval; u32 retval;
@ -220,7 +220,7 @@ u32 str7x_result(struct flash_bank_s *bank)
return retval; return retval;
} }
int str7x_protect_check(struct flash_bank_s *bank) static int str7x_protect_check(struct flash_bank_s *bank)
{ {
str7x_flash_bank_t *str7x_info = bank->driver_priv; str7x_flash_bank_t *str7x_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -247,7 +247,7 @@ int str7x_protect_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int str7x_erase(struct flash_bank_s *bank, int first, int last) static int str7x_erase(struct flash_bank_s *bank, int first, int last)
{ {
str7x_flash_bank_t *str7x_info = bank->driver_priv; str7x_flash_bank_t *str7x_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -300,7 +300,7 @@ int str7x_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int str7x_protect(struct flash_bank_s *bank, int set, int first, int last) static int str7x_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
str7x_flash_bank_t *str7x_info = bank->driver_priv; str7x_flash_bank_t *str7x_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -354,7 +354,7 @@ int str7x_protect(struct flash_bank_s *bank, int set, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int str7x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int str7x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
str7x_flash_bank_t *str7x_info = bank->driver_priv; str7x_flash_bank_t *str7x_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -469,7 +469,7 @@ int str7x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 cou
return retval; return retval;
} }
int str7x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int str7x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
target_t *target = bank->target; target_t *target = bank->target;
str7x_flash_bank_t *str7x_info = bank->driver_priv; str7x_flash_bank_t *str7x_info = bank->driver_priv;
@ -629,23 +629,25 @@ int str7x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int str7x_probe(struct flash_bank_s *bank) static int str7x_probe(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
int str7x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) #if 0
static int str7x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
return ERROR_OK; return ERROR_OK;
} }
#endif
int str7x_info(struct flash_bank_s *bank, char *buf, int buf_size) static int str7x_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
snprintf(buf, buf_size, "str7x flash driver info" ); snprintf(buf, buf_size, "str7x flash driver info" );
return ERROR_OK; return ERROR_OK;
} }
int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str7x_handle_disable_jtag_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
target_t *target = NULL; target_t *target = NULL;

View File

@ -44,17 +44,17 @@
static u32 bank1start = 0x00080000; static u32 bank1start = 0x00080000;
int str9x_register_commands(struct command_context_s *cmd_ctx); static int str9x_register_commands(struct command_context_s *cmd_ctx);
int str9x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int str9x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int str9x_erase(struct flash_bank_s *bank, int first, int last); static int str9x_erase(struct flash_bank_s *bank, int first, int last);
int str9x_protect(struct flash_bank_s *bank, int set, int first, int last); static int str9x_protect(struct flash_bank_s *bank, int set, int first, int last);
int str9x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int str9x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int str9x_probe(struct flash_bank_s *bank); static int str9x_probe(struct flash_bank_s *bank);
int str9x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); //static int str9x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9x_protect_check(struct flash_bank_s *bank); static int str9x_protect_check(struct flash_bank_s *bank);
int str9x_info(struct flash_bank_s *bank, char *buf, int buf_size); static int str9x_info(struct flash_bank_s *bank, char *buf, int buf_size);
int str9x_handle_flash_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9x_handle_flash_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
flash_driver_t str9x_flash = flash_driver_t str9x_flash =
{ {
@ -71,7 +71,7 @@ flash_driver_t str9x_flash =
.info = str9x_info .info = str9x_info
}; };
int str9x_register_commands(struct command_context_s *cmd_ctx) static int str9x_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *str9x_cmd = register_command(cmd_ctx, NULL, "str9x", NULL, COMMAND_ANY, NULL); command_t *str9x_cmd = register_command(cmd_ctx, NULL, "str9x", NULL, COMMAND_ANY, NULL);
@ -81,7 +81,7 @@ int str9x_register_commands(struct command_context_s *cmd_ctx)
return ERROR_OK; return ERROR_OK;
} }
int str9x_build_block_list(struct flash_bank_s *bank) static int str9x_build_block_list(struct flash_bank_s *bank)
{ {
str9x_flash_bank_t *str9x_info = bank->driver_priv; str9x_flash_bank_t *str9x_info = bank->driver_priv;
@ -164,7 +164,8 @@ int str9x_build_block_list(struct flash_bank_s *bank)
/* flash bank str9x <base> <size> 0 0 <target#> /* flash bank str9x <base> <size> 0 0 <target#>
*/ */
int str9x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int str9x_flash_bank_command(struct command_context_s *cmd_ctx,
char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
str9x_flash_bank_t *str9x_info; str9x_flash_bank_t *str9x_info;
@ -184,7 +185,7 @@ int str9x_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char
return ERROR_OK; return ERROR_OK;
} }
int str9x_protect_check(struct flash_bank_s *bank) static int str9x_protect_check(struct flash_bank_s *bank)
{ {
int retval; int retval;
str9x_flash_bank_t *str9x_info = bank->driver_priv; str9x_flash_bank_t *str9x_info = bank->driver_priv;
@ -259,7 +260,7 @@ int str9x_protect_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int str9x_erase(struct flash_bank_s *bank, int first, int last) static int str9x_erase(struct flash_bank_s *bank, int first, int last)
{ {
target_t *target = bank->target; target_t *target = bank->target;
int i; int i;
@ -351,7 +352,8 @@ int str9x_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int str9x_protect(struct flash_bank_s *bank, int set, int first, int last) static int str9x_protect(struct flash_bank_s *bank,
int set, int first, int last)
{ {
target_t *target = bank->target; target_t *target = bank->target;
int i; int i;
@ -389,7 +391,8 @@ int str9x_protect(struct flash_bank_s *bank, int set, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int str9x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int str9x_write_block(struct flash_bank_s *bank,
u8 *buffer, u32 offset, u32 count)
{ {
str9x_flash_bank_t *str9x_info = bank->driver_priv; str9x_flash_bank_t *str9x_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -497,7 +500,8 @@ int str9x_write_block(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 cou
return retval; return retval;
} }
int str9x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int str9x_write(struct flash_bank_s *bank,
u8 *buffer, u32 offset, u32 count)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 words_remaining = (count / 2); u32 words_remaining = (count / 2);
@ -654,23 +658,27 @@ int str9x_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int str9x_probe(struct flash_bank_s *bank) static int str9x_probe(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
int str9x_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) #if 0
static int str9x_handle_part_id_command(struct command_context_s *cmd_ctx,
char *cmd, char **args, int argc)
{ {
return ERROR_OK; return ERROR_OK;
} }
#endif
int str9x_info(struct flash_bank_s *bank, char *buf, int buf_size) static int str9x_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
snprintf(buf, buf_size, "str9x flash driver info" ); snprintf(buf, buf_size, "str9x flash driver info" );
return ERROR_OK; return ERROR_OK;
} }
int str9x_handle_flash_config_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9x_handle_flash_config_command(struct command_context_s *cmd_ctx,
char *cmd, char **args, int argc)
{ {
str9x_flash_bank_t *str9x_info; str9x_flash_bank_t *str9x_info;
flash_bank_t *bank; flash_bank_t *bank;

View File

@ -40,31 +40,31 @@
#include <unistd.h> #include <unistd.h>
#include <getopt.h> #include <getopt.h>
int str9xpec_register_commands(struct command_context_s *cmd_ctx); static int str9xpec_register_commands(struct command_context_s *cmd_ctx);
int str9xpec_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int str9xpec_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int str9xpec_erase(struct flash_bank_s *bank, int first, int last); static int str9xpec_erase(struct flash_bank_s *bank, int first, int last);
int str9xpec_protect(struct flash_bank_s *bank, int set, int first, int last); static int str9xpec_protect(struct flash_bank_s *bank, int set, int first, int last);
int str9xpec_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count); static int str9xpec_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count);
int str9xpec_probe(struct flash_bank_s *bank); static int str9xpec_probe(struct flash_bank_s *bank);
int str9xpec_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_protect_check(struct flash_bank_s *bank); static int str9xpec_protect_check(struct flash_bank_s *bank);
int str9xpec_erase_check(struct flash_bank_s *bank); static int str9xpec_erase_check(struct flash_bank_s *bank);
int str9xpec_info(struct flash_bank_s *bank, char *buf, int buf_size); static int str9xpec_info(struct flash_bank_s *bank, char *buf, int buf_size);
int str9xpec_erase_area(struct flash_bank_s *bank, int first, int last); static int str9xpec_erase_area(struct flash_bank_s *bank, int first, int last);
int str9xpec_set_address(struct flash_bank_s *bank, u8 sector); static int str9xpec_set_address(struct flash_bank_s *bank, u8 sector);
int str9xpec_write_options(struct flash_bank_s *bank); static int str9xpec_write_options(struct flash_bank_s *bank);
int str9xpec_handle_flash_options_cmap_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_options_cmap_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_options_lvdthd_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_options_lvdthd_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_options_lvdsel_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_options_lvdsel_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_options_lvdwarn_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_options_lvdwarn_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_options_read_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_options_read_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_options_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_options_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_enable_turbo_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_enable_turbo_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
int str9xpec_handle_flash_disable_turbo_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc); static int str9xpec_handle_flash_disable_turbo_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
flash_driver_t str9xpec_flash = flash_driver_t str9xpec_flash =
{ {
@ -81,7 +81,7 @@ flash_driver_t str9xpec_flash =
.info = str9xpec_info .info = str9xpec_info
}; };
int str9xpec_register_commands(struct command_context_s *cmd_ctx) static int str9xpec_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *str9xpec_cmd = register_command(cmd_ctx, NULL, "str9xpec", NULL, COMMAND_ANY, "str9xpec flash specific commands"); command_t *str9xpec_cmd = register_command(cmd_ctx, NULL, "str9xpec", NULL, COMMAND_ANY, "str9xpec flash specific commands");
@ -140,7 +140,7 @@ int str9xpec_set_instr(jtag_tap_t *tap, u32 new_instr, tap_state_t end_state)
return ERROR_OK; return ERROR_OK;
} }
u8 str9xpec_isc_status(jtag_tap_t *tap) static u8 str9xpec_isc_status(jtag_tap_t *tap)
{ {
scan_field_t field; scan_field_t field;
u8 status; u8 status;
@ -169,7 +169,7 @@ u8 str9xpec_isc_status(jtag_tap_t *tap)
return status; return status;
} }
int str9xpec_isc_enable(struct flash_bank_s *bank) static int str9xpec_isc_enable(struct flash_bank_s *bank)
{ {
u8 status; u8 status;
jtag_tap_t *tap; jtag_tap_t *tap;
@ -196,7 +196,7 @@ int str9xpec_isc_enable(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_isc_disable(struct flash_bank_s *bank) static int str9xpec_isc_disable(struct flash_bank_s *bank)
{ {
u8 status; u8 status;
jtag_tap_t *tap; jtag_tap_t *tap;
@ -225,7 +225,7 @@ int str9xpec_isc_disable(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_read_config(struct flash_bank_s *bank) static int str9xpec_read_config(struct flash_bank_s *bank)
{ {
scan_field_t field; scan_field_t field;
u8 status; u8 status;
@ -258,7 +258,7 @@ int str9xpec_read_config(struct flash_bank_s *bank)
return status; return status;
} }
int str9xpec_build_block_list(struct flash_bank_s *bank) static int str9xpec_build_block_list(struct flash_bank_s *bank)
{ {
str9xpec_flash_controller_t *str9xpec_info = bank->driver_priv; str9xpec_flash_controller_t *str9xpec_info = bank->driver_priv;
@ -327,7 +327,7 @@ int str9xpec_build_block_list(struct flash_bank_s *bank)
/* flash bank str9x <base> <size> 0 0 <target#> /* flash bank str9x <base> <size> 0 0 <target#>
*/ */
int str9xpec_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int str9xpec_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
str9xpec_flash_controller_t *str9xpec_info; str9xpec_flash_controller_t *str9xpec_info;
armv4_5_common_t *armv4_5 = NULL; armv4_5_common_t *armv4_5 = NULL;
@ -361,7 +361,7 @@ int str9xpec_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, ch
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_blank_check(struct flash_bank_s *bank, int first, int last) static int str9xpec_blank_check(struct flash_bank_s *bank, int first, int last)
{ {
scan_field_t field; scan_field_t field;
u8 status; u8 status;
@ -438,7 +438,7 @@ int str9xpec_blank_check(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_protect_check(struct flash_bank_s *bank) static int str9xpec_protect_check(struct flash_bank_s *bank)
{ {
u8 status; u8 status;
int i; int i;
@ -460,7 +460,7 @@ int str9xpec_protect_check(struct flash_bank_s *bank)
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_erase_area(struct flash_bank_s *bank, int first, int last) static int str9xpec_erase_area(struct flash_bank_s *bank, int first, int last)
{ {
scan_field_t field; scan_field_t field;
u8 status; u8 status;
@ -535,7 +535,7 @@ int str9xpec_erase_area(struct flash_bank_s *bank, int first, int last)
return status; return status;
} }
int str9xpec_erase(struct flash_bank_s *bank, int first, int last) static int str9xpec_erase(struct flash_bank_s *bank, int first, int last)
{ {
int status; int status;
@ -547,7 +547,7 @@ int str9xpec_erase(struct flash_bank_s *bank, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_lock_device(struct flash_bank_s *bank) static int str9xpec_lock_device(struct flash_bank_s *bank)
{ {
scan_field_t field; scan_field_t field;
u8 status; u8 status;
@ -594,7 +594,7 @@ int str9xpec_lock_device(struct flash_bank_s *bank)
return status; return status;
} }
int str9xpec_unlock_device(struct flash_bank_s *bank) static int str9xpec_unlock_device(struct flash_bank_s *bank)
{ {
u8 status; u8 status;
@ -603,7 +603,7 @@ int str9xpec_unlock_device(struct flash_bank_s *bank)
return status; return status;
} }
int str9xpec_protect(struct flash_bank_s *bank, int set, int first, int last) static int str9xpec_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
u8 status; u8 status;
int i; int i;
@ -649,7 +649,7 @@ int str9xpec_protect(struct flash_bank_s *bank, int set, int first, int last)
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_set_address(struct flash_bank_s *bank, u8 sector) static int str9xpec_set_address(struct flash_bank_s *bank, u8 sector)
{ {
jtag_tap_t *tap; jtag_tap_t *tap;
scan_field_t field; scan_field_t field;
@ -675,7 +675,7 @@ int str9xpec_set_address(struct flash_bank_s *bank, u8 sector)
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count) static int str9xpec_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
{ {
str9xpec_flash_controller_t *str9xpec_info = bank->driver_priv; str9xpec_flash_controller_t *str9xpec_info = bank->driver_priv;
u32 dwords_remaining = (count / 8); u32 dwords_remaining = (count / 8);
@ -858,12 +858,12 @@ int str9xpec_write(struct flash_bank_s *bank, u8 *buffer, u32 offset, u32 count)
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_probe(struct flash_bank_s *bank) static int str9xpec_probe(struct flash_bank_s *bank)
{ {
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
scan_field_t field; scan_field_t field;
@ -913,18 +913,18 @@ int str9xpec_handle_part_id_command(struct command_context_s *cmd_ctx, char *cmd
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_erase_check(struct flash_bank_s *bank) static int str9xpec_erase_check(struct flash_bank_s *bank)
{ {
return str9xpec_blank_check(bank, 0, bank->num_sectors - 1); return str9xpec_blank_check(bank, 0, bank->num_sectors - 1);
} }
int str9xpec_info(struct flash_bank_s *bank, char *buf, int buf_size) static int str9xpec_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
snprintf(buf, buf_size, "str9xpec flash driver info" ); snprintf(buf, buf_size, "str9xpec flash driver info" );
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_flash_options_read_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_options_read_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
u8 status; u8 status;
@ -983,7 +983,7 @@ int str9xpec_handle_flash_options_read_command(struct command_context_s *cmd_ctx
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_write_options(struct flash_bank_s *bank) static int str9xpec_write_options(struct flash_bank_s *bank)
{ {
scan_field_t field; scan_field_t field;
u8 status; u8 status;
@ -1054,7 +1054,7 @@ int str9xpec_write_options(struct flash_bank_s *bank)
return status; return status;
} }
int str9xpec_handle_flash_options_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_options_write_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
u8 status; u8 status;
@ -1080,7 +1080,7 @@ int str9xpec_handle_flash_options_write_command(struct command_context_s *cmd_ct
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_flash_options_cmap_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_options_cmap_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
str9xpec_flash_controller_t *str9xpec_info = NULL; str9xpec_flash_controller_t *str9xpec_info = NULL;
@ -1112,7 +1112,7 @@ int str9xpec_handle_flash_options_cmap_command(struct command_context_s *cmd_ctx
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_flash_options_lvdthd_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_options_lvdthd_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
str9xpec_flash_controller_t *str9xpec_info = NULL; str9xpec_flash_controller_t *str9xpec_info = NULL;
@ -1176,7 +1176,7 @@ int str9xpec_handle_flash_options_lvdsel_command(struct command_context_s *cmd_c
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_flash_options_lvdwarn_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_options_lvdwarn_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
str9xpec_flash_controller_t *str9xpec_info = NULL; str9xpec_flash_controller_t *str9xpec_info = NULL;
@ -1208,7 +1208,7 @@ int str9xpec_handle_flash_options_lvdwarn_command(struct command_context_s *cmd_
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_flash_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_lock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
u8 status; u8 status;
flash_bank_t *bank; flash_bank_t *bank;
@ -1234,7 +1234,7 @@ int str9xpec_handle_flash_lock_command(struct command_context_s *cmd_ctx, char *
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_flash_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_unlock_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
u8 status; u8 status;
flash_bank_t *bank; flash_bank_t *bank;
@ -1260,7 +1260,7 @@ int str9xpec_handle_flash_unlock_command(struct command_context_s *cmd_ctx, char
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_flash_enable_turbo_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_enable_turbo_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
int retval; int retval;
flash_bank_t *bank; flash_bank_t *bank;
@ -1313,7 +1313,7 @@ int str9xpec_handle_flash_enable_turbo_command(struct command_context_s *cmd_ctx
return ERROR_OK; return ERROR_OK;
} }
int str9xpec_handle_flash_disable_turbo_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int str9xpec_handle_flash_disable_turbo_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
flash_bank_t *bank; flash_bank_t *bank;
jtag_tap_t *tap; jtag_tap_t *tap;

View File

@ -26,16 +26,16 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
int tms470_register_commands(struct command_context_s *cmd_ctx); static int tms470_register_commands(struct command_context_s *cmd_ctx);
int tms470_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank); static int tms470_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank);
int tms470_erase(struct flash_bank_s *bank, int first, int last); static int tms470_erase(struct flash_bank_s *bank, int first, int last);
int tms470_protect(struct flash_bank_s *bank, int set, int first, int last); static int tms470_protect(struct flash_bank_s *bank, int set, int first, int last);
int tms470_write(struct flash_bank_s *bank, u8 * buffer, u32 offset, u32 count); static int tms470_write(struct flash_bank_s *bank, u8 * buffer, u32 offset, u32 count);
int tms470_probe(struct flash_bank_s *bank); static int tms470_probe(struct flash_bank_s *bank);
int tms470_auto_probe(struct flash_bank_s *bank); static int tms470_auto_probe(struct flash_bank_s *bank);
int tms470_erase_check(struct flash_bank_s *bank); static int tms470_erase_check(struct flash_bank_s *bank);
int tms470_protect_check(struct flash_bank_s *bank); static int tms470_protect_check(struct flash_bank_s *bank);
int tms470_info(struct flash_bank_s *bank, char *buf, int buf_size); static int tms470_info(struct flash_bank_s *bank, char *buf, int buf_size);
flash_driver_t tms470_flash = { flash_driver_t tms470_flash = {
.name = "tms470", .name = "tms470",
@ -133,7 +133,7 @@ const flash_sector_t TMS470R1A384_BANK2_SECTORS[] = {
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_read_part_info(struct flash_bank_s *bank) static int tms470_read_part_info(struct flash_bank_s *bank)
{ {
tms470_flash_bank_t *tms470_info = bank->driver_priv; tms470_flash_bank_t *tms470_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -309,10 +309,10 @@ int tms470_read_part_info(struct flash_bank_s *bank)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
u32 keysSet = 0; static u32 keysSet = 0;
u32 flashKeys[4]; static u32 flashKeys[4];
int tms470_handle_flash_keyset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int tms470_handle_flash_keyset_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
if (argc > 4) if (argc > 4)
{ {
@ -355,27 +355,27 @@ int tms470_handle_flash_keyset_command(struct command_context_s *cmd_ctx, char *
return ERROR_OK; return ERROR_OK;
} }
const u32 FLASH_KEYS_ALL_ONES[] = { 0xFFFFFFFF, 0xFFFFFFFF, static const u32 FLASH_KEYS_ALL_ONES[] = { 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
}; };
const u32 FLASH_KEYS_ALL_ZEROS[] = { 0x00000000, 0x00000000, static const u32 FLASH_KEYS_ALL_ZEROS[] = { 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
}; };
const u32 FLASH_KEYS_MIX1[] = { 0xf0fff0ff, 0xf0fff0ff, static const u32 FLASH_KEYS_MIX1[] = { 0xf0fff0ff, 0xf0fff0ff,
0xf0fff0ff, 0xf0fff0ff 0xf0fff0ff, 0xf0fff0ff
}; };
const u32 FLASH_KEYS_MIX2[] = { 0x0000ffff, 0x0000ffff, static const u32 FLASH_KEYS_MIX2[] = { 0x0000ffff, 0x0000ffff,
0x0000ffff, 0x0000ffff 0x0000ffff, 0x0000ffff
}; };
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int oscMHz = 12; static int oscMHz = 12;
int tms470_handle_osc_megahertz_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int tms470_handle_osc_megahertz_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
if (argc > 1) if (argc > 1)
{ {
@ -402,9 +402,9 @@ int tms470_handle_osc_megahertz_command(struct command_context_s *cmd_ctx, char
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int plldis = 0; static int plldis = 0;
int tms470_handle_plldis_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc) static int tms470_handle_plldis_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{ {
if (argc > 1) if (argc > 1)
{ {
@ -424,7 +424,7 @@ int tms470_handle_plldis_command(struct command_context_s *cmd_ctx, char *cmd, c
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_check_flash_unlocked(target_t * target) static int tms470_check_flash_unlocked(target_t * target)
{ {
u32 fmbbusy; u32 fmbbusy;
@ -435,7 +435,7 @@ int tms470_check_flash_unlocked(target_t * target)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_try_flash_keys(target_t * target, const u32 * key_set) static int tms470_try_flash_keys(target_t * target, const u32 * key_set)
{ {
u32 glbctrl, fmmstat; u32 glbctrl, fmmstat;
int retval = ERROR_FLASH_OPERATION_FAILED; int retval = ERROR_FLASH_OPERATION_FAILED;
@ -513,7 +513,7 @@ int tms470_try_flash_keys(target_t * target, const u32 * key_set)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_unlock_flash(struct flash_bank_s *bank) static int tms470_unlock_flash(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
const u32 *p_key_sets[5]; const u32 *p_key_sets[5];
@ -552,7 +552,7 @@ int tms470_unlock_flash(struct flash_bank_s *bank)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_flash_initialize_internal_state_machine(struct flash_bank_s *bank) static int tms470_flash_initialize_internal_state_machine(struct flash_bank_s *bank)
{ {
u32 fmmac2, fmmac1, fmmaxep, k, delay, glbctrl, sysclk; u32 fmmac2, fmmac1, fmmaxep, k, delay, glbctrl, sysclk;
target_t *target = bank->target; target_t *target = bank->target;
@ -744,7 +744,7 @@ int tms470_flash_status(struct flash_bank_s *bank)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_erase_sector(struct flash_bank_s *bank, int sector) static int tms470_erase_sector(struct flash_bank_s *bank, int sector)
{ {
u32 glbctrl, orig_fmregopt, fmbsea, fmbseb, fmmstat; u32 glbctrl, orig_fmregopt, fmbsea, fmbseb, fmmstat;
target_t *target = bank->target; target_t *target = bank->target;
@ -839,7 +839,7 @@ int tms470_erase_sector(struct flash_bank_s *bank, int sector)
Implementation of Flash Driver Interfaces Implementation of Flash Driver Interfaces
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
int tms470_register_commands(struct command_context_s *cmd_ctx) static int tms470_register_commands(struct command_context_s *cmd_ctx)
{ {
command_t *tms470_cmd = register_command(cmd_ctx, NULL, "tms470", NULL, COMMAND_ANY, "applies to TI tms470 family"); command_t *tms470_cmd = register_command(cmd_ctx, NULL, "tms470", NULL, COMMAND_ANY, "applies to TI tms470 family");
@ -852,7 +852,7 @@ int tms470_register_commands(struct command_context_s *cmd_ctx)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_erase(struct flash_bank_s *bank, int first, int last) static int tms470_erase(struct flash_bank_s *bank, int first, int last)
{ {
tms470_flash_bank_t *tms470_info = bank->driver_priv; tms470_flash_bank_t *tms470_info = bank->driver_priv;
int sector, result = ERROR_OK; int sector, result = ERROR_OK;
@ -899,7 +899,7 @@ int tms470_erase(struct flash_bank_s *bank, int first, int last)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_protect(struct flash_bank_s *bank, int set, int first, int last) static int tms470_protect(struct flash_bank_s *bank, int set, int first, int last)
{ {
tms470_flash_bank_t *tms470_info = bank->driver_priv; tms470_flash_bank_t *tms470_info = bank->driver_priv;
target_t *target = bank->target; target_t *target = bank->target;
@ -951,7 +951,7 @@ int tms470_protect(struct flash_bank_s *bank, int set, int first, int last)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_write(struct flash_bank_s *bank, u8 * buffer, u32 offset, u32 count) static int tms470_write(struct flash_bank_s *bank, u8 * buffer, u32 offset, u32 count)
{ {
target_t *target = bank->target; target_t *target = bank->target;
u32 glbctrl, fmbac2, orig_fmregopt, fmbsea, fmbseb, fmmaxpp, fmmstat; u32 glbctrl, fmbac2, orig_fmregopt, fmbsea, fmbseb, fmmaxpp, fmmstat;
@ -1048,7 +1048,7 @@ int tms470_write(struct flash_bank_s *bank, u8 * buffer, u32 offset, u32 count)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_probe(struct flash_bank_s *bank) static int tms470_probe(struct flash_bank_s *bank)
{ {
if (bank->target->state != TARGET_HALTED) if (bank->target->state != TARGET_HALTED)
{ {
@ -1059,7 +1059,7 @@ int tms470_probe(struct flash_bank_s *bank)
return tms470_read_part_info(bank); return tms470_read_part_info(bank);
} }
int tms470_auto_probe(struct flash_bank_s *bank) static int tms470_auto_probe(struct flash_bank_s *bank)
{ {
tms470_flash_bank_t *tms470_info = bank->driver_priv; tms470_flash_bank_t *tms470_info = bank->driver_priv;
@ -1070,7 +1070,7 @@ int tms470_auto_probe(struct flash_bank_s *bank)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_erase_check(struct flash_bank_s *bank) static int tms470_erase_check(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
tms470_flash_bank_t *tms470_info = bank->driver_priv; tms470_flash_bank_t *tms470_info = bank->driver_priv;
@ -1161,7 +1161,7 @@ int tms470_erase_check(struct flash_bank_s *bank)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_protect_check(struct flash_bank_s *bank) static int tms470_protect_check(struct flash_bank_s *bank)
{ {
target_t *target = bank->target; target_t *target = bank->target;
tms470_flash_bank_t *tms470_info = bank->driver_priv; tms470_flash_bank_t *tms470_info = bank->driver_priv;
@ -1209,7 +1209,7 @@ int tms470_protect_check(struct flash_bank_s *bank)
/* ---------------------------------------------------------------------- */ /* ---------------------------------------------------------------------- */
int tms470_info(struct flash_bank_s *bank, char *buf, int buf_size) static int tms470_info(struct flash_bank_s *bank, char *buf, int buf_size)
{ {
int used = 0; int used = 0;
tms470_flash_bank_t *tms470_info = bank->driver_priv; tms470_flash_bank_t *tms470_info = bank->driver_priv;
@ -1243,7 +1243,7 @@ int tms470_info(struct flash_bank_s *bank, char *buf, int buf_size)
* [options...] * [options...]
*/ */
int tms470_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank) static int tms470_flash_bank_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc, struct flash_bank_s *bank)
{ {
bank->driver_priv = malloc(sizeof(tms470_flash_bank_t)); bank->driver_priv = malloc(sizeof(tms470_flash_bank_t));

View File

@ -455,7 +455,7 @@ int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args)
fields[field_count++].in_handler_priv = NULL; fields[field_count++].in_handler_priv = NULL;
} }
jtag_add_dr_scan(num_fields, fields, -1); jtag_add_dr_scan(num_fields, fields, TAP_INVALID);
retval = jtag_execute_queue(); retval = jtag_execute_queue();
if (retval != ERROR_OK) if (retval != ERROR_OK)
{ {

View File

@ -346,7 +346,7 @@ int amt_jtagaccel_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state); LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state);
#endif #endif
if (cmd->cmd.end_state->end_state != -1) if (cmd->cmd.end_state->end_state != TAP_INVALID)
amt_jtagaccel_end_state(cmd->cmd.end_state->end_state); amt_jtagaccel_end_state(cmd->cmd.end_state->end_state);
break; break;
case JTAG_RESET: case JTAG_RESET:
@ -363,7 +363,7 @@ int amt_jtagaccel_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state); LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state);
#endif #endif
if (cmd->cmd.runtest->end_state != -1) if (cmd->cmd.runtest->end_state != TAP_INVALID)
amt_jtagaccel_end_state(cmd->cmd.runtest->end_state); amt_jtagaccel_end_state(cmd->cmd.runtest->end_state);
amt_jtagaccel_runtest(cmd->cmd.runtest->num_cycles); amt_jtagaccel_runtest(cmd->cmd.runtest->num_cycles);
break; break;
@ -371,7 +371,7 @@ int amt_jtagaccel_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state); LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state);
#endif #endif
if (cmd->cmd.statemove->end_state != -1) if (cmd->cmd.statemove->end_state != TAP_INVALID)
amt_jtagaccel_end_state(cmd->cmd.statemove->end_state); amt_jtagaccel_end_state(cmd->cmd.statemove->end_state);
amt_jtagaccel_state_move(); amt_jtagaccel_state_move();
break; break;
@ -379,7 +379,7 @@ int amt_jtagaccel_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("scan end in %i", cmd->cmd.scan->end_state); LOG_DEBUG("scan end in %i", cmd->cmd.scan->end_state);
#endif #endif
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
amt_jtagaccel_end_state(cmd->cmd.scan->end_state); amt_jtagaccel_end_state(cmd->cmd.scan->end_state);
scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer); scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer);
type = jtag_scan_type(cmd->cmd.scan); type = jtag_scan_type(cmd->cmd.scan);

View File

@ -156,7 +156,7 @@ int armjtagew_execute_queue(void)
case JTAG_END_STATE: case JTAG_END_STATE:
DEBUG_JTAG_IO("end_state: %i", cmd->cmd.end_state->end_state); DEBUG_JTAG_IO("end_state: %i", cmd->cmd.end_state->end_state);
if (cmd->cmd.end_state->end_state != -1) if (cmd->cmd.end_state->end_state != TAP_INVALID)
{ {
armjtagew_end_state(cmd->cmd.end_state->end_state); armjtagew_end_state(cmd->cmd.end_state->end_state);
} }
@ -166,7 +166,7 @@ int armjtagew_execute_queue(void)
DEBUG_JTAG_IO( "runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, \ DEBUG_JTAG_IO( "runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, \
cmd->cmd.runtest->end_state); cmd->cmd.runtest->end_state);
if (cmd->cmd.runtest->end_state != -1) if (cmd->cmd.runtest->end_state != TAP_INVALID)
{ {
armjtagew_end_state(cmd->cmd.runtest->end_state); armjtagew_end_state(cmd->cmd.runtest->end_state);
} }
@ -176,7 +176,7 @@ int armjtagew_execute_queue(void)
case JTAG_STATEMOVE: case JTAG_STATEMOVE:
DEBUG_JTAG_IO("statemove end in %i", cmd->cmd.statemove->end_state); DEBUG_JTAG_IO("statemove end in %i", cmd->cmd.statemove->end_state);
if (cmd->cmd.statemove->end_state != -1) if (cmd->cmd.statemove->end_state != TAP_INVALID)
{ {
armjtagew_end_state(cmd->cmd.statemove->end_state); armjtagew_end_state(cmd->cmd.statemove->end_state);
} }
@ -194,7 +194,7 @@ int armjtagew_execute_queue(void)
case JTAG_SCAN: case JTAG_SCAN:
DEBUG_JTAG_IO("scan end in %i", cmd->cmd.scan->end_state); DEBUG_JTAG_IO("scan end in %i", cmd->cmd.scan->end_state);
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
{ {
armjtagew_end_state(cmd->cmd.scan->end_state); armjtagew_end_state(cmd->cmd.scan->end_state);
} }

View File

@ -278,7 +278,7 @@ int bitbang_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("end_state: %s", tap_state_name(cmd->cmd.end_state->end_state) ); LOG_DEBUG("end_state: %s", tap_state_name(cmd->cmd.end_state->end_state) );
#endif #endif
if (cmd->cmd.end_state->end_state != -1) if (cmd->cmd.end_state->end_state != TAP_INVALID)
bitbang_end_state(cmd->cmd.end_state->end_state); bitbang_end_state(cmd->cmd.end_state->end_state);
break; break;
case JTAG_RESET: case JTAG_RESET:
@ -295,7 +295,7 @@ int bitbang_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("runtest %i cycles, end in %s", cmd->cmd.runtest->num_cycles, tap_state_name(cmd->cmd.runtest->end_state) ); LOG_DEBUG("runtest %i cycles, end in %s", cmd->cmd.runtest->num_cycles, tap_state_name(cmd->cmd.runtest->end_state) );
#endif #endif
if (cmd->cmd.runtest->end_state != -1) if (cmd->cmd.runtest->end_state != TAP_INVALID)
bitbang_end_state(cmd->cmd.runtest->end_state); bitbang_end_state(cmd->cmd.runtest->end_state);
bitbang_runtest(cmd->cmd.runtest->num_cycles); bitbang_runtest(cmd->cmd.runtest->num_cycles);
break; break;
@ -311,7 +311,7 @@ int bitbang_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("statemove end in %s", tap_state_name(cmd->cmd.statemove->end_state)); LOG_DEBUG("statemove end in %s", tap_state_name(cmd->cmd.statemove->end_state));
#endif #endif
if (cmd->cmd.statemove->end_state != -1) if (cmd->cmd.statemove->end_state != TAP_INVALID)
bitbang_end_state(cmd->cmd.statemove->end_state); bitbang_end_state(cmd->cmd.statemove->end_state);
bitbang_state_move(); bitbang_state_move();
break; break;
@ -326,7 +326,7 @@ int bitbang_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("%s scan end in %s", (cmd->cmd.scan->ir_scan) ? "IR" : "DR", tap_state_name(cmd->cmd.scan->end_state) ); LOG_DEBUG("%s scan end in %s", (cmd->cmd.scan->ir_scan) ? "IR" : "DR", tap_state_name(cmd->cmd.scan->end_state) );
#endif #endif
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
bitbang_end_state(cmd->cmd.scan->end_state); bitbang_end_state(cmd->cmd.scan->end_state);
scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer); scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer);
type = jtag_scan_type(cmd->cmd.scan); type = jtag_scan_type(cmd->cmd.scan);

View File

@ -153,7 +153,7 @@ void bitq_io(int tms, int tdi, int tdo_req)
void bitq_end_state(tap_state_t state) void bitq_end_state(tap_state_t state)
{ {
if (state==-1) if (state==TAP_INVALID)
return; return;
if (!tap_is_state_stable(state)) if (!tap_is_state_stable(state))

View File

@ -1308,7 +1308,7 @@ int ft2232_execute_queue()
switch (cmd->type) switch (cmd->type)
{ {
case JTAG_END_STATE: case JTAG_END_STATE:
if (cmd->cmd.end_state->end_state != -1) if (cmd->cmd.end_state->end_state != TAP_INVALID)
ft2232_end_state(cmd->cmd.end_state->end_state); ft2232_end_state(cmd->cmd.end_state->end_state);
break; break;
@ -1341,9 +1341,9 @@ int ft2232_execute_queue()
if (tap_get_state() != TAP_IDLE) if (tap_get_state() != TAP_IDLE)
predicted_size += 3; predicted_size += 3;
predicted_size += 3 * CEIL(cmd->cmd.runtest->num_cycles, 7); predicted_size += 3 * CEIL(cmd->cmd.runtest->num_cycles, 7);
if ( (cmd->cmd.runtest->end_state != -1) && (cmd->cmd.runtest->end_state != TAP_IDLE) ) if ( (cmd->cmd.runtest->end_state != TAP_INVALID) && (cmd->cmd.runtest->end_state != TAP_IDLE) )
predicted_size += 3; predicted_size += 3;
if ( (cmd->cmd.runtest->end_state == -1) && (tap_get_end_state() != TAP_IDLE) ) if ( (cmd->cmd.runtest->end_state == TAP_INVALID) && (tap_get_end_state() != TAP_IDLE) )
predicted_size += 3; predicted_size += 3;
if (ft2232_buffer_size + predicted_size + 1 > FT2232_BUFFER_SIZE) if (ft2232_buffer_size + predicted_size + 1 > FT2232_BUFFER_SIZE)
{ {
@ -1379,7 +1379,7 @@ int ft2232_execute_queue()
/* LOG_DEBUG("added TMS scan (no read)"); */ /* LOG_DEBUG("added TMS scan (no read)"); */
} }
if (cmd->cmd.runtest->end_state != -1) if (cmd->cmd.runtest->end_state != TAP_INVALID)
ft2232_end_state(cmd->cmd.runtest->end_state); ft2232_end_state(cmd->cmd.runtest->end_state);
if ( tap_get_state() != tap_get_end_state() ) if ( tap_get_state() != tap_get_end_state() )
@ -1409,7 +1409,7 @@ int ft2232_execute_queue()
require_send = 0; require_send = 0;
first_unsent = cmd; first_unsent = cmd;
} }
if (cmd->cmd.statemove->end_state != -1) if (cmd->cmd.statemove->end_state != TAP_INVALID)
ft2232_end_state(cmd->cmd.statemove->end_state); ft2232_end_state(cmd->cmd.statemove->end_state);
/* command "Clock Data to TMS/CS Pin (no Read)" */ /* command "Clock Data to TMS/CS Pin (no Read)" */
@ -1458,7 +1458,7 @@ int ft2232_execute_queue()
retval = ERROR_JTAG_QUEUE_FAILED; retval = ERROR_JTAG_QUEUE_FAILED;
/* current command */ /* current command */
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
ft2232_end_state(cmd->cmd.scan->end_state); ft2232_end_state(cmd->cmd.scan->end_state);
ft2232_large_scan(cmd->cmd.scan, type, buffer, scan_size); ft2232_large_scan(cmd->cmd.scan, type, buffer, scan_size);
require_send = 0; require_send = 0;
@ -1479,7 +1479,7 @@ int ft2232_execute_queue()
} }
ft2232_expect_read += ft2232_predict_scan_in(scan_size, type); ft2232_expect_read += ft2232_predict_scan_in(scan_size, type);
/* LOG_DEBUG("new read size: %i", ft2232_expect_read); */ /* LOG_DEBUG("new read size: %i", ft2232_expect_read); */
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
ft2232_end_state(cmd->cmd.scan->end_state); ft2232_end_state(cmd->cmd.scan->end_state);
ft2232_add_scan(cmd->cmd.scan->ir_scan, type, buffer, scan_size); ft2232_add_scan(cmd->cmd.scan->ir_scan, type, buffer, scan_size);
require_send = 1; require_send = 1;

View File

@ -369,7 +369,7 @@ int gw16012_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state); LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state);
#endif #endif
if (cmd->cmd.end_state->end_state != -1) if (cmd->cmd.end_state->end_state != TAP_INVALID)
gw16012_end_state(cmd->cmd.end_state->end_state); gw16012_end_state(cmd->cmd.end_state->end_state);
break; break;
case JTAG_RESET: case JTAG_RESET:
@ -386,7 +386,7 @@ int gw16012_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state); LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state);
#endif #endif
if (cmd->cmd.runtest->end_state != -1) if (cmd->cmd.runtest->end_state != TAP_INVALID)
gw16012_end_state(cmd->cmd.runtest->end_state); gw16012_end_state(cmd->cmd.runtest->end_state);
gw16012_runtest(cmd->cmd.runtest->num_cycles); gw16012_runtest(cmd->cmd.runtest->num_cycles);
break; break;
@ -394,7 +394,7 @@ int gw16012_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state); LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state);
#endif #endif
if (cmd->cmd.statemove->end_state != -1) if (cmd->cmd.statemove->end_state != TAP_INVALID)
gw16012_end_state(cmd->cmd.statemove->end_state); gw16012_end_state(cmd->cmd.statemove->end_state);
gw16012_state_move(); gw16012_state_move();
break; break;
@ -405,7 +405,7 @@ int gw16012_execute_queue(void)
gw16012_path_move(cmd->cmd.pathmove); gw16012_path_move(cmd->cmd.pathmove);
break; break;
case JTAG_SCAN: case JTAG_SCAN:
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
gw16012_end_state(cmd->cmd.scan->end_state); gw16012_end_state(cmd->cmd.scan->end_state);
scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer); scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer);
type = jtag_scan_type(cmd->cmd.scan); type = jtag_scan_type(cmd->cmd.scan);

View File

@ -154,7 +154,7 @@ int jlink_execute_queue(void)
case JTAG_END_STATE: case JTAG_END_STATE:
DEBUG_JTAG_IO("end_state: %i", cmd->cmd.end_state->end_state); DEBUG_JTAG_IO("end_state: %i", cmd->cmd.end_state->end_state);
if (cmd->cmd.end_state->end_state != -1) if (cmd->cmd.end_state->end_state != TAP_INVALID)
{ {
jlink_end_state(cmd->cmd.end_state->end_state); jlink_end_state(cmd->cmd.end_state->end_state);
} }
@ -164,7 +164,7 @@ int jlink_execute_queue(void)
DEBUG_JTAG_IO( "runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, \ DEBUG_JTAG_IO( "runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, \
cmd->cmd.runtest->end_state); cmd->cmd.runtest->end_state);
if (cmd->cmd.runtest->end_state != -1) if (cmd->cmd.runtest->end_state != TAP_INVALID)
{ {
jlink_end_state(cmd->cmd.runtest->end_state); jlink_end_state(cmd->cmd.runtest->end_state);
} }
@ -174,7 +174,7 @@ int jlink_execute_queue(void)
case JTAG_STATEMOVE: case JTAG_STATEMOVE:
DEBUG_JTAG_IO("statemove end in %i", cmd->cmd.statemove->end_state); DEBUG_JTAG_IO("statemove end in %i", cmd->cmd.statemove->end_state);
if (cmd->cmd.statemove->end_state != -1) if (cmd->cmd.statemove->end_state != TAP_INVALID)
{ {
jlink_end_state(cmd->cmd.statemove->end_state); jlink_end_state(cmd->cmd.statemove->end_state);
} }
@ -192,7 +192,7 @@ int jlink_execute_queue(void)
case JTAG_SCAN: case JTAG_SCAN:
DEBUG_JTAG_IO("scan end in %i", cmd->cmd.scan->end_state); DEBUG_JTAG_IO("scan end in %i", cmd->cmd.scan->end_state);
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
{ {
jlink_end_state(cmd->cmd.scan->end_state); jlink_end_state(cmd->cmd.scan->end_state);
} }
@ -525,7 +525,7 @@ int jlink_get_version_info(void)
if (result == len) if (result == len)
{ {
usb_in_buffer[result] = 0; usb_in_buffer[result] = 0;
LOG_INFO(usb_in_buffer); LOG_INFO((char *)usb_in_buffer);
return ERROR_OK; return ERROR_OK;
} }
} }
@ -858,8 +858,8 @@ int jlink_usb_write(jlink_jtag_t *jlink_jtag, int out_length)
return -1; return -1;
} }
result = usb_bulk_write(jlink_jtag->usb_handle, JLINK_WRITE_ENDPOINT, \ result = usb_bulk_write(jlink_jtag->usb_handle, JLINK_WRITE_ENDPOINT,
usb_out_buffer, out_length, JLINK_USB_TIMEOUT); (char *)usb_out_buffer, out_length, JLINK_USB_TIMEOUT);
DEBUG_JTAG_IO("jlink_usb_write, out_length = %d, result = %d", out_length, result); DEBUG_JTAG_IO("jlink_usb_write, out_length = %d, result = %d", out_length, result);
@ -872,8 +872,8 @@ int jlink_usb_write(jlink_jtag_t *jlink_jtag, int out_length)
/* Read data from USB into in_buffer. */ /* Read data from USB into in_buffer. */
int jlink_usb_read(jlink_jtag_t *jlink_jtag) int jlink_usb_read(jlink_jtag_t *jlink_jtag)
{ {
int result = usb_bulk_read(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT, \ int result = usb_bulk_read(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT,
usb_in_buffer, JLINK_IN_BUFFER_SIZE, JLINK_USB_TIMEOUT); (char *)usb_in_buffer, JLINK_IN_BUFFER_SIZE, JLINK_USB_TIMEOUT);
DEBUG_JTAG_IO("jlink_usb_read, result = %d", result); DEBUG_JTAG_IO("jlink_usb_read, result = %d", result);
@ -886,8 +886,9 @@ int jlink_usb_read(jlink_jtag_t *jlink_jtag)
/* Read the result from the previous EMU cmd into result_buffer. */ /* Read the result from the previous EMU cmd into result_buffer. */
int jlink_usb_read_emu_result(jlink_jtag_t *jlink_jtag) int jlink_usb_read_emu_result(jlink_jtag_t *jlink_jtag)
{ {
int result = usb_bulk_read(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT, \ int result = usb_bulk_read(jlink_jtag->usb_handle, JLINK_READ_ENDPOINT,
usb_emu_result_buffer, JLINK_EMU_RESULT_BUFFER_SIZE, JLINK_USB_TIMEOUT); (char *)usb_emu_result_buffer, JLINK_EMU_RESULT_BUFFER_SIZE,
JLINK_USB_TIMEOUT);
DEBUG_JTAG_IO("jlink_usb_read_result, result = %d", result); DEBUG_JTAG_IO("jlink_usb_read_result, result = %d", result);

View File

@ -510,7 +510,7 @@ static void jtag_prelude(tap_state_t state)
{ {
jtag_prelude1(); jtag_prelude1();
if (state != -1) if (state != TAP_INVALID)
jtag_add_end_state(state); jtag_add_end_state(state);
cmd_queue_cur_state = cmd_queue_end_state; cmd_queue_cur_state = cmd_queue_end_state;
@ -2717,7 +2717,7 @@ int handle_runtest_command(struct command_context_s *cmd_ctx, char *cmd, char **
return ERROR_COMMAND_SYNTAX_ERROR; return ERROR_COMMAND_SYNTAX_ERROR;
} }
jtag_add_runtest(strtol(args[0], NULL, 0), -1); jtag_add_runtest(strtol(args[0], NULL, 0), TAP_INVALID);
jtag_execute_queue(); jtag_execute_queue();
return ERROR_OK; return ERROR_OK;
@ -2740,7 +2740,7 @@ int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, char **a
/* "statename" */ /* "statename" */
/* at the end of the arguments. */ /* at the end of the arguments. */
/* assume none. */ /* assume none. */
endstate = -1; endstate = TAP_INVALID;
if( argc >= 4 ){ if( argc >= 4 ){
/* have at least one pair of numbers. */ /* have at least one pair of numbers. */
/* is last pair the magic text? */ /* is last pair the magic text? */
@ -2748,13 +2748,13 @@ int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, char **a
const char *cpA; const char *cpA;
const char *cpS; const char *cpS;
cpA = args[ argc-1 ]; cpA = args[ argc-1 ];
for( endstate = 0 ; endstate < 16 ; endstate++ ){ for( endstate = 0 ; endstate < TAP_NUM_STATES ; endstate++ ){
cpS = tap_state_name( endstate ); cpS = tap_state_name( endstate );
if( 0 == strcmp( cpA, cpS ) ){ if( 0 == strcmp( cpA, cpS ) ){
break; break;
} }
} }
if( endstate >= 16 ){ if( endstate >= TAP_NUM_STATES ){
return ERROR_COMMAND_SYNTAX_ERROR; return ERROR_COMMAND_SYNTAX_ERROR;
} else { } else {
/* found - remove the last 2 args */ /* found - remove the last 2 args */
@ -2784,11 +2784,11 @@ int handle_irscan_command(struct command_context_s *cmd_ctx, char *cmd, char **a
fields[i].in_handler_priv = NULL; fields[i].in_handler_priv = NULL;
} }
jtag_add_ir_scan(argc / 2, fields, -1); jtag_add_ir_scan(argc / 2, fields, TAP_INVALID);
/* did we have an endstate? */ /* did we have an endstate? */
if( endstate >= 0 ){ if (endstate != TAP_INVALID)
jtag_add_end_state(endstate); jtag_add_end_state(endstate);
}
jtag_execute_queue(); jtag_execute_queue();
for (i = 0; i < argc / 2; i++) for (i = 0; i < argc / 2; i++)
@ -2825,7 +2825,7 @@ int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args)
} }
/* assume no endstate */ /* assume no endstate */
endstate = -1; endstate = TAP_INVALID;
/* validate arguments as numbers */ /* validate arguments as numbers */
e = JIM_OK; e = JIM_OK;
for (i = 2; i < argc; i+=2) for (i = 2; i < argc; i+=2)
@ -2901,11 +2901,11 @@ int Jim_Command_drscan(Jim_Interp *interp, int argc, Jim_Obj *const *args)
fields[field_count++].in_handler_priv = NULL; fields[field_count++].in_handler_priv = NULL;
} }
jtag_add_dr_scan(num_fields, fields, -1); jtag_add_dr_scan(num_fields, fields, TAP_INVALID);
/* did we get an end state? */ /* did we get an end state? */
if( endstate >= 0 ){ if (endstate != TAP_INVALID)
jtag_add_end_state( (tap_state_t)endstate ); jtag_add_end_state(endstate);
}
retval = jtag_execute_queue(); retval = jtag_execute_queue();
if (retval != ERROR_OK) if (retval != ERROR_OK)
{ {
@ -3089,7 +3089,7 @@ int tap_get_tms_path( tap_state_t from, tap_state_t to )
* *
* DRSHIFT->DRSHIFT and IRSHIFT->IRSHIFT have to be caught in interface specific code * DRSHIFT->DRSHIFT and IRSHIFT->IRSHIFT have to be caught in interface specific code
*/ */
const static u8 tms_seqs[6][6] = static const u8 tms_seqs[6][6] =
{ {
/* value clocked to TMS to move from one of six stable states to another */ /* value clocked to TMS to move from one of six stable states to another */
@ -3273,14 +3273,14 @@ int tap_state_by_name( const char *name )
{ {
int x; int x;
for( x = 0 ; x < 16 ; x++ ){ for( x = 0 ; x < TAP_NUM_STATES ; x++ ){
/* be nice to the human */ /* be nice to the human */
if( 0 == strcasecmp( name, tap_state_name(x) ) ){ if( 0 == strcasecmp( name, tap_state_name(x) ) ){
return x; return x;
} }
} }
/* not found */ /* not found */
return -1; return TAP_INVALID;
} }
/*-----</Cable Helper API>--------------------------------------*/ /*-----</Cable Helper API>--------------------------------------*/

View File

@ -46,7 +46,9 @@ enum tap_state {
TAP_DRSELECT = 1, TAP_DRCAPTURE = 2, TAP_DRSHIFT = 3, TAP_DREXIT1 = 4, TAP_DRSELECT = 1, TAP_DRCAPTURE = 2, TAP_DRSHIFT = 3, TAP_DREXIT1 = 4,
TAP_DRPAUSE = 5, TAP_DREXIT2 = 6, TAP_DRUPDATE = 7, TAP_DRPAUSE = 5, TAP_DREXIT2 = 6, TAP_DRUPDATE = 7,
TAP_IRSELECT = 9, TAP_IRCAPTURE = 10, TAP_IRSHIFT = 11, TAP_IREXIT1 = 12, TAP_IRSELECT = 9, TAP_IRCAPTURE = 10, TAP_IRSHIFT = 11, TAP_IREXIT1 = 12,
TAP_IRPAUSE = 13, TAP_IREXIT2 = 14, TAP_IRUPDATE = 15 TAP_IRPAUSE = 13, TAP_IREXIT2 = 14, TAP_IRUPDATE = 15,
TAP_NUM_STATES = 16, TAP_INVALID = -1,
}; };
typedef enum tap_state tap_state_t; typedef enum tap_state tap_state_t;
@ -643,7 +645,7 @@ void jtag_tap_handle_event(jtag_tap_t* tap, enum jtag_tap_event e);
/* jtag_add_dr_out() is a faster version of jtag_add_dr_scan() /* jtag_add_dr_out() is a faster version of jtag_add_dr_scan()
* *
* Current or end_state can not be TAP_RESET. end_state can be -1 * Current or end_state can not be TAP_RESET. end_state can be TAP_INVALID
* *
* num_bits[i] is the number of bits to clock out from value[i] LSB first. * num_bits[i] is the number of bits to clock out from value[i] LSB first.
* *
@ -666,7 +668,7 @@ extern void interface_jtag_add_dr_out(jtag_tap_t* tap, int num_fields, const int
static __inline__ void jtag_add_dr_out(jtag_tap_t* tap, int num_fields, const int* num_bits, const u32* value, static __inline__ void jtag_add_dr_out(jtag_tap_t* tap, int num_fields, const int* num_bits, const u32* value,
tap_state_t end_state) tap_state_t end_state)
{ {
if (end_state != -1) if (end_state != TAP_INVALID)
cmd_queue_end_state = end_state; cmd_queue_end_state = end_state;
cmd_queue_cur_state = cmd_queue_end_state; cmd_queue_cur_state = cmd_queue_end_state;
interface_jtag_add_dr_out(tap, num_fields, num_bits, value, cmd_queue_end_state); interface_jtag_add_dr_out(tap, num_fields, num_bits, value, cmd_queue_end_state);

View File

@ -142,7 +142,7 @@ int usbprog_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state); LOG_DEBUG("end_state: %i", cmd->cmd.end_state->end_state);
#endif #endif
if (cmd->cmd.end_state->end_state != -1) if (cmd->cmd.end_state->end_state != TAP_INVALID)
usbprog_end_state(cmd->cmd.end_state->end_state); usbprog_end_state(cmd->cmd.end_state->end_state);
break; break;
case JTAG_RESET: case JTAG_RESET:
@ -159,7 +159,7 @@ int usbprog_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state); LOG_DEBUG("runtest %i cycles, end in %i", cmd->cmd.runtest->num_cycles, cmd->cmd.runtest->end_state);
#endif #endif
if (cmd->cmd.runtest->end_state != -1) if (cmd->cmd.runtest->end_state != TAP_INVALID)
usbprog_end_state(cmd->cmd.runtest->end_state); usbprog_end_state(cmd->cmd.runtest->end_state);
usbprog_runtest(cmd->cmd.runtest->num_cycles); usbprog_runtest(cmd->cmd.runtest->num_cycles);
break; break;
@ -167,7 +167,7 @@ int usbprog_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state); LOG_DEBUG("statemove end in %i", cmd->cmd.statemove->end_state);
#endif #endif
if (cmd->cmd.statemove->end_state != -1) if (cmd->cmd.statemove->end_state != TAP_INVALID)
usbprog_end_state(cmd->cmd.statemove->end_state); usbprog_end_state(cmd->cmd.statemove->end_state);
usbprog_state_move(); usbprog_state_move();
break; break;
@ -182,7 +182,7 @@ int usbprog_execute_queue(void)
#ifdef _DEBUG_JTAG_IO_ #ifdef _DEBUG_JTAG_IO_
LOG_DEBUG("scan end in %i", cmd->cmd.scan->end_state); LOG_DEBUG("scan end in %i", cmd->cmd.scan->end_state);
#endif #endif
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
usbprog_end_state(cmd->cmd.scan->end_state); usbprog_end_state(cmd->cmd.scan->end_state);
scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer); scan_size = jtag_build_buffer(cmd->cmd.scan, &buffer);
type = jtag_scan_type(cmd->cmd.scan); type = jtag_scan_type(cmd->cmd.scan);

View File

@ -269,7 +269,7 @@ int vsllink_execute_queue(void)
case JTAG_END_STATE: case JTAG_END_STATE:
DEBUG_JTAG_IO("end_state: %s", tap_state_name(cmd->cmd.end_state->end_state)); DEBUG_JTAG_IO("end_state: %s", tap_state_name(cmd->cmd.end_state->end_state));
if (cmd->cmd.end_state->end_state != -1) if (cmd->cmd.end_state->end_state != TAP_INVALID)
{ {
vsllink_end_state(cmd->cmd.end_state->end_state); vsllink_end_state(cmd->cmd.end_state->end_state);
} }
@ -279,7 +279,7 @@ int vsllink_execute_queue(void)
DEBUG_JTAG_IO( "runtest %i cycles, end in %s", cmd->cmd.runtest->num_cycles, \ DEBUG_JTAG_IO( "runtest %i cycles, end in %s", cmd->cmd.runtest->num_cycles, \
tap_state_name(cmd->cmd.runtest->end_state)); tap_state_name(cmd->cmd.runtest->end_state));
if (cmd->cmd.runtest->end_state != -1) if (cmd->cmd.runtest->end_state != TAP_INVALID)
{ {
vsllink_end_state(cmd->cmd.runtest->end_state); vsllink_end_state(cmd->cmd.runtest->end_state);
} }
@ -289,7 +289,7 @@ int vsllink_execute_queue(void)
case JTAG_STATEMOVE: case JTAG_STATEMOVE:
DEBUG_JTAG_IO("statemove end in %s", tap_state_name(cmd->cmd.statemove->end_state)); DEBUG_JTAG_IO("statemove end in %s", tap_state_name(cmd->cmd.statemove->end_state));
if (cmd->cmd.statemove->end_state != -1) if (cmd->cmd.statemove->end_state != TAP_INVALID)
{ {
vsllink_end_state(cmd->cmd.statemove->end_state); vsllink_end_state(cmd->cmd.statemove->end_state);
} }
@ -305,7 +305,7 @@ int vsllink_execute_queue(void)
break; break;
case JTAG_SCAN: case JTAG_SCAN:
if (cmd->cmd.scan->end_state != -1) if (cmd->cmd.scan->end_state != TAP_INVALID)
{ {
vsllink_end_state(cmd->cmd.scan->end_state); vsllink_end_state(cmd->cmd.scan->end_state);
} }

View File

@ -383,9 +383,9 @@ static void arm11_on_enter_debug_state(arm11_common_t * arm11)
if (R(DSCR) & ARM11_DSCR_WDTR_FULL) if (R(DSCR) & ARM11_DSCR_WDTR_FULL)
{ {
arm11_add_debug_SCAN_N(arm11, 0x05, -1); arm11_add_debug_SCAN_N(arm11, 0x05, TAP_INVALID);
arm11_add_IR(arm11, ARM11_INTEST, -1); arm11_add_IR(arm11, ARM11_INTEST, TAP_INVALID);
scan_field_t chain5_fields[3]; scan_field_t chain5_fields[3];
@ -614,9 +614,9 @@ void arm11_leave_debug_state(arm11_common_t * arm11)
if (R(DSCR) & ARM11_DSCR_RDTR_FULL || arm11->reg_list[ARM11_RC_RDTR].dirty) if (R(DSCR) & ARM11_DSCR_RDTR_FULL || arm11->reg_list[ARM11_RC_RDTR].dirty)
{ {
arm11_add_debug_SCAN_N(arm11, 0x05, -1); arm11_add_debug_SCAN_N(arm11, 0x05, TAP_INVALID);
arm11_add_IR(arm11, ARM11_EXTEST, -1); arm11_add_IR(arm11, ARM11_EXTEST, TAP_INVALID);
scan_field_t chain5_fields[3]; scan_field_t chain5_fields[3];
@ -1565,7 +1565,7 @@ int arm11_examine(struct target_s *target)
/* check IDCODE */ /* check IDCODE */
arm11_add_IR(arm11, ARM11_IDCODE, -1); arm11_add_IR(arm11, ARM11_IDCODE, TAP_INVALID);
scan_field_t idcode_field; scan_field_t idcode_field;
@ -1575,9 +1575,9 @@ int arm11_examine(struct target_s *target)
/* check DIDR */ /* check DIDR */
arm11_add_debug_SCAN_N(arm11, 0x00, -1); arm11_add_debug_SCAN_N(arm11, 0x00, TAP_INVALID);
arm11_add_IR(arm11, ARM11_INTEST, -1); arm11_add_IR(arm11, ARM11_INTEST, TAP_INVALID);
scan_field_t chain0_fields[2]; scan_field_t chain0_fields[2];

View File

@ -95,7 +95,7 @@ void arm11_setup_field(arm11_common_t * arm11, int num_bits, void * out_data, vo
* *
* \param arm11 Target state variable. * \param arm11 Target state variable.
* \param instr An ARM11 DBGTAP instruction. Use enum #arm11_instructions. * \param instr An ARM11 DBGTAP instruction. Use enum #arm11_instructions.
* \param state Pass the final TAP state or -1 for the default value (Pause-IR). * \param state Pass the final TAP state or TAP_INVALID for the default value (Pause-IR).
* *
* \remarks This adds to the JTAG command queue but does \em not execute it. * \remarks This adds to the JTAG command queue but does \em not execute it.
*/ */
@ -120,7 +120,7 @@ void arm11_add_IR(arm11_common_t * arm11, u8 instr, tap_state_t state)
arm11_setup_field(arm11, 5, &instr, NULL, &field); arm11_setup_field(arm11, 5, &instr, NULL, &field);
arm11_add_ir_scan_vc(1, &field, state == -1 ? TAP_IRPAUSE : state); arm11_add_ir_scan_vc(1, &field, state == TAP_INVALID ? TAP_IRPAUSE : state);
} }
/** Verify shifted out data from Scan Chain Register (SCREG) /** Verify shifted out data from Scan Chain Register (SCREG)
@ -152,7 +152,7 @@ static int arm11_in_handler_SCAN_N(u8 *in_value, void *priv, struct scan_field_s
* *
* \param arm11 Target state variable. * \param arm11 Target state variable.
* \param chain Scan chain that will be selected. * \param chain Scan chain that will be selected.
* \param state Pass the final TAP state or -1 for the default * \param state Pass the final TAP state or TAP_INVALID for the default
* value (Pause-DR). * value (Pause-DR).
* *
* The chain takes effect when Update-DR is passed (usually when subsequently * The chain takes effect when Update-DR is passed (usually when subsequently
@ -171,7 +171,7 @@ void arm11_add_debug_SCAN_N(arm11_common_t * arm11, u8 chain, tap_state_t state)
{ {
JTAG_DEBUG("SCREG <= 0x%02x", chain); JTAG_DEBUG("SCREG <= 0x%02x", chain);
arm11_add_IR(arm11, ARM11_SCAN_N, -1); arm11_add_IR(arm11, ARM11_SCAN_N, TAP_INVALID);
scan_field_t field; scan_field_t field;
@ -179,7 +179,7 @@ void arm11_add_debug_SCAN_N(arm11_common_t * arm11, u8 chain, tap_state_t state)
field.in_handler = arm11_in_handler_SCAN_N; field.in_handler = arm11_in_handler_SCAN_N;
arm11_add_dr_scan_vc(1, &field, state == -1 ? TAP_DRPAUSE : state); arm11_add_dr_scan_vc(1, &field, state == TAP_INVALID ? TAP_DRPAUSE : state);
} }
/** Write an instruction into the ITR register /** Write an instruction into the ITR register
@ -188,7 +188,7 @@ void arm11_add_debug_SCAN_N(arm11_common_t * arm11, u8 chain, tap_state_t state)
* \param inst An ARM11 processor instruction/opcode. * \param inst An ARM11 processor instruction/opcode.
* \param flag Optional parameter to retrieve the InstCompl flag * \param flag Optional parameter to retrieve the InstCompl flag
* (this will be written when the JTAG chain is executed). * (this will be written when the JTAG chain is executed).
* \param state Pass the final TAP state or -1 for the default * \param state Pass the final TAP state or TAP_INVALID for the default
* value (Run-Test/Idle). * value (Run-Test/Idle).
* *
* \remarks By default this ends with Run-Test/Idle state * \remarks By default this ends with Run-Test/Idle state
@ -208,7 +208,7 @@ void arm11_add_debug_INST(arm11_common_t * arm11, u32 inst, u8 * flag, tap_state
arm11_setup_field(arm11, 32, &inst, NULL, itr + 0); arm11_setup_field(arm11, 32, &inst, NULL, itr + 0);
arm11_setup_field(arm11, 1, NULL, flag, itr + 1); arm11_setup_field(arm11, 1, NULL, flag, itr + 1);
arm11_add_dr_scan_vc(asizeof(itr), itr, state == -1 ? TAP_IDLE : state); arm11_add_dr_scan_vc(asizeof(itr), itr, state == TAP_INVALID ? TAP_IDLE : state);
} }
/** Read the Debug Status and Control Register (DSCR) /** Read the Debug Status and Control Register (DSCR)
@ -222,9 +222,9 @@ void arm11_add_debug_INST(arm11_common_t * arm11, u32 inst, u8 * flag, tap_state
*/ */
u32 arm11_read_DSCR(arm11_common_t * arm11) u32 arm11_read_DSCR(arm11_common_t * arm11)
{ {
arm11_add_debug_SCAN_N(arm11, 0x01, -1); arm11_add_debug_SCAN_N(arm11, 0x01, TAP_INVALID);
arm11_add_IR(arm11, ARM11_INTEST, -1); arm11_add_IR(arm11, ARM11_INTEST, TAP_INVALID);
u32 dscr; u32 dscr;
scan_field_t chain1_field; scan_field_t chain1_field;
@ -254,9 +254,9 @@ u32 arm11_read_DSCR(arm11_common_t * arm11)
*/ */
void arm11_write_DSCR(arm11_common_t * arm11, u32 dscr) void arm11_write_DSCR(arm11_common_t * arm11, u32 dscr)
{ {
arm11_add_debug_SCAN_N(arm11, 0x01, -1); arm11_add_debug_SCAN_N(arm11, 0x01, TAP_INVALID);
arm11_add_IR(arm11, ARM11_EXTEST, -1); arm11_add_IR(arm11, ARM11_EXTEST, TAP_INVALID);
scan_field_t chain1_field; scan_field_t chain1_field;
@ -331,7 +331,7 @@ enum target_debug_reason arm11_get_DSCR_debug_reason(u32 dscr)
*/ */
void arm11_run_instr_data_prepare(arm11_common_t * arm11) void arm11_run_instr_data_prepare(arm11_common_t * arm11)
{ {
arm11_add_debug_SCAN_N(arm11, 0x05, -1); arm11_add_debug_SCAN_N(arm11, 0x05, TAP_INVALID);
} }
/** Cleanup after ITR/DTR operations /** Cleanup after ITR/DTR operations
@ -350,7 +350,7 @@ void arm11_run_instr_data_prepare(arm11_common_t * arm11)
*/ */
void arm11_run_instr_data_finish(arm11_common_t * arm11) void arm11_run_instr_data_finish(arm11_common_t * arm11)
{ {
arm11_add_debug_SCAN_N(arm11, 0x00, -1); arm11_add_debug_SCAN_N(arm11, 0x00, TAP_INVALID);
} }
@ -365,7 +365,7 @@ void arm11_run_instr_data_finish(arm11_common_t * arm11)
*/ */
void arm11_run_instr_no_data(arm11_common_t * arm11, u32 * opcode, size_t count) void arm11_run_instr_no_data(arm11_common_t * arm11, u32 * opcode, size_t count)
{ {
arm11_add_IR(arm11, ARM11_ITRSEL, -1); arm11_add_IR(arm11, ARM11_ITRSEL, TAP_INVALID);
while (count--) while (count--)
{ {
@ -414,11 +414,11 @@ void arm11_run_instr_no_data1(arm11_common_t * arm11, u32 opcode)
*/ */
void arm11_run_instr_data_to_core(arm11_common_t * arm11, u32 opcode, u32 * data, size_t count) void arm11_run_instr_data_to_core(arm11_common_t * arm11, u32 opcode, u32 * data, size_t count)
{ {
arm11_add_IR(arm11, ARM11_ITRSEL, -1); arm11_add_IR(arm11, ARM11_ITRSEL, TAP_INVALID);
arm11_add_debug_INST(arm11, opcode, NULL, TAP_DRPAUSE); arm11_add_debug_INST(arm11, opcode, NULL, TAP_DRPAUSE);
arm11_add_IR(arm11, ARM11_EXTEST, -1); arm11_add_IR(arm11, ARM11_EXTEST, TAP_INVALID);
scan_field_t chain5_fields[3]; scan_field_t chain5_fields[3];
@ -446,7 +446,7 @@ void arm11_run_instr_data_to_core(arm11_common_t * arm11, u32 opcode, u32 * data
data++; data++;
} }
arm11_add_IR(arm11, ARM11_INTEST, -1); arm11_add_IR(arm11, ARM11_INTEST, TAP_INVALID);
do do
{ {
@ -495,11 +495,11 @@ tap_state_t arm11_MOVE_DRPAUSE_IDLE_DRPAUSE_with_delay[] =
*/ */
void arm11_run_instr_data_to_core_noack(arm11_common_t * arm11, u32 opcode, u32 * data, size_t count) void arm11_run_instr_data_to_core_noack(arm11_common_t * arm11, u32 opcode, u32 * data, size_t count)
{ {
arm11_add_IR(arm11, ARM11_ITRSEL, -1); arm11_add_IR(arm11, ARM11_ITRSEL, TAP_INVALID);
arm11_add_debug_INST(arm11, opcode, NULL, TAP_DRPAUSE); arm11_add_debug_INST(arm11, opcode, NULL, TAP_DRPAUSE);
arm11_add_IR(arm11, ARM11_EXTEST, -1); arm11_add_IR(arm11, ARM11_EXTEST, TAP_INVALID);
scan_field_t chain5_fields[3]; scan_field_t chain5_fields[3];
@ -527,7 +527,7 @@ void arm11_run_instr_data_to_core_noack(arm11_common_t * arm11, u32 opcode, u32
} }
} }
arm11_add_IR(arm11, ARM11_INTEST, -1); arm11_add_IR(arm11, ARM11_INTEST, TAP_INVALID);
chain5_fields[0].out_value = 0; chain5_fields[0].out_value = 0;
chain5_fields[1].in_value = ReadyPos++; chain5_fields[1].in_value = ReadyPos++;
@ -584,11 +584,11 @@ void arm11_run_instr_data_to_core1(arm11_common_t * arm11, u32 opcode, u32 data)
*/ */
void arm11_run_instr_data_from_core(arm11_common_t * arm11, u32 opcode, u32 * data, size_t count) void arm11_run_instr_data_from_core(arm11_common_t * arm11, u32 opcode, u32 * data, size_t count)
{ {
arm11_add_IR(arm11, ARM11_ITRSEL, -1); arm11_add_IR(arm11, ARM11_ITRSEL, TAP_INVALID);
arm11_add_debug_INST(arm11, opcode, NULL, TAP_IDLE); arm11_add_debug_INST(arm11, opcode, NULL, TAP_IDLE);
arm11_add_IR(arm11, ARM11_INTEST, -1); arm11_add_IR(arm11, ARM11_INTEST, TAP_INVALID);
scan_field_t chain5_fields[3]; scan_field_t chain5_fields[3];
@ -666,9 +666,9 @@ void arm11_run_instr_data_to_core_via_r0(arm11_common_t * arm11, u32 opcode, u32
*/ */
void arm11_sc7_run(arm11_common_t * arm11, arm11_sc7_action_t * actions, size_t count) void arm11_sc7_run(arm11_common_t * arm11, arm11_sc7_action_t * actions, size_t count)
{ {
arm11_add_debug_SCAN_N(arm11, 0x07, -1); arm11_add_debug_SCAN_N(arm11, 0x07, TAP_INVALID);
arm11_add_IR(arm11, ARM11_EXTEST, -1); arm11_add_IR(arm11, ARM11_EXTEST, TAP_INVALID);
scan_field_t chain7_fields[3]; scan_field_t chain7_fields[3];

View File

@ -136,10 +136,10 @@ int arm720t_scan_cp15(target_t *target, u32 out, u32 *in, int instruction, int c
fields[1].in_check_value = NULL; fields[1].in_check_value = NULL;
fields[1].in_check_mask = NULL; fields[1].in_check_mask = NULL;
jtag_add_dr_scan(2, fields, -1); jtag_add_dr_scan(2, fields, TAP_INVALID);
if (clock) if (clock)
jtag_add_runtest(0, -1); jtag_add_runtest(0, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
if((retval = jtag_execute_queue()) != ERROR_OK) if((retval = jtag_execute_queue()) != ERROR_OK)

View File

@ -169,9 +169,9 @@ static __inline int arm7tdmi_clock_out_inner(arm_jtag_t *jtag_info, u32 out, int
2, 2,
arm7tdmi_num_bits, arm7tdmi_num_bits,
values, values,
-1); TAP_INVALID);
jtag_add_runtest(0, -1); jtag_add_runtest(0, TAP_INVALID);
return ERROR_OK; return ERROR_OK;
} }
@ -219,9 +219,9 @@ int arm7tdmi_clock_data_in(arm_jtag_t *jtag_info, u32 *in)
fields[1].in_check_value = NULL; fields[1].in_check_value = NULL;
fields[1].in_check_mask = NULL; fields[1].in_check_mask = NULL;
jtag_add_dr_scan(2, fields, -1); jtag_add_dr_scan(2, fields, TAP_INVALID);
jtag_add_runtest(0, -1); jtag_add_runtest(0, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
{ {
@ -291,9 +291,9 @@ int arm7tdmi_clock_data_in_endianness(arm_jtag_t *jtag_info, void *in, int size,
fields[1].in_check_value = NULL; fields[1].in_check_value = NULL;
fields[1].in_check_mask = NULL; fields[1].in_check_mask = NULL;
jtag_add_dr_scan(2, fields, -1); jtag_add_dr_scan(2, fields, TAP_INVALID);
jtag_add_runtest(0, -1); jtag_add_runtest(0, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
{ {

View File

@ -150,12 +150,12 @@ int arm920t_read_cp15_physical(target_t *target, int reg_addr, u32 *value)
fields[3].in_handler = NULL; fields[3].in_handler = NULL;
fields[3].in_handler_priv = NULL; fields[3].in_handler_priv = NULL;
jtag_add_dr_scan(4, fields, -1); jtag_add_dr_scan(4, fields, TAP_INVALID);
fields[1].in_handler_priv = value; fields[1].in_handler_priv = value;
fields[1].in_handler = arm_jtag_buf_to_u32; fields[1].in_handler = arm_jtag_buf_to_u32;
jtag_add_dr_scan(4, fields, -1); jtag_add_dr_scan(4, fields, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
jtag_execute_queue(); jtag_execute_queue();
@ -222,7 +222,7 @@ int arm920t_write_cp15_physical(target_t *target, int reg_addr, u32 value)
fields[3].in_handler = NULL; fields[3].in_handler = NULL;
fields[3].in_handler_priv = NULL; fields[3].in_handler_priv = NULL;
jtag_add_dr_scan(4, fields, -1); jtag_add_dr_scan(4, fields, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
LOG_DEBUG("addr: 0x%x value: %8.8x", reg_addr, value); LOG_DEBUG("addr: 0x%x value: %8.8x", reg_addr, value);
@ -289,7 +289,7 @@ int arm920t_execute_cp15(target_t *target, u32 cp15_opcode, u32 arm_opcode)
fields[3].in_handler = NULL; fields[3].in_handler = NULL;
fields[3].in_handler_priv = NULL; fields[3].in_handler_priv = NULL;
jtag_add_dr_scan(4, fields, -1); jtag_add_dr_scan(4, fields, TAP_INVALID);
arm9tdmi_clock_out(jtag_info, arm_opcode, 0, NULL, 0); arm9tdmi_clock_out(jtag_info, arm_opcode, 0, NULL, 0);
arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 1); arm9tdmi_clock_out(jtag_info, ARMV4_5_NOP, 0, NULL, 1);

View File

@ -178,7 +178,7 @@ int arm926ejs_cp15_read(target_t *target, u32 op1, u32 op2, u32 CRn, u32 CRm, u3
fields[3].in_handler = NULL; fields[3].in_handler = NULL;
fields[3].in_handler_priv = NULL; fields[3].in_handler_priv = NULL;
jtag_add_dr_scan(4, fields, -1); jtag_add_dr_scan(4, fields, TAP_INVALID);
fields[0].in_handler_priv = value; fields[0].in_handler_priv = value;
fields[0].in_handler = arm_jtag_buf_to_u32; fields[0].in_handler = arm_jtag_buf_to_u32;
@ -189,7 +189,7 @@ int arm926ejs_cp15_read(target_t *target, u32 op1, u32 op2, u32 CRn, u32 CRm, u3
/* rescan with NOP, to wait for the access to complete */ /* rescan with NOP, to wait for the access to complete */
access = 0; access = 0;
nr_w_buf = 0; nr_w_buf = 0;
jtag_add_dr_scan(4, fields, -1); jtag_add_dr_scan(4, fields, TAP_INVALID);
if((retval = jtag_execute_queue()) != ERROR_OK) if((retval = jtag_execute_queue()) != ERROR_OK)
{ {
return retval; return retval;
@ -268,14 +268,14 @@ int arm926ejs_cp15_write(target_t *target, u32 op1, u32 op2, u32 CRn, u32 CRm, u
fields[3].in_handler = NULL; fields[3].in_handler = NULL;
fields[3].in_handler_priv = NULL; fields[3].in_handler_priv = NULL;
jtag_add_dr_scan(4, fields, -1); jtag_add_dr_scan(4, fields, TAP_INVALID);
/*TODO: add timeout*/ /*TODO: add timeout*/
do do
{ {
/* rescan with NOP, to wait for the access to complete */ /* rescan with NOP, to wait for the access to complete */
access = 0; access = 0;
nr_w_buf = 0; nr_w_buf = 0;
jtag_add_dr_scan(4, fields, -1); jtag_add_dr_scan(4, fields, TAP_INVALID);
if((retval = jtag_execute_queue()) != ERROR_OK) if((retval = jtag_execute_queue()) != ERROR_OK)
{ {
return retval; return retval;

View File

@ -214,12 +214,12 @@ int arm966e_read_cp15(target_t *target, int reg_addr, u32 *value)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
fields[0].in_handler_priv = value; fields[0].in_handler_priv = value;
fields[0].in_handler = arm_jtag_buf_to_u32; fields[0].in_handler = arm_jtag_buf_to_u32;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
if((retval = jtag_execute_queue()) != ERROR_OK) if((retval = jtag_execute_queue()) != ERROR_OK)
@ -282,7 +282,7 @@ int arm966e_write_cp15(target_t *target, int reg_addr, u32 value)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
LOG_DEBUG("addr: 0x%x value: %8.8x", reg_addr, value); LOG_DEBUG("addr: 0x%x value: %8.8x", reg_addr, value);

View File

@ -253,9 +253,9 @@ int arm9tdmi_clock_out(arm_jtag_t *jtag_info, u32 instr, u32 out, u32 *in, int s
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
jtag_add_runtest(0, -1); jtag_add_runtest(0, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
{ {
@ -320,9 +320,9 @@ int arm9tdmi_clock_data_in(arm_jtag_t *jtag_info, u32 *in)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
jtag_add_runtest(0, -1); jtag_add_runtest(0, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
{ {
@ -403,9 +403,9 @@ int arm9tdmi_clock_data_in_endianness(arm_jtag_t *jtag_info, void *in, int size,
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
jtag_add_runtest(0, -1); jtag_add_runtest(0, TAP_INVALID);
#ifdef _DEBUG_INSTRUCTION_EXECUTION_ #ifdef _DEBUG_INSTRUCTION_EXECUTION_
{ {

View File

@ -58,7 +58,7 @@ int arm_jtag_set_instr(arm_jtag_t *jtag_info, u32 new_instr, in_handler_t handl
field.in_check_mask = NULL; field.in_check_mask = NULL;
field.in_handler = handler; field.in_handler = handler;
field.in_handler_priv = NULL; field.in_handler_priv = NULL;
jtag_add_ir_scan(1, &field, -1); jtag_add_ir_scan(1, &field, TAP_INVALID);
} }
return ERROR_OK; return ERROR_OK;
@ -84,7 +84,7 @@ int arm_jtag_scann(arm_jtag_t *jtag_info, u32 new_scan_chain)
1, 1,
num_bits, num_bits,
values, values,
-1); TAP_INVALID);
jtag_info->cur_scan_chain = new_scan_chain; jtag_info->cur_scan_chain = new_scan_chain;
} }

View File

@ -91,7 +91,7 @@ int swjdp_scan(arm_jtag_t *jtag_info, u8 instr, u8 reg_addr, u8 RnW, u8 *outvalu
fields[1].in_check_value = NULL; fields[1].in_check_value = NULL;
fields[1].in_check_mask = NULL; fields[1].in_check_mask = NULL;
jtag_add_dr_scan(2, fields, -1); jtag_add_dr_scan(2, fields, TAP_INVALID);
return ERROR_OK; return ERROR_OK;
} }
@ -136,7 +136,7 @@ int swjdp_scan_u32(arm_jtag_t *jtag_info, u8 instr, u8 reg_addr, u8 RnW, u32 out
fields[1].in_check_value = NULL; fields[1].in_check_value = NULL;
fields[1].in_check_mask = NULL; fields[1].in_check_mask = NULL;
jtag_add_dr_scan(2, fields, -1); jtag_add_dr_scan(2, fields, TAP_INVALID);
return ERROR_OK; return ERROR_OK;
} }

View File

@ -283,7 +283,7 @@ int embeddedice_read_reg_w_check(reg_t *reg, u8* check_value, u8* check_mask)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
fields[0].in_value = reg->value; fields[0].in_value = reg->value;
jtag_set_check_value(fields+0, check_value, check_mask, NULL); jtag_set_check_value(fields+0, check_value, check_mask, NULL);
@ -294,7 +294,7 @@ int embeddedice_read_reg_w_check(reg_t *reg, u8* check_value, u8* check_mask)
*/ */
buf_set_u32(fields[1].out_value, 0, 5, embeddedice_reg_arch_info[EICE_COMMS_CTRL]); buf_set_u32(fields[1].out_value, 0, 5, embeddedice_reg_arch_info[EICE_COMMS_CTRL]);
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
return ERROR_OK; return ERROR_OK;
} }
@ -345,7 +345,7 @@ int embeddedice_receive(arm_jtag_t *jtag_info, u32 *data, u32 size)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
while (size > 0) while (size > 0)
{ {
@ -357,7 +357,7 @@ int embeddedice_receive(arm_jtag_t *jtag_info, u32 *data, u32 size)
fields[0].in_handler = arm_jtag_buf_to_u32; fields[0].in_handler = arm_jtag_buf_to_u32;
fields[0].in_handler_priv = data; fields[0].in_handler_priv = data;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
data++; data++;
size--; size--;
@ -465,7 +465,7 @@ int embeddedice_send(arm_jtag_t *jtag_info, u32 *data, u32 size)
while (size > 0) while (size > 0)
{ {
buf_set_u32(fields[0].out_value, 0, 32, *data); buf_set_u32(fields[0].out_value, 0, 32, *data);
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
data++; data++;
size--; size--;
@ -531,11 +531,11 @@ int embeddedice_handshake(arm_jtag_t *jtag_info, int hsbit, u32 timeout)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
gettimeofday(&lap, NULL); gettimeofday(&lap, NULL);
do do
{ {
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
if ((retval = jtag_execute_queue()) != ERROR_OK) if ((retval = jtag_execute_queue()) != ERROR_OK)
return retval; return retval;

View File

@ -124,7 +124,7 @@ static __inline__ void embeddedice_write_reg_inner( jtag_tap_t *tap, int reg_add
3, 3,
embeddedice_num_bits, embeddedice_num_bits,
values, values,
-1); TAP_INVALID);
} }
void embeddedice_write_dcc(jtag_tap_t *tap, int reg_addr, u8 *buffer, int little, int count); void embeddedice_write_dcc(jtag_tap_t *tap, int reg_addr, u8 *buffer, int little, int count);

View File

@ -82,7 +82,7 @@ int etb_set_instr(etb_t *etb, u32 new_instr)
field.in_handler = NULL; field.in_handler = NULL;
field.in_handler_priv = NULL; field.in_handler_priv = NULL;
jtag_add_ir_scan(1, &field, -1); jtag_add_ir_scan(1, &field, TAP_INVALID);
free(field.out_value); free(field.out_value);
} }
@ -109,7 +109,7 @@ int etb_scann(etb_t *etb, u32 new_scan_chain)
/* select INTEST instruction */ /* select INTEST instruction */
etb_set_instr(etb, 0x2); etb_set_instr(etb, 0x2);
jtag_add_dr_scan(1, &field, -1); jtag_add_dr_scan(1, &field, TAP_INVALID);
etb->cur_scan_chain = new_scan_chain; etb->cur_scan_chain = new_scan_chain;
@ -220,7 +220,7 @@ int etb_read_ram(etb_t *etb, u32 *data, int num_frames)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
fields[0].in_handler = buf_to_u32_handler; fields[0].in_handler = buf_to_u32_handler;
@ -236,7 +236,7 @@ int etb_read_ram(etb_t *etb, u32 *data, int num_frames)
buf_set_u32(fields[1].out_value, 0, 7, 0); buf_set_u32(fields[1].out_value, 0, 7, 0);
fields[0].in_handler_priv = &data[i]; fields[0].in_handler_priv = &data[i];
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
} }
jtag_execute_queue(); jtag_execute_queue();
@ -291,7 +291,7 @@ int etb_read_reg_w_check(reg_t *reg, u8* check_value, u8* check_mask)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
/* read the identification register in the second run, to make sure we /* read the identification register in the second run, to make sure we
* don't read the ETB data register twice, skipping every second entry * don't read the ETB data register twice, skipping every second entry
@ -301,7 +301,7 @@ int etb_read_reg_w_check(reg_t *reg, u8* check_value, u8* check_mask)
jtag_set_check_value(fields+0, check_value, check_mask, NULL); jtag_set_check_value(fields+0, check_value, check_mask, NULL);
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
free(fields[1].out_value); free(fields[1].out_value);
free(fields[2].out_value); free(fields[2].out_value);
@ -388,7 +388,7 @@ int etb_write_reg(reg_t *reg, u32 value)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
free(fields[0].out_value); free(fields[0].out_value);
free(fields[1].out_value); free(fields[1].out_value);

View File

@ -371,12 +371,12 @@ int etm_read_reg_w_check(reg_t *reg, u8* check_value, u8* check_mask)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
fields[0].in_value = reg->value; fields[0].in_value = reg->value;
jtag_set_check_value(fields+0, check_value, check_mask, NULL); jtag_set_check_value(fields+0, check_value, check_mask, NULL);
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
free(fields[1].out_value); free(fields[1].out_value);
free(fields[2].out_value); free(fields[2].out_value);
@ -463,7 +463,7 @@ int etm_write_reg(reg_t *reg, u32 value)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
free(fields[0].out_value); free(fields[0].out_value);
free(fields[1].out_value); free(fields[1].out_value);
@ -883,7 +883,7 @@ int etmv1_analyze_trace(etm_context_t *ctx, struct command_context_s *cmd_ctx)
continue; continue;
/* indirect branch to the exception vector means an exception occured */ /* indirect branch to the exception vector means an exception occured */
if (((ctx->last_branch >= 0x0) && (ctx->last_branch <= 0x20)) if ((ctx->last_branch <= 0x20)
|| ((ctx->last_branch >= 0xffff0000) && (ctx->last_branch <= 0xffff0020))) || ((ctx->last_branch >= 0xffff0000) && (ctx->last_branch <= 0xffff0020)))
{ {
if ((ctx->last_branch & 0xff) == 0x10) if ((ctx->last_branch & 0xff) == 0x10)

View File

@ -162,9 +162,9 @@ int feroceon_dummy_clock_out(arm_jtag_t *jtag_info, u32 instr)
fields[2].in_handler = NULL; fields[2].in_handler = NULL;
fields[2].in_handler_priv = NULL; fields[2].in_handler_priv = NULL;
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
/* no jtag_add_runtest(0, -1) here */ /* no jtag_add_runtest(0, TAP_INVALID) here */
return ERROR_OK; return ERROR_OK;
} }

View File

@ -55,7 +55,7 @@ int mips_ejtag_set_instr(mips_ejtag_t *ejtag_info, int new_instr, in_handler_t h
field.in_check_mask = NULL; field.in_check_mask = NULL;
field.in_handler = handler; field.in_handler = handler;
field.in_handler_priv = NULL; field.in_handler_priv = NULL;
jtag_add_ir_scan(1, &field, -1); jtag_add_ir_scan(1, &field, TAP_INVALID);
} }
return ERROR_OK; return ERROR_OK;
@ -78,7 +78,7 @@ int mips_ejtag_get_idcode(mips_ejtag_t *ejtag_info, u32 *idcode, in_handler_t ha
field.in_check_mask = NULL; field.in_check_mask = NULL;
field.in_handler = NULL; field.in_handler = NULL;
field.in_handler_priv = NULL; field.in_handler_priv = NULL;
jtag_add_dr_scan(1, &field, -1); jtag_add_dr_scan(1, &field, TAP_INVALID);
if (jtag_execute_queue() != ERROR_OK) if (jtag_execute_queue() != ERROR_OK)
{ {
@ -105,7 +105,7 @@ int mips_ejtag_get_impcode(mips_ejtag_t *ejtag_info, u32 *impcode, in_handler_t
field.in_check_mask = NULL; field.in_check_mask = NULL;
field.in_handler = NULL; field.in_handler = NULL;
field.in_handler_priv = NULL; field.in_handler_priv = NULL;
jtag_add_dr_scan(1, &field, -1); jtag_add_dr_scan(1, &field, TAP_INVALID);
if (jtag_execute_queue() != ERROR_OK) if (jtag_execute_queue() != ERROR_OK)
{ {
@ -136,7 +136,7 @@ int mips_ejtag_drscan_32(mips_ejtag_t *ejtag_info, u32 *data)
field.in_check_mask = NULL; field.in_check_mask = NULL;
field.in_handler = NULL; field.in_handler = NULL;
field.in_handler_priv = NULL; field.in_handler_priv = NULL;
jtag_add_dr_scan(1, &field, -1); jtag_add_dr_scan(1, &field, TAP_INVALID);
if ((retval = jtag_execute_queue()) != ERROR_OK) if ((retval = jtag_execute_queue()) != ERROR_OK)
{ {

View File

@ -229,7 +229,7 @@ int xscale_jtag_set_instr(jtag_tap_t *tap, u32 new_instr)
field.in_value = NULL; field.in_value = NULL;
jtag_set_check_value(&field, tap->expected, tap->expected_mask, NULL); jtag_set_check_value(&field, tap->expected, tap->expected_mask, NULL);
jtag_add_ir_scan(1, &field, -1); jtag_add_ir_scan(1, &field, TAP_INVALID);
free(field.out_value); free(field.out_value);
} }
@ -282,7 +282,7 @@ int xscale_read_dcsr(target_t *target)
fields[2].in_value = NULL; fields[2].in_value = NULL;
jtag_set_check_value(fields+2, &field2_check_value, &field2_check_mask, NULL); jtag_set_check_value(fields+2, &field2_check_value, &field2_check_mask, NULL);
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
if ((retval = jtag_execute_queue()) != ERROR_OK) if ((retval = jtag_execute_queue()) != ERROR_OK)
{ {
@ -302,7 +302,7 @@ int xscale_read_dcsr(target_t *target)
jtag_add_end_state(TAP_IDLE); jtag_add_end_state(TAP_IDLE);
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
/* DANGER!!! this must be here. It will make sure that the arguments /* DANGER!!! this must be here. It will make sure that the arguments
* to jtag_set_check_value() does not go out of scope! */ * to jtag_set_check_value() does not go out of scope! */
@ -362,7 +362,7 @@ int xscale_receive(target_t *target, u32 *buffer, int num_words)
jtag_add_end_state(TAP_IDLE); jtag_add_end_state(TAP_IDLE);
xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dbgtx); xscale_jtag_set_instr(xscale->jtag_info.tap, xscale->jtag_info.dbgtx);
jtag_add_runtest(1, -1); /* ensures that we're in the TAP_IDLE state as the above could be a no-op */ jtag_add_runtest(1, TAP_INVALID); /* ensures that we're in the TAP_IDLE state as the above could be a no-op */
/* repeat until all words have been collected */ /* repeat until all words have been collected */
int attempts=0; int attempts=0;
@ -750,7 +750,7 @@ int xscale_write_dcsr(target_t *target, int hold_rst, int ext_dbg_brk)
fields[2].in_value = NULL; fields[2].in_value = NULL;
jtag_set_check_value(fields+2, &field2_check_value, &field2_check_mask, NULL); jtag_set_check_value(fields+2, &field2_check_value, &field2_check_mask, NULL);
jtag_add_dr_scan(3, fields, -1); jtag_add_dr_scan(3, fields, TAP_INVALID);
if ((retval = jtag_execute_queue()) != ERROR_OK) if ((retval = jtag_execute_queue()) != ERROR_OK)
{ {
@ -822,7 +822,7 @@ int xscale_load_ic(target_t *target, int mini, u32 va, u32 buffer[8])
fields[1].in_handler = NULL; fields[1].in_handler = NULL;
fields[1].in_handler_priv = NULL; fields[1].in_handler_priv = NULL;
jtag_add_dr_scan(2, fields, -1); jtag_add_dr_scan(2, fields, TAP_INVALID);
fields[0].num_bits = 32; fields[0].num_bits = 32;
fields[0].out_value = packet; fields[0].out_value = packet;
@ -834,7 +834,7 @@ int xscale_load_ic(target_t *target, int mini, u32 va, u32 buffer[8])
{ {
buf_set_u32(packet, 0, 32, buffer[word]); buf_set_u32(packet, 0, 32, buffer[word]);
cmd = parity(*((u32*)packet)); cmd = parity(*((u32*)packet));
jtag_add_dr_scan(2, fields, -1); jtag_add_dr_scan(2, fields, TAP_INVALID);
} }
jtag_execute_queue(); jtag_execute_queue();
@ -880,7 +880,7 @@ int xscale_invalidate_ic_line(target_t *target, u32 va)
fields[1].in_handler = NULL; fields[1].in_handler = NULL;
fields[1].in_handler_priv = NULL; fields[1].in_handler_priv = NULL;
jtag_add_dr_scan(2, fields, -1); jtag_add_dr_scan(2, fields, TAP_INVALID);
return ERROR_OK; return ERROR_OK;
} }