discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Patches for USB 1.1


From: balister
Subject: [Discuss-gnuradio] Patches for USB 1.1
Date: Thu, 20 Apr 2006 14:58:14 -0400

Here is my hack to make the USRP work with USB 1.1. I haven't been able to do 
extensive testing with them unfortunately, but they did work with my OMAP OSK 
board. I was running the OSSIE SCA rather than gnu radio, but I could get the 
gnu radio test programs to work at high interpolation/decimation rates.

Hopefully, someone can take these and make sure they don't break USB 2.0 
support and get them into the USRP code :)

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:





reply via email to

[Prev in Thread] Current Thread [Next in Thread]