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