annotate loadtools/chainload.c @ 651:6bb41b4d39ed

fc-xram number of records per batch made baudrate-dependent
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 02 Mar 2020 03:39:46 +0000
parents bf840c984113
children 9f5a3e9e6294
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This module implements the chain-loading of XRAM images via loadagent.
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 */
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 #include <sys/types.h>
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <stdint.h>
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #include <stdio.h>
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #include <stdlib.h>
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 #include <string.h>
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include <strings.h>
614
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
11 #include <time.h>
651
6bb41b4d39ed fc-xram number of records per batch made baudrate-dependent
Mychaela Falconia <falcon@freecalypso.org>
parents: 650
diff changeset
12 #include "../libserial/baudrate.h"
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 #include "srecreader.h"
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
15 extern int target_fd;
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
16
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 struct srecreader xramimage;
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 extern struct baudrate *current_baud_rate;
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 extern struct baudrate *xram_run_baudrate;
536
dc05170ab113 fc-xram JTAG mode (-j) implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 535
diff changeset
21 extern int xram_jtag_mode;
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 perform_chain_load()
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 {
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
25 int resp, reclen;
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 unsigned long rec_count;
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
27 char *argv[3], jumparg[10];
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
28 u_char scratch[3], expect_conf[3];
614
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
29 time_t start_time, finish_time;
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
30 unsigned duration, mm, ss;
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 if (open_srec_file(&xramimage) < 0)
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 exit(1);
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
34 /* enter binary RAM download mode */
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
35 argv[0] = "BINML";
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
36 argv[1] = 0;
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
37 tpinterf_make_cmd(argv);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
38 if (tpinterf_send_cmd())
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
39 exit(1);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
40 /* read and send S-record image */
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
41 expect_conf[0] = 0x06;
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 for (rec_count = 0; ; ) {
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 if (read_s_record(&xramimage) < 0)
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 exit(1);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 switch (xramimage.record_type) {
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 case '0':
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 if (xramimage.lineno == 1)
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 continue;
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 fprintf(stderr,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 "%s: S0 record found in line %d (expected in line 1 only)\n",
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 xramimage.filename, xramimage.lineno);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 exit(1);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 case '3':
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 case '7':
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 if (s3s7_get_addr_data(&xramimage) < 0)
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 exit(1);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 break;
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 default:
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 fprintf(stderr,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 "%s line %d: S%c record type not supported\n",
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 xramimage.filename, xramimage.lineno,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 xramimage.record_type);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 exit(1);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 }
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
65 if (xramimage.record_type == '7')
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 break;
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 /* must be S3 */
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 if (xramimage.datalen < 1) {
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 fprintf(stderr,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 "%s line %d: S3 record has zero data length\n",
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71 xramimage.filename, xramimage.lineno);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 exit(1);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 }
614
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
74 if (!rec_count) {
651
6bb41b4d39ed fc-xram number of records per batch made baudrate-dependent
Mychaela Falconia <falcon@freecalypso.org>
parents: 650
diff changeset
75 printf("Each \'.\' is %d S-records\n",
6bb41b4d39ed fc-xram number of records per batch made baudrate-dependent
Mychaela Falconia <falcon@freecalypso.org>
parents: 650
diff changeset
76 current_baud_rate->xram_records);
614
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
77 time(&start_time);
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
78 }
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
79 reclen = xramimage.datalen + 6;
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
80 if (write(target_fd, xramimage.record, reclen) != reclen) {
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
81 perror("binary write to target");
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 exit(1);
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
83 }
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 rec_count++;
651
6bb41b4d39ed fc-xram number of records per batch made baudrate-dependent
Mychaela Falconia <falcon@freecalypso.org>
parents: 650
diff changeset
85 if (rec_count % current_baud_rate->xram_records == 0) {
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
86 scratch[0] = 0x05; /* ENQ */
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
87 write(target_fd, scratch, 1);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
88 if (collect_binblock_from_target(scratch, 3, 1))
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
89 exit(1);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
90 expect_conf[1] = rec_count >> 8;
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
91 expect_conf[2] = rec_count;
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
92 if (bcmp(scratch, expect_conf, 3)) {
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
93 fprintf(stderr,
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
94 "error: expected sync mismatch\n");
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
95 exit(1);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
96 }
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 putchar('.');
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 fflush(stdout);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 }
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 }
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101 /* got S7 */
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 fclose(xramimage.openfile);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 if (!rec_count) {
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 fprintf(stderr,
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 "%s line %d: S7 without any preceding S3 data records\n",
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 xramimage.filename, xramimage.lineno);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 exit(1);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 }
535
88962b111edc fc-xram: print a newline after the dots
Mychaela Falconia <falcon@freecalypso.org>
parents: 0
diff changeset
109 putchar('\n'); /* newline after the dots */
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
110 scratch[0] = 0x04; /* EOT */
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
111 write(target_fd, scratch, 1);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
112 if (collect_binblock_from_target(scratch, 1, 1))
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
113 exit(1);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
114 time(&finish_time);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
115 if (scratch[0] != '=') {
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
116 fprintf(stderr, "error: \'=\' not received as expected\n");
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
117 exit(1);
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
118 }
614
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
119 duration = finish_time - start_time;
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
120 mm = duration / 60;
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
121 ss = duration - mm * 60;
02bdb2f366bc fc-xram: added transfer time reporting
Mychaela Falconia <falcon@freecalypso.org>
parents: 536
diff changeset
122 printf("XRAM image transferred in %um%us\n", mm, ss);
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 if (xram_run_baudrate != current_baud_rate) {
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 resp = loadagent_switch_baud(xram_run_baudrate);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 if (resp)
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 exit(1);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 }
536
dc05170ab113 fc-xram JTAG mode (-j) implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 535
diff changeset
128 if (xram_jtag_mode) {
dc05170ab113 fc-xram JTAG mode (-j) implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 535
diff changeset
129 printf(
dc05170ab113 fc-xram JTAG mode (-j) implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 535
diff changeset
130 "Leaving target in loadagent for JTAG; image start address is 0x%08lX\n",
dc05170ab113 fc-xram JTAG mode (-j) implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 535
diff changeset
131 (u_long) xramimage.addr);
dc05170ab113 fc-xram JTAG mode (-j) implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 535
diff changeset
132 exit(0);
dc05170ab113 fc-xram JTAG mode (-j) implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 535
diff changeset
133 }
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 printf("Sending jump command\n");
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
135 sprintf(jumparg, "%lX", (u_long) xramimage.addr);
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 argv[0] = "jump";
650
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
137 argv[1] = jumparg;
bf840c984113 fc-xram reworked to use the new binary protocol
Mychaela Falconia <falcon@freecalypso.org>
parents: 614
diff changeset
138 argv[2] = 0;
0
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139 tpinterf_make_cmd(argv);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 if (tpinterf_send_cmd())
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 exit(1);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 printf("Sent \"%s %s\": XRAM image should now be running!\n",
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143 argv[0], argv[1]);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 return(0);
e7502631a0f9 initial import from freecalypso-sw rev 1033:5ab737ac3ad7
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 }