comparison target-utils/dspdump/mandump.c @ 540:27b5526ba1a8

dspdump target program written, compiles
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 28 Oct 2019 08:19:33 +0000
parents
children
comparison
equal deleted inserted replaced
539:4f346c10f056 540:27b5526ba1a8
1 /* manual dump command */
2
3 #include <sys/types.h>
4 #include "types.h"
5 #include "leadapi.h"
6
7 void
8 cmd_dump(argbulk)
9 char *argbulk;
10 {
11 char *argv[4];
12 u_long mode, addr, len;
13 int rc;
14 volatile u16 *api;
15 unsigned n;
16
17 if (parse_args(argbulk, 3, 3, argv, 0) < 0)
18 return;
19 if (parse_hexarg(argv[0], 4, &mode) < 0) {
20 printf("ERROR: mode must be a valid 16-bit hex value\n");
21 return;
22 }
23 if (parse_hexarg(argv[1], 8, &addr) < 0) {
24 printf("ERROR: addr must be a valid 32-bit hex value\n");
25 return;
26 }
27 if (parse_hexarg(argv[2], 4, &len) < 0) {
28 printf("ERROR: len must be a valid 16-bit hex value\n");
29 return;
30 }
31 rc = boot_dsp_dump_agent();
32 if (rc < 0)
33 return; /* error msg already printed */
34 rc = dsp_read_op((u16)mode, (u32)addr, (u16)len);
35 if (rc < 0) {
36 printf("ERROR: DSP timeout on read operation\n");
37 return;
38 }
39 api = (volatile u16 *) APIF_ADDR;
40 for (n = 0; n < len; n++)
41 printf("%04X\n", *api++);
42 }