Browse Source

zy1000 rev C work

git-svn-id: svn://svn.berlios.de/openocd/trunk@2405 b42882b7-edfa-0310-969c-e2dbd0fdcd60
tags/v0.2.0
oharboe 15 years ago
parent
commit
92db0c58b0
1 changed files with 44 additions and 0 deletions
  1. +44
    -0
      src/jtag/zy1000/zy1000.c

+ 44
- 0
src/jtag/zy1000/zy1000.c View File

@@ -283,6 +283,14 @@ static int jim_zy1000_version(Jim_Interp *interp, int argc, Jim_Obj *const *argv
{
version_str = ZYLIN_DATE;
}
else if (strcmp("pcb", str) == 0)
{
#ifdef CYGPKG_HAL_NIOS2
version_str="c";
#else
version_str="b";
#endif
}
else
{
return JIM_ERR;
@@ -295,6 +303,37 @@ static int jim_zy1000_version(Jim_Interp *interp, int argc, Jim_Obj *const *argv
}


#ifdef CYGPKG_HAL_NIOS2
static int jim_zy1000_writefirmware(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
if (argc != 2)
return JIM_ERR;

int length;
int stat;
const char *str = Jim_GetString(argv[1], &length);

/* BUG!!!! skip header! */
void *firmware_address=0x4000000;
int firmware_length=0x100000;

if (length>firmware_length)
return JIM_ERR;

void *err_addr;

if ((stat = flash_erase((void *)firmware_address, firmware_length, (void **)&err_addr)) != 0)
{
return JIM_ERR;
}

if ((stat = flash_program(firmware_address, str, length, (void **)&err_addr)) != 0)
return JIM_ERR;

return JIM_OK;
}
#endif

static int
zylinjtag_Jim_Command_powerstatus(Jim_Interp *interp,
int argc,
@@ -324,6 +363,11 @@ int zy1000_register_commands(struct command_context_s *cmd_ctx)

Jim_CreateCommand(interp, "powerstatus", zylinjtag_Jim_Command_powerstatus, NULL, NULL);

#ifdef CYGPKG_HAL_NIOS2
Jim_CreateCommand(interp, "updatezy1000firmware", jim_zy1000_writefirmware, NULL, NULL);
#endif


return ERROR_OK;
}



Loading…
Cancel
Save