From: Øyvind H. <go...@us...> - 2009-12-30 12:16:50
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 272c33c190a72999697dd1d7b74a7603d30a84b8 (commit) via bd3700e89d80b2548890102da3e25012acbd3e41 (commit) via 12618e4c6d07f6291e2e0c6d7f99a0945b1b67b3 (commit) from d4bef466c3781b3ee9930681509a9954aaa425a1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 272c33c190a72999697dd1d7b74a7603d30a84b8 Author: Ãyvind Harboe <oyv...@zy...> Date: Tue Dec 29 12:30:02 2009 +0100 zy1000: reconfigure FPGA upon reset instead of just the CPU Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/ecosboard.c b/src/ecosboard.c index 32eb085..d7fdabd 100644 --- a/src/ecosboard.c +++ b/src/ecosboard.c @@ -62,6 +62,7 @@ #include "rom.h" #ifdef CYGPKG_HAL_NIOS2 +#include <cyg/hal/io.h> #define ZY1000_SER_DEV "/dev/uart_0" #else #define ZY1000_SER_DEV "/dev/ser0" @@ -145,7 +146,14 @@ static void zylinjtag_reboot(cyg_addrword_t data) diag_printf("Unmounting /config..\n"); umount("/config"); diag_printf("Rebooting..\n"); +#ifdef CYGPKG_HAL_NIOS2 + /* This will reboot & reconfigure the FPGA from the bootloader + * and on. + */ + IOWR(REMOTE_UPDATE_BASE, 0x20, 0x1); +#else HAL_PLATFORM_RESET(); +#endif } static cyg_thread zylinjtag_thread_object; static cyg_handle_t zylinjtag_thread_handle; commit bd3700e89d80b2548890102da3e25012acbd3e41 Author: Ãyvind Harboe <oyv...@zy...> Date: Fri Dec 25 21:50:41 2009 +0100 zy1000: firmware upgrade fixes for revc Use ecos firmwareutil upgrade utilities Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c index 30b9a4b..7c5f440 100644 --- a/src/jtag/zy1000/zy1000.c +++ b/src/jtag/zy1000/zy1000.c @@ -55,6 +55,11 @@ #include <time.h> +#ifdef CYGPKG_HAL_NIOS2 +#include <cyg/hal/io.h> +#include <cyg/firmwareutil/firmwareutil.h> +#endif + #define ZYLIN_VERSION GIT_ZY1000_VERSION #define ZYLIN_DATE __DATE__ #define ZYLIN_TIME __TIME__ @@ -322,33 +327,57 @@ static int jim_zy1000_version(Jim_Interp *interp, int argc, Jim_Obj *const *argv #ifdef CYGPKG_HAL_NIOS2 + + +struct info_forward +{ + void *data; + struct cyg_upgrade_info *upgraded_file; +}; + +static void report_info(void *data, const char * format, va_list args) +{ + char *s = alloc_vprintf(format, args); + LOG_USER_N("%s", s); + free(s); +} + +struct cyg_upgrade_info firmware_info = +{ + (cyg_uint8 *)0x84000000, + "/ram/firmware.phi", + "Firmware", + 0x0300000, + 0x1f00000 - + 0x0300000, + "ZylinNiosFirmware\n", + report_info, +}; + 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) + /* */ + int tmpFile; + if ((tmpFile = open(firmware_info.file, O_RDWR | O_CREAT | O_TRUNC)) <= 0) + { + return JIM_ERR; + } + bool success; + success = write(tmpFile, str, length) == length; + close(tmpFile); + if (!success) 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; + if (!cyg_firmware_upgrade(NULL, firmware_info)) + return JIM_ERR; - return JIM_OK; + return JIM_OK; } #endif commit 12618e4c6d07f6291e2e0c6d7f99a0945b1b67b3 Author: Ãyvind Harboe <oyv...@zy...> Date: Fri Dec 25 23:05:50 2009 +0100 zy1000: less warnings use inline for static functions in header files to avoid warnings about fn not being used. Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/jtag/zy1000/jtag_minidriver.h b/src/jtag/zy1000/jtag_minidriver.h index a78a063..1dcf23a 100644 --- a/src/jtag/zy1000/jtag_minidriver.h +++ b/src/jtag/zy1000/jtag_minidriver.h @@ -50,7 +50,7 @@ static __inline__ void waitQueue(void) // waitIdle(); } -static void sampleShiftRegister(void) +static __inline__ void sampleShiftRegister(void) { #if 0 cyg_uint32 dummy; @@ -59,8 +59,7 @@ static void sampleShiftRegister(void) #endif } -/* -O3 will inline this for us */ -static void setCurrentState(enum tap_state state) +static __inline__ void setCurrentState(enum tap_state state) { cyg_uint32 a; a = state; ----------------------------------------------------------------------- Summary of changes: src/ecosboard.c | 8 +++++ src/jtag/zy1000/jtag_minidriver.h | 5 +-- src/jtag/zy1000/zy1000.c | 61 +++++++++++++++++++++++++++---------- 3 files changed, 55 insertions(+), 19 deletions(-) hooks/post-receive -- Main OpenOCD repository |