FreeCalypso > hg > freecalypso-tools
comparison loadtools/compalload.c @ 250:8c011177adb9
loadtools reworked to use factored-out libserial
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 21 Sep 2017 23:07:01 +0000 |
parents | b77005f6d315 |
children |
comparison
equal
deleted
inserted
replaced
249:d0a4c05d98dc | 250:8c011177adb9 |
---|---|
11 #include <sys/ioctl.h> | 11 #include <sys/ioctl.h> |
12 #include <stdio.h> | 12 #include <stdio.h> |
13 #include <stdlib.h> | 13 #include <stdlib.h> |
14 #include <string.h> | 14 #include <string.h> |
15 #include <strings.h> | 15 #include <strings.h> |
16 #include <termios.h> | |
17 #include <unistd.h> | 16 #include <unistd.h> |
18 | 17 |
19 extern char default_compalstage_dir[]; | 18 extern char default_compalstage_dir[]; |
20 extern char *target_ttydev; | 19 extern char *target_ttydev; |
21 extern int target_fd; | 20 extern int target_fd; |
22 extern struct termios target_termios; | |
23 | 21 |
24 static char compalstage_pathname[MAXPATHLEN]; | 22 static char compalstage_pathname[MAXPATHLEN]; |
25 static u_char *compalstage_imgbuf; | 23 static u_char *compalstage_imgbuf; |
26 static size_t compalstage_len, compalstage_totlen; | 24 static size_t compalstage_len, compalstage_totlen; |
27 static int rx_state; | 25 static int rx_state; |
151 if (handle_rx_byte(rdbuf[i])) | 149 if (handle_rx_byte(rdbuf[i])) |
152 return; | 150 return; |
153 } | 151 } |
154 } | 152 } |
155 | 153 |
156 perform_compal_stage(for_boot_rom) | 154 perform_compal_stage() |
157 { | 155 { |
158 int fd; | 156 int fd; |
159 struct stat st; | 157 struct stat st; |
160 static int zero = 0; | 158 static int zero = 0; |
161 | 159 |
195 } | 193 } |
196 close(fd); | 194 close(fd); |
197 compute_checksum(); | 195 compute_checksum(); |
198 | 196 |
199 printf("Using Compal stage image %s\n", compalstage_pathname); | 197 printf("Using Compal stage image %s\n", compalstage_pathname); |
200 cfsetispeed(&target_termios, B115200); | 198 set_fixed_baudrate("115200"); |
201 cfsetospeed(&target_termios, B115200); | |
202 if (tcsetattr(target_fd, TCSAFLUSH, &target_termios) < 0) { | |
203 perror("tcsetattr to switch baud rate"); | |
204 exit(1); | |
205 } | |
206 ioctl(target_fd, FIONBIO, &zero); | 199 ioctl(target_fd, FIONBIO, &zero); |
207 printf("Waiting for PROMPT1 from target (%s) at 115200 baud\n", | 200 printf("Waiting for PROMPT1 from target (%s) at 115200 baud\n", |
208 target_ttydev); | 201 target_ttydev); |
209 read_loop(); | 202 read_loop(); |
210 free(compalstage_imgbuf); | 203 free(compalstage_imgbuf); |
211 | 204 |
212 if (for_boot_rom) { | |
213 cfsetispeed(&target_termios, B19200); | |
214 cfsetospeed(&target_termios, B19200); | |
215 if (tcsetattr(target_fd, TCSAFLUSH, &target_termios) < 0) { | |
216 perror("tcsetattr to switch baud rate"); | |
217 exit(1); | |
218 } | |
219 } | |
220 | |
221 return(1); | 205 return(1); |
222 } | 206 } |