Hello community,

here is the log from the commit of package imx-usb-loader for openSUSE:Factory 
checked in at 2018-03-24 16:15:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/imx-usb-loader (Old)
 and      /work/SRC/openSUSE:Factory/.imx-usb-loader.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "imx-usb-loader"

Sat Mar 24 16:15:46 2018 rev:7 rq:590353 version:0.0~git20180210

Changes:
--------
--- /work/SRC/openSUSE:Factory/imx-usb-loader/imx-usb-loader.changes    
2017-10-13 14:21:05.155042700 +0200
+++ /work/SRC/openSUSE:Factory/.imx-usb-loader.new/imx-usb-loader.changes       
2018-03-24 16:16:04.202005326 +0100
@@ -1,0 +2,6 @@
+Thu Mar 22 14:34:02 UTC 2018 - guillaume.gar...@opensuse.org
+
+- Update to 0.0~git20180210:
+  * imx_sdp: move jump command out of main download function
+
+-------------------------------------------------------------------

Old:
----
  imx_usb_loader-1507537358.7e77787.tar.bz2

New:
----
  imx_usb_loader-1518291894.869d06b.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ imx-usb-loader.spec ++++++
--- /var/tmp/diff_new_pack.eUPnRu/_old  2018-03-24 16:16:05.101972884 +0100
+++ /var/tmp/diff_new_pack.eUPnRu/_new  2018-03-24 16:16:05.101972884 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package imx-usb-loader
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 # Copyright (c) 2012 Guillaume GARDET <guilla...@opensuse.org>
 #
 # All modifications and additions to the file contributed by third parties
@@ -17,13 +17,13 @@
 #
 
 
-%define git_version 1507537358.7e77787
+%define git_version 1518291894.869d06b
 
 Name:           imx-usb-loader
-Version:        0.0~git20171009
+Version:        0.0~git20180210
 Release:        0
 Summary:        Vybrid/i.MX recovery utility
-License:        LGPL-2.1+
+License:        LGPL-2.1-or-later
 Group:          Hardware/Other
 Url:            https://github.com/boundarydevices/imx_usb_loader
 Source0:        imx_usb_loader-%{git_version}.tar.bz2

++++++ imx_usb_loader-1507537358.7e77787.tar.bz2 -> 
imx_usb_loader-1518291894.869d06b.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imx_usb_loader-1507537358.7e77787/Makefile 
new/imx_usb_loader-1518291894.869d06b/Makefile
--- old/imx_usb_loader-1507537358.7e77787/Makefile      2017-10-09 
10:22:38.000000000 +0200
+++ new/imx_usb_loader-1518291894.869d06b/Makefile      2018-02-10 
20:44:54.000000000 +0100
@@ -38,6 +38,11 @@
        install -m755 imx_usb '$(DESTDIR)$(bindir)/imx_usb'
        install -m755 imx_uart '$(DESTDIR)$(bindir)/imx_uart'
 
+uninstall:
+       rm -rf '$(DESTDIR)$(sysconfdir)/imx-loader.d/'
+       rm -rf '$(DESTDIR)$(bindir)/imx_usb'
+       rm -rf '$(DESTDIR)$(bindir)/imx_uart'
+
 clean:
        rm -f imx_usb imx_uart imx_usb.o imx_uart.o imx_sdp.o
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/imx_usb_loader-1507537358.7e77787/imx_sdp.c 
new/imx_usb_loader-1518291894.869d06b/imx_sdp.c
--- old/imx_usb_loader-1507537358.7e77787/imx_sdp.c     2017-10-09 
10:22:38.000000000 +0200
+++ new/imx_usb_loader-1518291894.869d06b/imx_sdp.c     2018-02-10 
20:44:54.000000000 +0100
@@ -1500,16 +1500,10 @@
        return transferSize;
 }
 
-#define MAX_IN_LENGTH 100 // max length for user input strings
-
-#define FT_APP 0xaa
-#define FT_CSF 0xcc
-#define FT_DCD 0xee
-#define FT_LOAD_ONLY   0x00
-int DoIRomDownload(struct sdp_dev *dev, struct sdp_work *curr, int verify)
+int jump(struct sdp_dev *dev, unsigned int header_addr)
 {
-//                                                     address, format, data 
count, data, type
-       //static unsigned char jump_command[] = {0x0b,0x0b, V(0),  0x00, 
V(0x00000000), V(0), 0x00};
+       int last_trans, err, retry = 0;
+       unsigned char tmp[64];
        struct sdp_command jump_command = {
                .cmd = SDP_JUMP_ADDRESS,
                .addr = 0,
@@ -1518,6 +1512,40 @@
                .data = 0,
                .rsvd = 0x00};
 
