# HG changeset patch # User Michael Spacefalcon # Date 1371958324 0 # Node ID f1df95eed62cb2fe255b8b753a857050afb1ff5b # Parent 54392d1ea4742030459dabb6014565a1ef026e93 loadtools: -b option works in fc-iram diff -r 54392d1ea474 -r f1df95eed62c loadtools/romload.c --- a/loadtools/romload.c Sun Jun 23 02:53:16 2013 +0000 +++ b/loadtools/romload.c Sun Jun 23 03:32:04 2013 +0000 @@ -21,6 +21,7 @@ extern char *target_ttydev; extern int target_fd; extern struct baudrate baud_rate_table[]; +extern struct baudrate *find_baudrate_by_name(); struct srecreader iramimage; struct baudrate *romload_baud_rate = baud_rate_table; /* 1st entry default */ @@ -71,6 +72,27 @@ } /* + * The following function should be called by command line option + * parsers upon encountering the -b option. + */ +set_romload_baudrate(arg) + char *arg; +{ + struct baudrate *br; + + br = find_baudrate_by_name(arg); + if (!br) + exit(1); /* error msg already printed */ + if (br->bootrom_code < 0) { + fprintf(stderr, + "baud rate of %s is not supported by the Calypso boot ROM\n", + br->name); + exit(1); + } + romload_baud_rate = br; +} + +/* * The following functions alter some of the parameters sent to the * boot ROM in the

#include #include +#include +#include #include #include "baudrate.h" @@ -54,6 +56,24 @@ return 0; } +struct baudrate * +find_baudrate_by_name(srch_name) + char *srch_name; +{ + struct baudrate *br; + + for (br = baud_rate_table; br->name; br++) + if (!strcmp(br->name, srch_name)) + break; + if (br->name) + return(br); + else { + fprintf(stderr, "error: baud rate \"%s\" not known\n", + srch_name); + return(NULL); + } +} + switch_baud_rate(br) struct baudrate *br; { diff -r 54392d1ea474 -r f1df95eed62c loadtools/sertool.c --- a/loadtools/sertool.c Sun Jun 23 02:53:16 2013 +0000 +++ b/loadtools/sertool.c Sun Jun 23 03:32:04 2013 +0000 @@ -1,8 +1,8 @@ /* - * This module contains the main() function for fc-sertool: the simplest - * of the FreeCalypso loading tools, which sends the user-specified - * IRAM SREC image to the boot ROM and then switches into serial tty - * pass-through. + * This module contains the main() function for fc-iram, previously + * called fc-sertool: the simplest of the FreeCalypso loading tools, + * which sends the user-specified IRAM SREC image to the boot ROM + * and then switches into serial tty pass-through. */ #include @@ -22,8 +22,11 @@ extern int optind; int c; - while ((c = getopt(argc, argv, "h:H:i:")) != EOF) + while ((c = getopt(argc, argv, "b:h:H:i:")) != EOF) switch (c) { + case 'b': + set_romload_baudrate(optarg); + continue; case 'h': read_hwparam_file_shortname(optarg); continue; @@ -36,7 +39,7 @@ case '?': default: usage: fprintf(stderr, - "usage: fc-sertool [options] ttyport iramimage.srec\n"); + "usage: fc-iram [options] ttyport iramimage.srec\n"); exit(1); } if (argc - optind != 2) @@ -51,7 +54,7 @@ } /* called from hwparam.c config file parser */ -/* stub needed for fc-sertool to link */ +/* stub needed for fc-iram to link */ void set_default_exit_mode() {