Kludge Tracker: Gnuradio - v3.4.0-101-g7e2b45b

Parent Directory (gnuradio/usrp)

Kludge Summary of gnuradio/usrp/firmware

Total Kludges 21
Total Subdirs 5

All Directories within gnuradio/usrp/firmware

All Files within gnuradio/usrp/firmware

Kludge Snippets in gnuradio/usrp/firmware

gnuradio/usrp/firmware/include/fpga_regs_standard.h — 1

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
181        // Possible future values of WIDTH = {4, 2, 1}
182        // 12 takes a bit more work, since we need to know packet alignment.
183        
184        // ------------------------------------------------------------------------
185        // FIXME register numbers 50 to 63 are available
186        
187        // ------------------------------------------------------------------------
188        // Registers 64 to 95 are reserved for user custom FPGA builds.
189        // The standard USRP software will not touch these.
				

gnuradio/usrp/firmware/include/fpga_regs_standard.h — 2

Category TODO
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
265        // still has the refclk function if you use the master/slave setup (it is not touched by the master/slave settings).
266        // The master/slave circuitry will only use io pin 15 and does not touch any of the other io pins.
267        #define bitnoFR_RX_SYNC_INPUT_IOPIN		15
268        #define bmFR_RX_SYNC_INPUT_IOPIN		(1<<bitnoFR_RX_SYNC_INPUT_IOPIN)
269        //TODO the output pin is still hardcoded in the verilog code, make it listen to the following define
270        #define bitnoFR_RX_SYNC_OUTPUT_IOPIN	15
271        #define bmFR_RX_SYNC_OUTPUT_IOPIN	(1<<bitnoFR_RX_SYNC_OUTPUT_IOPIN)
272        // =======================================================================
273        // READBACK Registers
				

gnuradio/usrp/firmware/include/fpga_regs_standard.v — 1

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
153        // Possible future values of WIDTH = {4, 2, 1}
154        // 12 takes a bit more work, since we need to know packet alignment.
155        
156        // ------------------------------------------------------------------------
157        // FIXME register numbers 50 to 63 are available
158        
159        // ------------------------------------------------------------------------
160        // Registers 64 to 95 are reserved for user custom FPGA builds.
161        // The standard USRP software will not touch these.
				

gnuradio/usrp/firmware/include/fpga_regs_standard.v — 2

Category TODO
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
228        // still has the refclk function if you use the master/slave setup (it is not touched by the master/slave settings).
229        // The master/slave circuitry will only use io pin 15 and does not touch any of the other io pins.
230        `define bitnoFR_RX_SYNC_INPUT_IOPIN 15
231        `define bmFR_RX_SYNC_INPUT_IOPIN  (1<<bitnoFR_RX_SYNC_INPUT_IOPIN)
232        //TODO the output pin is still hardcoded in the verilog code, make it listen to the following define
233        `define bitnoFR_RX_SYNC_OUTPUT_IOPIN 15
234        `define bmFR_RX_SYNC_OUTPUT_IOPIN (1<<bitnoFR_RX_SYNC_OUTPUT_IOPIN)
235        // =======================================================================
236        // READBACK Registers
				

gnuradio/usrp/firmware/include/syncdelay.h — 1

Category Magic
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
22        #ifndef _SYNCDELAY_H_
23        #define _SYNCDELAY_H_
24        
25        /*
26         * Magic delay required between access to certain xdata registers (TRM page 15-106).
27         * For our configuration, 48 MHz FX2 / 48 MHz IFCLK, we need three cycles.  Each
28         * NOP is a single cycle....
29         *
30         * From TRM page 15-105:
				

gnuradio/usrp/firmware/include/syncdelay.h — 2

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
55         *	GPIFTCB1			GPIFTCB0
56         */
57        
58        /*
59         * FIXME ensure that the peep hole optimizer isn't screwing us
60         */
61        #define	SYNCDELAY	_asm nop; nop; nop; _endasm
62        #define	NOP		_asm nop; _endasm
63        
				

