xref: /openbmc/u-boot/tools/gdb/gdbcont.c (revision e8f80a5a)
1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
26dd652faSwdenk /*
36dd652faSwdenk  * (C) Copyright 2000
46dd652faSwdenk  * Murray Jensen <Murray.Jensen@csiro.au>
56dd652faSwdenk  */
66dd652faSwdenk 
73ba68654Swdenk #include <stdio.h>
83ba68654Swdenk #include <stdlib.h>
93ba68654Swdenk #include <string.h>
103ba68654Swdenk #include <unistd.h>
113ba68654Swdenk #include "serial.h"
123ba68654Swdenk #include "error.h"
133ba68654Swdenk #include "remote.h"
143ba68654Swdenk 
153ba68654Swdenk char *serialdev = "/dev/term/b";
163ba68654Swdenk speed_t speed = B230400;
173ba68654Swdenk int verbose = 0;
183ba68654Swdenk 
193ba68654Swdenk int
main(int ac,char ** av)203ba68654Swdenk main(int ac, char **av)
213ba68654Swdenk {
223ba68654Swdenk     int c, sfd;
233ba68654Swdenk 
243ba68654Swdenk     if ((pname = strrchr(av[0], '/')) == NULL)
253ba68654Swdenk 	pname = av[0];
263ba68654Swdenk     else
273ba68654Swdenk 	pname++;
283ba68654Swdenk 
293ba68654Swdenk     while ((c = getopt(ac, av, "b:p:v")) != EOF)
303ba68654Swdenk 	switch (c) {
313ba68654Swdenk 
323ba68654Swdenk 	case 'b':
333ba68654Swdenk 	    if ((speed = cvtspeed(optarg)) == B0)
343ba68654Swdenk 		Error("can't decode baud rate specified in -b option");
353ba68654Swdenk 	    break;
363ba68654Swdenk 
373ba68654Swdenk 	case 'p':
383ba68654Swdenk 	    serialdev = optarg;
393ba68654Swdenk 	    break;
403ba68654Swdenk 
413ba68654Swdenk 	case 'v':
423ba68654Swdenk 	    verbose = 1;
433ba68654Swdenk 	    break;
443ba68654Swdenk 
453ba68654Swdenk 	default:
463ba68654Swdenk 	usage:
473ba68654Swdenk 	    fprintf(stderr, "Usage: %s [-b bps] [-p dev] [-v]\n", pname);
483ba68654Swdenk 	    exit(1);
493ba68654Swdenk 	}
503ba68654Swdenk     if (optind != ac)
513ba68654Swdenk 	goto usage;
523ba68654Swdenk 
533ba68654Swdenk     if (verbose)
543ba68654Swdenk 	fprintf(stderr, "Opening serial port and sending continue...\n");
553ba68654Swdenk 
563ba68654Swdenk     if ((sfd = serialopen(serialdev, speed)) < 0)
573ba68654Swdenk 	Perror("open of serial device '%s' failed", serialdev);
583ba68654Swdenk 
593ba68654Swdenk     remote_desc = sfd;
603ba68654Swdenk     remote_reset();
613ba68654Swdenk     remote_continue();
623ba68654Swdenk 
633ba68654Swdenk     if (serialclose(sfd) < 0)
643ba68654Swdenk 	Perror("close of serial device '%s' failed", serialdev);
653ba68654Swdenk 
663ba68654Swdenk     if (verbose)
673ba68654Swdenk 	fprintf(stderr, "Done.\n");
683ba68654Swdenk 
693ba68654Swdenk     return (0);
703ba68654Swdenk }
71