test commit
[my-code/fpga.git] / fx2 / cypress_fx2_xilprg.patch
index 96d9eab..8aa0971 100644 (file)
@@ -32,12 +32,12 @@ diff -Nur xilprg-0.5/src/cable.cpp xilprg-new/src/cable.cpp
          return NULL;\r
 diff -Nur xilprg-0.5/src/onbusb.cpp xilprg-new/src/onbusb.cpp
 --- xilprg-0.5/src/onbusb.cpp  1970-01-01 01:00:00.000000000 +0100
-+++ xilprg-new/src/onbusb.cpp  2007-04-07 17:15:34.000000000 +0200
-@@ -0,0 +1,113 @@
++++ xilprg-new/src/onbusb.cpp  2007-09-04 21:39:30.000000000 +0200
+@@ -0,0 +1,119 @@
 +/*\r
 + * onboard usb\r
 + *\r
-+ * author: till & frank zirkelbach\r
++ * author: till, hunz, koppi, hackbard\r
 + *\r
 + */\r
 +\r
@@ -45,6 +45,8 @@ diff -Nur xilprg-0.5/src/onbusb.cpp xilprg-new/src/onbusb.cpp
 +#include "utils.h"\r
 +#include "onbusb.h"\r
 +\r
++#define GET_TDO               0x20\r
++\r
 +onbusb::onbusb()\r
 +{\r
 +   handle=NULL;\r
@@ -68,40 +70,42 @@ diff -Nur xilprg-0.5/src/onbusb.cpp xilprg-new/src/onbusb.cpp
 +      dev=bus->devices;\r
 +      while(dev) {\r
 +              if(dev->descriptor.idVendor==USB_VENDOR_ID &&\r
-+                 dev->descriptor.idProduct==USB_PRODUCT_ID)\r
-+                      /* found the device */\r
-+                      return 0;\r
-+              dev=dev->next;\r
-+      }\r
-+      bus=bus->next;\r
-+    }\r
++                 dev->descriptor.idProduct==USB_PRODUCT_ID) {\r
 +\r
-+    return -1;\r
++                      /* found the device */\r
++                      handle=usb_open(dev);\r
++                      if(handle==NULL)\r
++                              goto cleanup;\r
 +\r
-+    handle=usb_open(dev);\r
-+    if(handle==NULL)\r
-+      goto cleanup;\r
++                      if(usb_set_configuration(handle,1)<0)\r
++                              goto cleanup;\r
 +\r
-+    if(usb_set_configuration(handle,1)<0)\r
-+      goto cleanup;\r
++                      if(usb_claim_interface(handle,0)<0)\r
++                              goto cleanup;\r
 +\r
-+    if(usb_claim_interface(handle,0)<0)\r
-+      goto cleanup;\r
++                      if(usb_set_altinterface(handle,1)<0)\r
++                              goto cleanup;\r
 +\r
-+    if(usb_set_altinterface(handle,1)<0)\r
-+      goto cleanup;\r
++                      data = 0x10;\r
 +\r
-+    data = 0x10;\r
++                      reset_tap_state();\r
 +\r
-+    reset_tap_state();\r
++                      return 0;\r
++              }\r
++              dev=dev->next;\r
++      }\r
++      bus=bus->next;\r
++    }\r
 +\r
-+    return 0;\r
++    return -1;\r
 +\r
 +cleanup:\r
 +\r
 +    close();\r
 +\r
-+    return 1;\r
++    printf("usb init failed!\n");\r
++\r
++    return -1;\r
 +\r
 +}\r
 +\r
@@ -116,7 +120,7 @@ diff -Nur xilprg-0.5/src/onbusb.cpp xilprg-new/src/onbusb.cpp
 +int onbusb::get_description(string& desc)\r
 +{\r
 +    char s[256];\r
-+    sprintf(s, "onboard usb bitbanging");\r
++    sprintf(s, "onboard usb bitbanging (till, hunz, koppi, hackbard)");\r
 +    desc = s;\r
 +    return 0;\r
 +}\r
@@ -124,37 +128,39 @@ diff -Nur xilprg-0.5/src/onbusb.cpp xilprg-new/src/onbusb.cpp
 +void onbusb::set_tdi(int bit)\r
 +{\r
 +    if (bit) data |= 0x04; else data &= ~0x04;\r
-+    data|=0xa0;\r
 +    usb_bulk_write(handle,0x01,&data,1,0);\r
 +}\r
 +\r
 +void onbusb::set_tck(int bit)\r
 +{\r
 +    if (bit) data |= 0x10; else data &= ~0x10;\r
-+    data|=0xa0;\r
 +    usb_bulk_write(handle,0x01,&data,1,0);\r
 +}\r
 +\r
 +void onbusb::set_tms(int bit)\r
 +{\r
 +    if (bit) data |= 0x08; else data &= ~0x08;\r
-+    data|=0xa0;\r
 +    usb_bulk_write(handle,0x01,&data,1,0);\r
 +}\r
 +\r
 +int onbusb::get_tdo()\r
 +{\r
++    /* send get tdo command */\r
++    data=GET_TDO;\r
++    usb_bulk_write(handle,0x01,&data,1,0);\r
++\r
++    /* receive tdo */\r
 +    usb_bulk_read(handle,0x81,&data,1,0);\r
 +    return data & 0x01 ? 1 : 0;\r
 +}\r
 diff -Nur xilprg-0.5/src/onbusb.h xilprg-new/src/onbusb.h
 --- xilprg-0.5/src/onbusb.h    1970-01-01 01:00:00.000000000 +0100
-+++ xilprg-new/src/onbusb.h    2007-04-07 17:14:07.000000000 +0200
++++ xilprg-new/src/onbusb.h    2007-09-04 21:17:18.000000000 +0200
 @@ -0,0 +1,43 @@
 +/*\r
 + * onboard usb\r
 + *\r
-+ * author: till & frank zirkelbach\r
++ * author: till, hunz, koppi, hackbard\r
 + *\r
 + */\r
 +\r