+       printf("jumping to 0x%08x\n", header_addr);
+       jump_command.addr = BE32(header_addr);
+       for (;;) {
+               err = dev->transfer(dev, 1, (unsigned char *)&jump_command, 
sizeof(jump_command), 0, &last_trans);
+               if (!err)
+                       break;
+               printf("jump_command err=%i, last_trans=%i\n", err, last_trans);
+               if (retry > 5) {
+                       return -4;
+               }
+               retry++;
+       }
+       memset(tmp, 0, sizeof(tmp));
+       err = dev->transfer(dev, 3, tmp, sizeof(tmp), 4, &last_trans);
+       if (err)
+               printf("j3 in err=%i, last_trans=%i  %02x %02x %02x %02x\n", 
err, last_trans, tmp[0], tmp[1], tmp[2], tmp[3]);
+
+       memset(tmp, 0, sizeof(tmp));
+       err = dev->transfer(dev, 4, tmp, sizeof(tmp), 4, &last_trans);
+       if (tmp[0] || tmp[1] || tmp[2] || tmp[3])
+               printf("j4 in err=%i, last_trans=%i  %02x %02x %02x %02x\n", 
err, last_trans, tmp[0], tmp[1], tmp[2], tmp[3]);
+
+       // Ignore error. Documentation says "This report is sent by device only 
in case of an error jumping to the given address..."
+       return 0;
+}
+
+#define MAX_IN_LENGTH 100 // max length for user input strings
+
+#define FT_APP 0xaa
+#define FT_CSF 0xcc
+#define FT_DCD 0xee
+#define FT_LOAD_ONLY   0x00
+int DoIRomDownload(struct sdp_dev *dev, struct sdp_work *curr, int verify)
+{
        int ret;
        FILE* xfile;
        unsigned char type;
@@ -1525,13 +1553,11 @@
        unsigned header_offset;
        int cnt;
        unsigned file_base;
-       int last_trans, err;
 #define BUF_SIZE (1024*16)
        unsigned char *buf = NULL;
        unsigned char *verify_buffer = NULL;
        unsigned verify_cnt;
        unsigned char *p;
-       unsigned char tmp[64];
        unsigned dladdr = 0;
        unsigned max_length;
        unsigned plugin = 0;
@@ -1539,7 +1565,6 @@
 
        unsigned skip = 0;
        unsigned transferSize=0;
-       int retry = 0;
 
        print_sdp_work(curr);
        xfile = fopen(curr->filename, "rb" );
@@ -1660,35 +1685,17 @@
 
                }
        }
-       if (dev->mode == MODE_HID) if (type == FT_APP) {
-               printf("jumping to 0x%08x\n", header_addr);
-               jump_command.addr = BE32(header_addr);
-               //Any command will initiate jump for mx51, jump address is 
ignored by mx51
-               retry = 0;
-               for (;;) {
-                       err = dev->transfer(dev, 1, (unsigned char 
*)&jump_command, sizeof(jump_command), 0, &last_trans);
-                       if (!err)
-                               break;
-                       printf("jump_command err=%i, last_trans=%i\n", err, 
last_trans);
-                       if (retry > 5) {
-                               return -4;
-                       }
-                       retry++;
-               }
-               memset(tmp, 0, sizeof(tmp));
-               err = dev->transfer(dev, 3, tmp, sizeof(tmp), 4, &last_trans);
-               if (err)
-                       printf("j3 in err=%i, last_trans=%i  %02x %02x %02x 
%02x\n", err, last_trans, tmp[0], tmp[1], tmp[2], tmp[3]);
-               if (dev->mode == MODE_HID) {
-                       memset(tmp, 0, sizeof(tmp));
-                       err = dev->transfer(dev, 4, tmp, sizeof(tmp), 4, 
&last_trans);
-                       if (tmp[0] || tmp[1] || tmp[2] || tmp[3])
-                               printf("j4 in err=%i, last_trans=%i  %02x %02x 
%02x %02x\n", err, last_trans, tmp[0], tmp[1], tmp[2], tmp[3]);
 
-                       // Ignore error. Documentation says "This report is 
sent by device only in case of an error jumping to the given address..."
-                       err = 0;
-               }
+       /*
+        * Any command will initiate jump for bulk devices, no need to
+        * explicitly send a jump command
+        */
+       if (dev->mode == MODE_HID && type == FT_APP) {
+               ret = jump(dev, header_addr);
+               if (ret < 0)
+                       goto cleanup;
        }
+
        ret = (fsize <= transferSize) ? 0 : -16;
 cleanup:
        fclose(xfile);


Reply via email to