From ce8f42a5182a4c365e9ae2703f41efdefa6420c9 Mon Sep 17 00:00:00 2001 From: Paul Selkirk Date: Tue, 23 Jun 2015 18:15:27 -0400 Subject: add tools to configure and start an FPGA bitstream --- sw/devmem3.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 sw/devmem3.c (limited to 'sw/devmem3.c') diff --git a/sw/devmem3.c b/sw/devmem3.c new file mode 100644 index 0000000..3c3fa16 --- /dev/null +++ b/sw/devmem3.c @@ -0,0 +1,40 @@ +#include +#include + +#include "novena-eim.h" + +int +main(int argc, char *argv[]) +{ + off_t offset; + uint32_t value, result; + + if (argc < 3 || argc > 4) { + usage: + fprintf(stderr, "usage: %s offset r\n", argv[0]); + fprintf(stderr, "usage: %s offset w value\n", argv[0]); + exit(EXIT_FAILURE); + } + + if (eim_setup() != 0) { + fprintf(stderr, "EIM setup failed\n"); + exit(EXIT_FAILURE); + } + + offset = (off_t)strtoul(argv[1], NULL, 0); + if (argv[2][0] == 'r') { + eim_read_32(offset, &result); + printf("%08x\n", result); + } + else if (argv[2][0] == 'w') { + value = strtoul(argv[3], NULL, 0); + eim_write_32(offset, &value); + } + else { + fprintf(stderr, "unknown command '%s'\n", argv[2]); + goto usage; + } + + exit(EXIT_SUCCESS); +} + -- cgit v1.2.3