d70d7a7d5c
PR: 43889 Submitted by: Maxim Maximov <mcsi@agava.com> Approved by: Maintainer timeout (6 Weeks)
191 lines
6.1 KiB
Plaintext
191 lines
6.1 KiB
Plaintext
--- ezupload/ezupload.c.orig Thu Oct 10 14:33:34 2002
|
|
+++ ezupload/ezupload.c Thu Oct 10 14:34:49 2002
|
|
@@ -179,15 +179,15 @@
|
|
l = en-at;
|
|
|
|
#ifdef BSD
|
|
- ur.request.bmRequestType= 0xC0; /* see Anchor TRM v1.6 page 64 */
|
|
- ur.request.bRequest = 0xA0; /* Anchor Down/Upload */
|
|
+ ur.ucr_request.bmRequestType= 0xC0; /* see Anchor TRM v1.6 page 64 */
|
|
+ ur.ucr_request.bRequest = 0xA0; /* Anchor Down/Upload */
|
|
|
|
- USETW(ur.request.wValue,at); /* Starting Address */
|
|
- USETW(ur.request.wIndex,0); /* unused */
|
|
- USETW(ur.request.wLength,l); /* payload len in bytes */
|
|
+ USETW(ur.ucr_request.wValue,at); /* Starting Address */
|
|
+ USETW(ur.ucr_request.wIndex,0); /* unused */
|
|
+ USETW(ur.ucr_request.wLength,l); /* payload len in bytes */
|
|
|
|
- ur.flags = 0;
|
|
- ur.actlen = 0;
|
|
+ ur.ucr_flags = 0;
|
|
+ ur.ucr_actlen = 0;
|
|
#else
|
|
ur.requesttype= 0xC0; /* see Anchor TRM v1.6 page 64 */
|
|
ur.request = 0xA0; /* Anchor Down/Upload */
|
|
@@ -195,7 +195,7 @@
|
|
ur.index = 0; /* unused */
|
|
ur.length = l; /* payload len in bytes */
|
|
#endif
|
|
- ur.data = (void *)d;
|
|
+ ur.ucr_data = (void *)d;
|
|
|
|
#ifdef BSD
|
|
if(ioctl(fd, USB_DO_REQUEST,&ur)) {
|
|
@@ -207,7 +207,7 @@
|
|
break;
|
|
}
|
|
#ifdef BSD
|
|
- if (ur.actlen != l) {
|
|
+ if (ur.ucr_actlen != l) {
|
|
fprintf(stderr,"Failed to get full %d chunk at adr %X: %s\nAborted\n",
|
|
l,at,strerror(errno));
|
|
break;
|
|
--- ezdownload/ezdownload.c.orig Thu Oct 10 14:36:01 2002
|
|
+++ ezdownload/ezdownload.c Thu Oct 10 14:51:28 2002
|
|
@@ -268,13 +268,13 @@
|
|
int err;
|
|
|
|
#ifdef BSD
|
|
- ur.request.bmRequestType= 0x40; /* see TRM v1.6 page 64 */
|
|
- ur.request.bRequest = 0xA0; /* Anchor Download */
|
|
- USETW(ur.request.wValue, at); /* Starting Address */
|
|
- USETW(ur.request.wIndex, 0); /* unused */
|
|
- USETW(ur.request.wLength, len); /* payload len in bytes */
|
|
- ur.flags = 0;
|
|
- ur.actlen = 0;
|
|
+ ur.ucr_request.bmRequestType= 0x40; /* see TRM v1.6 page 64 */
|
|
+ ur.ucr_request.bRequest = 0xA0; /* Anchor Download */
|
|
+ USETW(ur.ucr_request.wValue, at); /* Starting Address */
|
|
+ USETW(ur.ucr_request.wIndex, 0); /* unused */
|
|
+ USETW(ur.ucr_request.wLength, len); /* payload len in bytes */
|
|
+ ur.ucr_flags = 0;
|
|
+ ur.ucr_actlen = 0;
|
|
#else
|
|
ur.requesttype= 0x40; /* see TRM v1.6 page 64 */
|
|
ur.request = 0xA0; /* Anchor Download */
|
|
@@ -282,7 +282,7 @@
|
|
ur.index = 0; /* unused */
|
|
ur.length = len; /* payload len in bytes */
|
|
#endif
|
|
- ur.data = (void *) d;
|
|
+ ur.ucr_data = (void *) d;
|
|
|
|
/* Although USB does not limit you here, the Anchor docs
|
|
* quote 64 as a limit, and Mato@activewireinc.com suggested
|
|
@@ -304,7 +304,7 @@
|
|
return err;
|
|
|
|
#ifdef BSD
|
|
- if (ur.actlen != len)
|
|
+ if (ur.ucr_actlen != len)
|
|
return EAGAIN; /* or too obscure ? */
|
|
#endif
|
|
|
|
@@ -386,16 +386,29 @@
|
|
};
|
|
#define SURE(x) (((x!=NULL) && (*x !='\0')) ? x : "<not defined>")
|
|
if (verbose)
|
|
+#ifdef BSD
|
|
+ printf("Device information: vendor %04x (%s) product %04x (%s) rev 0x%04x addr %x\n",
|
|
+ udi.udi_vendorNo, SURE(udi.udi_vendor),
|
|
+ udi.udi_productNo, SURE(udi.udi_product),
|
|
+ udi.udi_releaseNo, udi.udi_addr);
|
|
+#else
|
|
printf("Device information: vendor %04x (%s) product %04x (%s) rev 0x%04x addr %x\n",
|
|
udi.vendorNo, SURE(udi.vendor),
|
|
udi.productNo, SURE(udi.product),
|
|
udi.releaseNo, udi.addr);
|
|
+#endif
|
|
|
|
/* standard setup for AnchorChips ISAIK
|
|
*/
|
|
+#ifdef BSD
|
|
+ ai.uai_config_index = 0;
|
|
+ ai.uai_interface_index = 0;
|
|
+ ai.uai_alt_no = 0;
|
|
+#else
|
|
ai.config_index = 0;
|
|
ai.interface_index = 0;
|
|
ai.alt_no = 0;
|
|
+#endif
|
|
|
|
if ( ioctl(fd, USB_SET_ALTINTERFACE, &ai) == -1 ) {
|
|
fprintf(stderr, "ioctl 1 returned: %s\n",
|
|
@@ -425,8 +438,13 @@
|
|
/* XXX is the revision # really hardware specific ? Is it a string
|
|
* or a BCD number ?
|
|
*/
|
|
+#ifdef BSD
|
|
+ snprintf(tmp,sizeof(tmp),"%s/%04x.%04x.%04x.hex",
|
|
+ dir,udi.udi_vendorNo,udi.udi_productNo,udi.udi_releaseNo);
|
|
+#else
|
|
snprintf(tmp,sizeof(tmp),"%s/%04x.%04x.%04x.hex",
|
|
dir,udi.vendorNo,udi.productNo,udi.releaseNo);
|
|
+#endif
|
|
|
|
/* we could just do a loop through the directory
|
|
* and slack compare ?
|
|
@@ -439,9 +457,15 @@
|
|
printf("No %s\n",tmp);
|
|
};
|
|
if (!hexfile) {
|
|
+#ifdef BSD
|
|
+ fprintf(stderr,"No hexfile with firmware for "
|
|
+ "%04x.%04x.%04x available.\n",
|
|
+ udi.udi_vendorNo,udi.udi_productNo,udi.udi_releaseNo);
|
|
+#else
|
|
fprintf(stderr,"No hexfile with firmware for "
|
|
"%04x.%04x.%04x available.\n",
|
|
udi.vendorNo,udi.productNo,udi.releaseNo);
|
|
+#endif
|
|
if (!force) return(1);
|
|
};
|
|
} else {
|
|
@@ -453,8 +477,13 @@
|
|
else
|
|
l++;
|
|
|
|
+#ifdef BSD
|
|
+ snprintf(tmp,sizeof(tmp),"%04x.%04x.%04x",
|
|
+ udi.udi_vendorNo,udi.udi_productNo,udi.udi_releaseNo);
|
|
+#else
|
|
snprintf(tmp,sizeof(tmp),"%04x.%04x.%04x",
|
|
udi.vendorNo,udi.productNo,udi.releaseNo);
|
|
+#endif
|
|
|
|
if (strncmp(l,tmp,strlen(tmp))) {
|
|
fprintf(stderr,"The firmware specified does not match the device: %s\n",tmp);
|
|
--- aw/aw.c.orig Thu Oct 10 14:51:43 2002
|
|
+++ aw/aw.c Thu Oct 10 14:55:06 2002
|
|
@@ -83,15 +83,26 @@
|
|
#define SURE(x) \
|
|
(((x!=NULL) && (*x !='\0')) ? x : "<not defined>")
|
|
|
|
+#ifdef __FreeBSD__
|
|
+ printf("Device information: vendor %04x (%s) product %04x (%s) rev %s addr %x\n",
|
|
+ udi.udi_vendorNo, SURE(udi.udi_vendor),
|
|
+ udi.udi_productNo, SURE(udi.udi_product),
|
|
+ SURE(udi.udi_release), udi.udi_addr);
|
|
+#else
|
|
printf("Device information: vendor %04x (%s) product %04x (%s) rev %s addr %x\n",
|
|
udi.vendorNo, SURE(udi.vendor),
|
|
udi.productNo, SURE(udi.product),
|
|
SURE(udi.release), udi.addr);
|
|
+#endif
|
|
close(fd);
|
|
|
|
/* vendor 0854 (ActiveWire, Inc.) product 0101 (ActiveWire USB) rev 0.00
|
|
*/
|
|
+#ifdef __FreeBSD__
|
|
+ if ((udi.udi_vendorNo != 0x854) || (udi.udi_productNo != 0x101)) {
|
|
+#else
|
|
if ((udi.vendorNo != 0x854) || (udi.productNo != 0x101)) {
|
|
+#endif
|
|
fprintf(stderr,"Sorry, does not seem to be an ActiveWire board. Aborted\n");
|
|
exit(1);
|
|
}
|
|
|
|
|
|
|