jtag-mpsse

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 939ecce404d16e23af69873837ed58a8de530e7d
parent a06015692c8123618eb3fe4c69b2f5cd8b79bd1b
Author: Brian Swetland <swetland@frotz.net>
Date:   Sun, 11 May 2014 19:06:58 -0700

make a bit tidier

Diffstat:
Mmem.c | 40++++++++++++++++++++++++++--------------
1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/mem.c b/mem.c @@ -54,9 +54,21 @@ void jwr(u32 addr, u32 val) { jtag_dr_io(jtag, 36, u, &u); } -void axi_connect(void) { +#define DBG_IDCODE 0x4158494d + +#define DBG_R_IDCODE 0 +#define DBG_R_GETDATA 1 +#define DBG_R_GETADDR 2 +#define DBG_R_STATUS 7 + +#define DBG_W_SETADDR_READ 1 +#define DBG_W_SETADDR 2 +#define DBG_W_SETDATA_WRITE 3 +#define DBG_W_SETDATA_INCADDR_WRITE 4 + +void mem_connect(void) { jconnect(); - if (jrd(0) != 0x4158494d) { + if (jrd(0) != DBG_IDCODE) { fprintf(stderr,"axi master not detected\n"); exit(-1); } @@ -75,8 +87,8 @@ int main(int argc, char **argv) { return -1; } } - axi_connect(); - jwr(6, addr-4); + mem_connect(); + jwr(DBG_W_SETADDR, addr-4); for (;;) { r = read(fd, &n, sizeof(n)); if (r < 0) { @@ -86,7 +98,7 @@ int main(int argc, char **argv) { } if (r < 1) break; - jwr(4, n); + jwr(DBG_W_SETDATA_INCADDR_WRITE, n); } close(fd); return 0; @@ -102,10 +114,10 @@ int main(int argc, char **argv) { return -1; } } - axi_connect(); + mem_connect(); while (count > 0) { - jwr(7, addr); - u32 n = jrd(1); + jwr(DBG_W_SETADDR_READ, addr); + u32 n = jrd(DBG_R_GETDATA); write(fd, &n, sizeof(n)); addr += 4; count--; @@ -117,17 +129,17 @@ int main(int argc, char **argv) { u32 addr = strtoul(argv[1], 0, 0); u32 val = strtoul(argv[2], 0, 0); if (argv[1][0] == '-') goto usage; - axi_connect(); - jwr(6, addr); - jwr(5, val); + mem_connect(); + jwr(DBG_W_SETADDR, addr); + jwr(DBG_W_SETDATA_WRITE, val); return 0; } else if (argc == 2) { u32 addr = strtoul(argv[1], 0, 0); u32 val; if (argv[1][0] == '-') goto usage; - axi_connect(); - jwr(7, addr); - val = jrd(1); + mem_connect(); + jwr(DBG_W_SETADDR_READ, addr); + val = jrd(DBG_R_GETDATA); printf("%08x\n", val); return 0; }