diff loadtools/sertool.c @ 0:e7502631a0f9

initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 11 Jun 2016 00:13:35 +0000
parents
children 064d4eedb3a6
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loadtools/sertool.c	Sat Jun 11 00:13:35 2016 +0000
@@ -0,0 +1,65 @@
+/*
+ * 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 <sys/types.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include "srecreader.h"
+
+extern char *target_ttydev;
+extern struct srecreader iramimage;
+extern int gta_modem_poweron;
+
+main(argc, argv)
+	char **argv;
+{
+	extern char *optarg;
+	extern int optind;
+	int c;
+
+	while ((c = getopt(argc, argv, "b:c:C:h:H:i:n")) != EOF)
+		switch (c) {
+		case 'b':
+			set_romload_baudrate(optarg);
+			continue;
+		case 'c':
+			set_compalstage_short(optarg);
+			continue;
+		case 'C':
+			set_compalstage_fullpath(optarg);
+			continue;
+		case 'h':
+			read_hwparam_file_shortname(optarg);
+			continue;
+		case 'H':
+			read_hwparam_file_fullpath(optarg);
+			continue;
+		case 'i':
+			set_beacon_interval(optarg);
+			continue;
+		case 'n':
+			gta_modem_poweron = 0;
+			continue;
+		case '?':
+		default:
+usage:			fprintf(stderr,
+			"usage: fc-iram [options] ttyport iramimage.srec\n");
+			exit(1);
+		}
+	if (argc - optind != 2)
+		goto usage;
+	target_ttydev = argv[optind];
+	iramimage.filename = argv[optind+1];
+
+	open_target_serial();
+	perform_compal_stage(1);
+	perform_romload();
+	tty_passthru();
+	exit(0);
+}