]> git.gag.com Git - fw/stlink/commitdiff
Merge branch 'master' into killsg
authorKarl Palsson <karlp@tweak.net.au>
Thu, 3 Nov 2011 00:46:58 +0000 (00:46 +0000)
committerKarl Palsson <karlp@tweak.net.au>
Thu, 3 Nov 2011 00:47:28 +0000 (00:47 +0000)
Conflicts:
src/stlink-common.c
src/test_sg.c

Conflicts were only in changes to logging.

1  2 
src/stlink-common.c
src/stlink-common.h
src/stlink-sg.c
src/stlink-sg.h
src/test_sg.c

index 2693eb9214e0140237b4059ee7141c91d3099820,6a9b9383d4cef6f569c27658cf4e14c6feaaf224..8f3431a23ea3679145cfd7228dbef2afb453f0c8
@@@ -347,21 -355,20 +347,20 @@@ void _parse_version(stlink_t *sl, stlin
  }
  
  void stlink_version(stlink_t *sl) {
 -    D(sl, "*** looking up stlink version\n");
 +    DLOG("*** looking up stlink version\n");
-     stlink_version_t slv;
      sl->backend->version(sl);
-     _parse_version(sl, &slv);
+     _parse_version(sl, &sl->version);
      
-     DLOG("st vid         = 0x%04x (expect 0x%04x)\n", slv.st_vid, USB_ST_VID);
-     DLOG("stlink pid     = 0x%04x\n", slv.stlink_pid);
-     DLOG("stlink version = 0x%x\n", slv.stlink_v);
-     DLOG("jtag version   = 0x%x\n", slv.jtag_v);
-     DLOG("swim version   = 0x%x\n", slv.swim_v);
-     if (slv.jtag_v == 0) {
 -    DD(sl, "st vid         = 0x%04x (expect 0x%04x)\n", sl->version.st_vid, USB_ST_VID);
 -    DD(sl, "stlink pid     = 0x%04x\n", sl->version.stlink_pid);
 -    DD(sl, "stlink version = 0x%x\n", sl->version.stlink_v);
 -    DD(sl, "jtag version   = 0x%x\n", sl->version.jtag_v);
 -    DD(sl, "swim version   = 0x%x\n", sl->version.swim_v);
++    DLOG("st vid         = 0x%04x (expect 0x%04x)\n", sl->version.st_vid, USB_ST_VID);
++    DLOG("stlink pid     = 0x%04x\n", sl->version.stlink_pid);
++    DLOG("stlink version = 0x%x\n", sl->version.stlink_v);
++    DLOG("jtag version   = 0x%x\n", sl->version.jtag_v);
++    DLOG("swim version   = 0x%x\n", sl->version.swim_v);
+     if (sl->version.jtag_v == 0) {
 -        DD(sl, "    notice: the firmware doesn't support a jtag/swd interface\n");
 +        DLOG("    notice: the firmware doesn't support a jtag/swd interface\n");
      }
-     if (slv.swim_v == 0) {
+     if (sl->version.swim_v == 0) {
 -        DD(sl, "    notice: the firmware doesn't support a swim interface\n");
 +        DLOG("    notice: the firmware doesn't support a swim interface\n");
      }
  }
  
index 49867138ccc1c3838ef4a481cca344bd7f720dd7,2ac56f2b642c4972778d601be0c089c0647dd493..18e1c0c733697577b759aa262e0c992900d4e0e3
@@@ -179,8 -179,13 +179,9 @@@ extern "C" 
          stm32_addr_t sram_base;
          size_t sram_size;
  
+         struct stlink_version_ version;
      };
  
 -    // some quick and dirty logging...
 -    void D(stlink_t *sl, char *txt);
 -    void DD(stlink_t *sl, char *format, ...);
 -
      //stlink_t* stlink_quirk_open(const char *dev_name, const int verbose);
  
      // delegated functions...
diff --cc src/stlink-sg.c
index afce5aca42bd48641ac7985c8f28c788ee7526d7,e8dee5db05513dba436bb3414052df6baec0cb7a..5d1f970cd54bcf91a1bd4049fccb5c8a32b9c3f1
@@@ -274,38 -268,9 +274,9 @@@ void stlink_stat(stlink_t *stl, char *t
  }
  
  
- static void parse_version(stlink_t *stl) {
-   struct stlink_libsg *sl = stl->backend_data;
-   sl->st_vid = 0;
-   sl->stlink_pid = 0;
-   if (stl->q_len <= 0) {
-     fprintf(stderr, "Error: could not parse the stlink version");
-     return;
-   }
-   uint32_t b0 = stl->q_buf[0]; //lsb
-   uint32_t b1 = stl->q_buf[1];
-   uint32_t b2 = stl->q_buf[2];
-   uint32_t b3 = stl->q_buf[3];
-   uint32_t b4 = stl->q_buf[4];
-   uint32_t b5 = stl->q_buf[5]; //msb
-   // b0 b1 || b2 b3 | b4 b5
-   // 4b | 6b | 6b || 2B | 2B
-   // stlink_v | jtag_v | swim_v || st_vid | stlink_pid
-   sl->stlink_v = (b0 & 0xf0) >> 4;
-   sl->jtag_v = ((b0 & 0x0f) << 2) | ((b1 & 0xc0) >> 6);
-   sl->swim_v = b1 & 0x3f;
-   sl->st_vid = (b3 << 8) | b2;
-   sl->stlink_pid = (b5 << 8) | b4;
- }
  void _stlink_sg_version(stlink_t *stl) {
      struct stlink_libsg *sl = stl->backend_data;
 -    D(stl, "\n*** stlink_version ***\n");
 +    DLOG("\n*** stlink_version ***\n");
      clear_cdb(sl);
      sl->cdb_cmd_blk[0] = STLINK_GET_VERSION;
      stl->q_len = 6;
diff --cc src/stlink-sg.h
index afa47c51a3805c9f84cc551bc8d0ddede72a81e1,b3ab9c00e42c6e3adff1dfd9e0d7e90e88b25cc6..723c66a05678cc2ba45057180b683b0fe3f8d1cd
@@@ -53,17 -54,13 +53,10 @@@ extern "C" 
          // Sense (error information) data
          unsigned char sense_buf[SENSE_BUF_LEN];
  
-         uint32_t st_vid;
-         uint32_t stlink_pid;
-         uint32_t stlink_v;
-         uint32_t jtag_v;
-         uint32_t swim_v;
-         uint32_t core_id;
          reg reg;
      };
 -#else
 -    struct stlink_libsg {};
 -#endif
  
 -    stlink_t* stlink_quirk_open(const char *dev_name, const int verbose);
 +    stlink_t* stlink_v1_open(const char *dev_name, const int verbose);
  
  #ifdef        __cplusplus
  }
diff --cc src/test_sg.c
index a12ed1f409ffc6c057a54f98911ccf75dfd65c68,a4db8f2365e0f84fdd0fd2b5fddf52833ddaae11..30f867a1f415ea9053580049d4a5d4ebffea91dd
@@@ -33,14 -36,11 +32,10 @@@ int main(int argc, char *argv[]) 
                return EXIT_FAILURE;
        }
  
-       fputs("*** stlink access test ***\n", stderr);
-       fprintf(stderr, "Using sg_lib %s : scsi_pt %s\n", sg_lib_version(),
-               scsi_pt_version());
-       stlink_t *sl = stlink_v1_open(dev_name, scsi_verbose);
 -      stlink_t *sl = stlink_quirk_open(dev_name, 10);
++      stlink_t *sl = stlink_v1_open(dev_name, 10);
        if (sl == NULL)
                return EXIT_FAILURE;
 -    
 -    
 +
        // we are in mass mode, go to swd
        stlink_enter_swd_mode(sl);
        stlink_current_mode(sl);