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>
diff --git a/Makefile b/Makefile
index 07fefc0..805290c 100644
--- a/Makefile
+++ b/Makefile
@@ -143,12 +143,6 @@
# 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 @@
# 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 @@
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 @@
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 @@
}
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 @@
"flashrom -p serprog:ip=ipaddr:port\n");
return 1;
}
+#endif
if (register_shutdown(serprog_shutdown, NULL))
return 1;