gnuradio/usrp/firmware/lib/fx2utils.c — 1

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
41        fx2_renumerate (void)
42        {
43          USBCS |= bmDISCON | bmRENUM;
44        
45          // mdelay (1500);		// FIXME why 1.5 seconds?
46          mdelay (250);			// FIXME why 1.5 seconds?
47          
48          USBIRQ = 0xff;		// clear any pending USB irqs...
49          EPIRQ =  0xff;		//   they're from before the renumeration
				

gnuradio/usrp/firmware/lib/fx2utils.c — 2

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
42        {
43          USBCS |= bmDISCON | bmRENUM;
44        
45          // mdelay (1500);		// FIXME why 1.5 seconds?
46          mdelay (250);			// FIXME why 1.5 seconds?
47          
48          USBIRQ = 0xff;		// clear any pending USB irqs...
49          EPIRQ =  0xff;		//   they're from before the renumeration
50        
				

gnuradio/usrp/firmware/lib/usb_common.c — 1

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
50        
51        volatile bit _usb_got_SUDAV;
52        
53        unsigned char	_usb_config = 0;
54        unsigned char	_usb_alt_setting = 0;	// FIXME really 1/interface
55        
56        xdata unsigned char *current_device_descr;
57        xdata unsigned char *current_devqual_descr;
58        xdata unsigned char *current_config_descr;
				

gnuradio/usrp/firmware/lib/usb_common.c — 2

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
183        
184              switch (bRequest){
185        
186              case RQ_GET_CONFIG:
187        	EP0BUF[0] = _usb_config;	// FIXME app should handle
188        	EP0BCH = 0;
189        	EP0BCL = 1;
190        	break;
191        	
				

gnuradio/usrp/firmware/lib/usb_common.c — 3

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
191        	
192              // --------------------------------
193        
194              case RQ_GET_INTERFACE:
195        	EP0BUF[0] = _usb_alt_setting;	// FIXME app should handle
196        	EP0BCH = 0;
197        	EP0BCL = 1;
198        	break;
199        
				

gnuradio/usrp/firmware/lib/usb_common.c — 4

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
212        	  SUDPTRL = LSB (current_devqual_descr);
213        	  break;
214        
215        	case DT_CONFIG:
216        	  if (0 && wValueL != 1)	// FIXME only a single configuration
217        	    fx2_stall_ep0 ();
218        	  else {
219        	    SUDPTRH = MSB (current_config_descr);
220        	    SUDPTRL = LSB (current_config_descr);
				

gnuradio/usrp/firmware/lib/usb_common.c — 5

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
221        	  }
222        	  break;
223        
224        	case DT_OTHER_SPEED:
225        	  if (0 && wValueL != 1)	// FIXME only a single configuration
226        	    fx2_stall_ep0 ();
227        	  else {
228        	    SUDPTRH = MSB (other_config_descr);
229        	    SUDPTRL = LSB (other_config_descr);
				

gnuradio/usrp/firmware/lib/usb_common.c — 6

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
250        
251              case RQ_GET_STATUS:
252        	switch (bRequestType & bmRT_RECIP_MASK){
253        	case bmRT_RECIP_DEVICE:
254        	  EP0BUF[0] = bmGSDA_SELF_POWERED;	// FIXME app should handle
255        	  EP0BUF[1] = 0;
256        	  EP0BCH = 0;
257        	  EP0BCL = 2;
258        	  break;
				

gnuradio/usrp/firmware/lib/usb_common.c — 7

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
298        
299              switch (bRequest){
300        
301              case RQ_SET_CONFIG:
302        	_usb_config = wValueL;		// FIXME app should handle
303        	break;
304        
305              case RQ_SET_INTERFACE:
306        	_usb_alt_setting = wValueL;	// FIXME app should handle
				

gnuradio/usrp/firmware/lib/usb_common.c — 8

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
302        	_usb_config = wValueL;		// FIXME app should handle
303        	break;
304        
305              case RQ_SET_INTERFACE:
306        	_usb_alt_setting = wValueL;	// FIXME app should handle
307        	break;
308        
309              // --------------------------------
310        
				

gnuradio/usrp/firmware/src/common/fpga_load.c

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
40          udelay (40);					// wait 40 us
41          USRP_ALTERA_CONFIG |= bmALTERA_NCONFIG;	// set NCONFIG high
42        
43          if (UC_BOARD_HAS_FPGA){
44            // FIXME should really cap this loop with a counter so we
45            //   don't hang forever on a hardware failure.
46            while ((USRP_ALTERA_CONFIG & bmALTERA_NSTATUS) == 0) // wait for NSTATUS to go high
47              ;
48          }
				

gnuradio/usrp/firmware/src/common/usrp_common.c

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
98          EP2GPIFFLGSEL = 0x01;		SYNCDELAY; // For EP2OUT, GPIF uses EF flag
99          EP6GPIFFLGSEL = 0x02;		SYNCDELAY; // For EP6IN,  GPIF uses FF flag
100        
101          // set autoin length for EP6
102          // FIXME should be f(enumeration)
103        
104          EP6AUTOINLENH = (512) >> 8;	SYNCDELAY;  // this is the length for high speed
105          EP6AUTOINLENL = (512) & 0xff; SYNCDELAY;
106        
				

gnuradio/usrp/firmware/src/usrp2/usrp_main.c — 1

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
329        
330          eeprom_read(I2C_ADDR_BOOT, HW_REV_OFFSET, &hw_rev, 1);	// LSB of device id
331          usb_desc_hw_rev_binary_patch_location_0[0] = hw_rev;
332          usb_desc_hw_rev_binary_patch_location_1[0] = hw_rev;
333          usb_desc_hw_rev_ascii_patch_location_0[0] = hw_rev + '0';     // FIXME if we get > 9
334        
335          eeprom_read(I2C_ADDR_BOOT, SERIAL_NO_OFFSET, serial_no, SERIAL_NO_LEN);
336        
337          for (i = 0; i < SERIAL_NO_LEN; i++){
				

gnuradio/usrp/firmware/src/usrp2/usrp_main.c — 2

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
345        void
346        main (void)
347        {
348        #if 0
349          g_rx_enable = 0;	// FIXME (work around initialization bug)
350          g_tx_enable = 0;
351          g_rx_overrun = 0;
352          g_tx_underrun = 0;
353        #endif
				

gnuradio/usrp/firmware/src/usrp2/usrp_main.c — 3

Category FIXME
Committer jcorgan
Commit ID 5d69a524f81f234b3fbc41d49ba18d6f6886baba
370          setup_autovectors ();
371          usb_install_handlers ();
372          hook_timer_tick ((unsigned short) isr_tick);
373        
374          EIEX4 = 1;		// disable INT4 FIXME
375          EA = 1;		// global interrupt enable
376        
377          fx2_renumerate ();	// simulates disconnect / reconnect
378