From 88a1d59b9a108cd6a50361d34b12f776a4fa9e22 Mon Sep 17 00:00:00 2001
From: Alexander Osipenko <sipych@gmail.com>
Date: Wed, 23 May 2012 18:27:22 +0400
Subject: [PATCH] Unsupported firmware version check

Print an error message if unsupported firmware version detected.

Change-Id: Id7d1f965b8ce2fdbcd0026a85ddd093e2fa48720
Signed-off-by: Alexander Osipenko <sipych@gmail.com>
---
 src/jtag/drivers/jlink.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/src/jtag/drivers/jlink.c b/src/jtag/drivers/jlink.c
index 35c1a5c..bacea7a 100644
--- a/src/jtag/drivers/jlink.c
+++ b/src/jtag/drivers/jlink.c
@@ -738,6 +738,21 @@ static int jlink_set_config(struct jlink_config *cfg)
 	return ERROR_OK;
 }
 
+/* List of unsupported version string markers */
+static const char * const unsupported_versions[] = {
+"May  3 2012", /* "J-Link ARM V8 compiled May  3 2012 18:36:22" */
+0 };
+
+static void jlink_check_supported(const char *str)
+{
+	const char **p = unsupported_versions;
+	while (*p)
+		if (NULL != strstr(str, *p)) {
+			LOG_ERROR("Unsupported J-Link firmware version.");
+			return;
+		}
+}
+
 static int jlink_get_version_info(void)
 {
 	int result;
@@ -767,6 +782,7 @@ static int jlink_get_version_info(void)
 
 	usb_in_buffer[result] = 0;
 	LOG_INFO("%s", (char *)usb_in_buffer);
+	jlink_check_supported((char *)usb_in_buffer);
 
 	/* query hardware capabilities */
 	jlink_simple_command(EMU_CMD_GET_CAPS);
-- 
1.7.6.5

