The guy in the cubicle next to me says that it is possible to talk to a USRP from inside a vmware player using my USB1.1 patch for the USRP library. It is to early to tell if you can do anything useful from vmware, but he did successfully run the tx and rx programs.

Hopefully, we can use this to test the patch to Eric and Matt's satisfaction. Their concerns center around moving a USRP between USB1.1 and USB2.0 hosts. I'm attaching the patch just in case anyone else would like to play with it.

Philip
diff -ur usrp-0.8/firmware/include/fpga_regs_standard.h usrp-0.8-usb11/firmware/include/fpga_regs_standard.h
--- usrp-0.8/firmware/include/fpga_regs_standard.h	2004-12-10 23:25:42.000000000 -0500
+++ usrp-0.8-usb11/firmware/include/fpga_regs_standard.h	2005-04-18 15:48:58.000000000 -0400
@@ -103,6 +103,7 @@
 //  3   chan 1 Q
 
 #define	FR_TX_MUX		39
+#define FR_USB_PACKET_SIZE	40
 
 #endif /* INCLUDED_FPGA_REGS_STANDARD_H */
 
diff -ur usrp-0.8/firmware/src/common/usrp_common.c usrp-0.8-usb11/firmware/src/common/usrp_common.c
--- usrp-0.8/firmware/src/common/usrp_common.c	2004-03-28 17:28:58.000000000 -0500
+++ usrp-0.8-usb11/firmware/src/common/usrp_common.c	2005-04-17 12:10:26.000000000 -0400
@@ -101,9 +101,13 @@
   // set autoin length for EP6
   // FIXME should be f(enumeration)
 
-  EP6AUTOINLENH = (512) >> 8;	SYNCDELAY;  // this is the length for high speed
-  EP6AUTOINLENL = (512) & 0xff; SYNCDELAY;
-
+  if (USBCS & bmHSM) {
+    EP6AUTOINLENH = (512) >> 8;	SYNCDELAY;  // this is the length for high speed
+    EP6AUTOINLENL = (512) & 0xff; SYNCDELAY;
+  } else {
+    EP6AUTOINLENH = (64) >> 8;	SYNCDELAY;  // this is the length for full speed
+    EP6AUTOINLENL = (64) & 0xff; SYNCDELAY;
+  }
   init_board ();
 }
 
diff -ur usrp-0.8/firmware/src/usrp2/usb_descriptors.a51 usrp-0.8-usb11/firmware/src/usrp2/usb_descriptors.a51
--- usrp-0.8/firmware/src/usrp2/usb_descriptors.a51	2004-12-08 16:11:24.000000000 -0500
+++ usrp-0.8-usb11/firmware/src/usrp2/usb_descriptors.a51	2005-04-14 11:51:07.000000000 -0400
@@ -236,7 +236,7 @@
 	.db	DSCR_CONFIG
 	.db	<(_full_speed_config_descr_end - _full_speed_config_descr) ; LSB
 	.db	>(_full_speed_config_descr_end - _full_speed_config_descr) ; MSB
-	.db	1		; bNumInterfaces
+	.db	3		; bNumInterfaces
 	.db	1		; bConfigurationValue
 	.db	0		; iConfiguration
 	.db	0x80 | bmSELF_POWERED ; bmAttributes
@@ -253,7 +253,53 @@
 	.db	0xff		; bInterfaceSubClass (vendor specific)
 	.db	0xff		; bInterfaceProtocol (vendor specific)
 	.db	SI_COMMAND_AND_STATUS	; iInterface (description)
+
+	;; interface descriptor 1 (transmit path, ep2 OUT BULK)
+	
+	.db	DSCR_INTRFC_LEN
+	.db	DSCR_INTRFC
+	.db	1		; bInterfaceNumber (zero based)
+	.db	0		; bAlternateSetting
+	.db	1		; bNumEndpoints
+	.db	0xff		; bInterfaceClass (vendor specific)
+	.db	0xff		; bInterfaceSubClass (vendor specific)
+	.db	0xff		; bInterfaceProtocol (vendor specific)
+	.db	SI_TX_PATH	; iInterface (description)
+
+	;; interface 1's end point
+
+	.db	DSCR_ENDPNT_LEN
+	.db	DSCR_ENDPNT
+	.db	0x02		; bEndpointAddress (ep 2 OUT)
+	.db	ET_BULK		; bmAttributes
+	.db	<64		; wMaxPacketSize (LSB)
+	.db	>64		; wMaxPacketSize (MSB)
+	.db	0		; bInterval (iso only)
+
+	;; interface descriptor 2 (receive path, ep6 IN BULK)
+	
+	.db	DSCR_INTRFC_LEN
+	.db	DSCR_INTRFC
+	.db	2		; bInterfaceNumber (zero based)
+	.db	0		; bAlternateSetting
+	.db	1		; bNumEndpoints
+	.db	0xff		; bInterfaceClass (vendor specific)
+	.db	0xff		; bInterfaceSubClass (vendor specific)
+	.db	0xff		; bInterfaceProtocol (vendor specific)
+	.db	SI_RX_PATH	; iInterface (description)
+
+	;; interface 2's end point
+
+	.db	DSCR_ENDPNT_LEN
+	.db	DSCR_ENDPNT
+	.db	0x86		; bEndpointAddress (ep 6 IN)
+	.db	ET_BULK		; bmAttributes
+	.db	<64		; wMaxPacketSize (LSB)
+	.db	>64		; wMaxPacketSize (MSB)
+	.db	0		; bInterval (iso only)
+
 	
+		
 _full_speed_config_descr_end:	
 	
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to