summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>2013-04-01 00:46:05 +0000
committerStefan Tauner <stefan.tauner@alumni.tuwien.ac.at>2013-04-01 00:46:05 +0000
commit52b6e9dc546d1c0958e03634eff47c71f460f8ac (patch)
tree4ef6131df647e4c9fc9f5c312e583c2882afefde
parentf966cc48107d924f430dbd763bf470ee2ebaf0d1 (diff)
downloadast2050-flashrom-52b6e9dc546d1c0958e03634eff47c71f460f8ac.zip
ast2050-flashrom-52b6e9dc546d1c0958e03634eff47c71f460f8ac.tar.gz
Enable serprog on Windows
Sockets are not ported (yet). Tested on Windows 7 with my Atmega32U2 serprog implementation. http://paste.flashrom.org/view.php?id=1566 Corresponding to flashrom svn r1665. Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> Signed-off-by: Idwer Vollering <vidwer@gmail.com> Acked-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
-rw-r--r--Makefile8
-rw-r--r--serprog.c18
2 files changed, 13 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index 07fefc0..805290c 100644
--- a/Makefile
+++ b/Makefile
@@ -143,12 +143,6 @@ FLASHROM_CFLAGS += -Dffs=__builtin_ffs
# libusb-win32/libftdi stuff is usually installed in /usr/local.
CPPFLAGS += -I/usr/local/include
LDFLAGS += -L/usr/local/lib
-# Serprog is not supported under Windows/MinGW (missing sockets support).
-ifeq ($(CONFIG_SERPROG), yes)
-UNSUPPORTED_FEATURES += CONFIG_SERPROG=yes
-else
-override CONFIG_SERPROG = no
-endif
# For now we disable all PCI-based programmers on Windows/MinGW (no libpci).
ifeq ($(CONFIG_INTERNAL), yes)
UNSUPPORTED_FEATURES += CONFIG_INTERNAL=yes
@@ -334,7 +328,7 @@ SVNDEF := -D'FLASHROM_VERSION="$(VERSION)"'
# Always enable internal/onboard support for now.
CONFIG_INTERNAL ?= yes
-# Always enable serprog for now. Needs to be disabled on Windows.
+# Always enable serprog for now.
CONFIG_SERPROG ?= yes
# RayeR SPIPGM hardware support
diff --git a/serprog.c b/serprog.c
index b68fc49..24f5726 100644
--- a/serprog.c
+++ b/serprog.c
@@ -20,21 +20,23 @@
*/
#include <stdio.h>
+#ifndef _WIN32 /* stuff (presumably) needed for sockets only */
#include <stdlib.h>
#include <unistd.h>
-#include <strings.h>
-#include <string.h>
-#include <ctype.h>
#include <fcntl.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netdb.h>
-#include <sys/stat.h>
-#include <errno.h>
-#include <inttypes.h>
+#endif
+#ifdef _WIN32
+#include <conio.h>
+#else
#include <termios.h>
+#endif
+#include <string.h>
+#include <errno.h>
#include "flash.h"
#include "programmer.h"
#include "chipdrivers.h"
@@ -81,6 +83,7 @@ static int sp_opbuf_usage = 0;
whether the command is supported before doing it */
static int sp_check_avail_automatic = 0;
+#ifndef WIN32
static int sp_opensocket(char *ip, unsigned int port)
{
int flag = 1;
@@ -114,6 +117,7 @@ static int sp_opensocket(char *ip, unsigned int port)
setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(int));
return sock;
}
+#endif
/* Synchronize: a bit tricky algorithm that tries to (and in my tests has *
* always succeeded in) bring the serial protocol to known waiting-for- *
@@ -351,6 +355,7 @@ int serprog_init(void)
}
free(device);
+#ifndef _WIN32
device = extract_programmer_param("ip");
if (have_device && device) {
msg_perr("Error: Both host and device specified.\n"
@@ -394,6 +399,7 @@ int serprog_init(void)
"flashrom -p serprog:ip=ipaddr:port\n");
return 1;
}
+#endif
if (register_shutdown(serprog_shutdown, NULL))
return 1;
OpenPOWER on IntegriCloud