xref: /openbmc/u-boot/tools/gdb/gdbcont.c (revision 6dd652fa4d8591a32e2707a91f4582ed13011b17)
1*6dd652faSwdenk /*
2*6dd652faSwdenk  * (C) Copyright 2000
3*6dd652faSwdenk  * Murray Jensen <Murray.Jensen@csiro.au>
4*6dd652faSwdenk  *
5*6dd652faSwdenk  * See file CREDITS for list of people who contributed to this
6*6dd652faSwdenk  * project.
7*6dd652faSwdenk  *
8*6dd652faSwdenk  * This program is free software; you can redistribute it and/or
9*6dd652faSwdenk  * modify it under the terms of the GNU General Public License as
10*6dd652faSwdenk  * published by the Free Software Foundation; either version 2 of
11*6dd652faSwdenk  * the License, or (at your option) any later version.
12*6dd652faSwdenk  *
13*6dd652faSwdenk  * This program is distributed in the hope that it will be useful,
14*6dd652faSwdenk  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15*6dd652faSwdenk  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16*6dd652faSwdenk  * GNU General Public License for more details.
17*6dd652faSwdenk  *
18*6dd652faSwdenk  * You should have received a copy of the GNU General Public License
19*6dd652faSwdenk  * along with this program; if not, write to the Free Software
20*6dd652faSwdenk  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
21*6dd652faSwdenk  * MA 02111-1307 USA
22*6dd652faSwdenk  */
23*6dd652faSwdenk 
243ba68654Swdenk #include <stdio.h>
253ba68654Swdenk #include <stdlib.h>
263ba68654Swdenk #include <string.h>
273ba68654Swdenk #include <unistd.h>
283ba68654Swdenk #include "serial.h"
293ba68654Swdenk #include "error.h"
303ba68654Swdenk #include "remote.h"
313ba68654Swdenk 
323ba68654Swdenk char *serialdev = "/dev/term/b";
333ba68654Swdenk speed_t speed = B230400;
343ba68654Swdenk int verbose = 0;
353ba68654Swdenk 
363ba68654Swdenk int
373ba68654Swdenk main(int ac, char **av)
383ba68654Swdenk {
393ba68654Swdenk     int c, sfd;
403ba68654Swdenk 
413ba68654Swdenk     if ((pname = strrchr(av[0], '/')) == NULL)
423ba68654Swdenk 	pname = av[0];
433ba68654Swdenk     else
443ba68654Swdenk 	pname++;
453ba68654Swdenk 
463ba68654Swdenk     while ((c = getopt(ac, av, "b:p:v")) != EOF)
473ba68654Swdenk 	switch (c) {
483ba68654Swdenk 
493ba68654Swdenk 	case 'b':
503ba68654Swdenk 	    if ((speed = cvtspeed(optarg)) == B0)
513ba68654Swdenk 		Error("can't decode baud rate specified in -b option");
523ba68654Swdenk 	    break;
533ba68654Swdenk 
543ba68654Swdenk 	case 'p':
553ba68654Swdenk 	    serialdev = optarg;
563ba68654Swdenk 	    break;
573ba68654Swdenk 
583ba68654Swdenk 	case 'v':
593ba68654Swdenk 	    verbose = 1;
603ba68654Swdenk 	    break;
613ba68654Swdenk 
623ba68654Swdenk 	default:
633ba68654Swdenk 	usage:
643ba68654Swdenk 	    fprintf(stderr, "Usage: %s [-b bps] [-p dev] [-v]\n", pname);
653ba68654Swdenk 	    exit(1);
663ba68654Swdenk 	}
673ba68654Swdenk     if (optind != ac)
683ba68654Swdenk 	goto usage;
693ba68654Swdenk 
703ba68654Swdenk     if (verbose)
713ba68654Swdenk 	fprintf(stderr, "Opening serial port and sending continue...\n");
723ba68654Swdenk 
733ba68654Swdenk     if ((sfd = serialopen(serialdev, speed)) < 0)
743ba68654Swdenk 	Perror("open of serial device '%s' failed", serialdev);
753ba68654Swdenk 
763ba68654Swdenk     remote_desc = sfd;
773ba68654Swdenk     remote_reset();
783ba68654Swdenk     remote_continue();
793ba68654Swdenk 
803ba68654Swdenk     if (serialclose(sfd) < 0)
813ba68654Swdenk 	Perror("close of serial device '%s' failed", serialdev);
823ba68654Swdenk 
833ba68654Swdenk     if (verbose)
843ba68654Swdenk 	fprintf(stderr, "Done.\n");
853ba68654Swdenk 
863ba68654Swdenk     return (0);
873ba68654Swdenk }
88