diff loadtools/clmain.c @ 42:5da0cbee2b89

fc-xram tool written, compiles, now needs to be debugged
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Mon, 17 Jun 2013 07:18:04 +0000
parents
children 16315ed6401a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loadtools/clmain.c	Mon Jun 17 07:18:04 2013 +0000
@@ -0,0 +1,69 @@
+/*
+ * This module contains the main() function for the XRAM chain-loading
+ * utility fc-xram.
+ */
+
+#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 char default_loadagent_image[];
+extern struct srecreader xramimage;
+
+main(argc, argv)
+	char **argv;
+{
+	extern char *optarg;
+	extern int optind;
+	int c;
+
+	while ((c = getopt(argc, argv, "a:h:H:i:")) != EOF)
+		switch (c) {
+		case 'a':
+			iramimage.filename = 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 '?':
+		default:
+usage:			fprintf(stderr,
+			"usage: fc-xram [options] ttyport xramimage.srec\n");
+			exit(1);
+		}
+	if (argc - optind != 2)
+		goto usage;
+	target_ttydev = argv[optind];
+	xramimage.filename = argv[optind+1];
+	if (!iramimage.filename)
+		iramimage.filename = default_loadagent_image;
+
+	open_target_serial();
+	perform_romload();
+	/* loadagent should be running now */
+	if (tpinterf_pass_output(1) < 0)
+		exit(1);
+	/* hw_init_script execution will go here */
+	printf("Sending XRAM image to loadagent\n");
+	perform_chain_load();
+	tty_passthru();
+	exit(0);
+}
+
+/* called from hwparam.c config file parser */
+/* stub needed for fc-xram to link */
+void
+set_default_exit_mode()
+{
+}