From: Øyvind H. <go...@us...> - 2009-12-04 08:30:23
|
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 24551b7b92725fb2b26d042c2e88330e3d1d4d21 (commit) from ed59dfc80aa6fc48a0894c8e46cee675f38ac949 (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 24551b7b92725fb2b26d042c2e88330e3d1d4d21 Author: Ãyvind Harboe <oyv...@zy...> Date: Fri Dec 4 08:20:38 2009 +0100 zy1000: FPGA revC wip The bug in revC register memory access is pretty much cornered now. Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/jtag/zy1000/jtag_minidriver.h b/src/jtag/zy1000/jtag_minidriver.h index afbea13..536c677 100644 --- a/src/jtag/zy1000/jtag_minidriver.h +++ b/src/jtag/zy1000/jtag_minidriver.h @@ -18,6 +18,7 @@ ***************************************************************************/ #include <cyg/hal/hal_io.h> // low level i/o +#include <cyg/hal/hal_intr.h> // low level i/o //#define VERBOSE(a) a #define VERBOSE(a) @@ -31,10 +32,16 @@ int diag_printf(const char *fmt, ...); #define ZY1000_PEEK(a, b) HAL_READ_UINT32(a, b); diag_printf("peek 0x%08x = 0x%08x\n", a, b) #else #define ZY1000_PEEK(a, b) HAL_READ_UINT32(a, b) -#define ZY1000_POKE(a, b) HAL_WRITE_UINT32(a, b);\ - {/* This will flush the bridge FIFO. Overflowed bridge FIFO fails. We must \ - flush every "often". No precise system has been found, but 4 seems solid. \ - */ \ + +#ifdef CYGPKG_HAL_NIOS2 +#define ZY1000_POKE(a, b) \ + {/* This will flush the bridge FIFO. Overflowed bridge FIFO fails. We must \ + flush every "often". No precise system has been found, but 4 seems solid. \ + This code goes away once the FPGA has been fixed. */ \ +\ +CYG_INTERRUPT_STATE _old_; \ +HAL_DISABLE_INTERRUPTS(_old_); \ +HAL_WRITE_UINT32(a, b);\ static int overflow_counter = 0; \ if (++overflow_counter >= 1) \ { \ @@ -42,7 +49,14 @@ int diag_printf(const char *fmt, ...); cyg_uint32 empty; ZY1000_PEEK(ZY1000_JTAG_BASE + 0x10, empty); \ overflow_counter = 0; \ } \ - } + /* NB! interrupts must be restored *after* read */ \ + HAL_RESTORE_INTERRUPTS(_old_); \ +}\ + +#else +#define ZY1000_POKE(a, b) HAL_WRITE_UINT32(a, b) +#endif + #endif // FIFO empty? ----------------------------------------------------------------------- Summary of changes: src/jtag/zy1000/jtag_minidriver.h | 24 +++++++++++++++++++----- 1 files changed, 19 insertions(+), 5 deletions(-) hooks/post-receive -- Main OpenOCD repository |