384 Commits

Author SHA1 Message Date
Jared Boone
d13e80b520 With bgamari's new USB configuration for CPLD, be sure to turn up CPU clock to maximum. 2013-09-16 15:21:28 -07:00
Jared Boone
c0274cd2d3 Merge remote-tracking branch 'bgamari/usb' into bgamari_usb_merge
Conflicts:
	firmware/hackrf_usb/hackrf_usb.c
	firmware/hackrf_usb/usb.c
	firmware/hackrf_usb/usb_queue.c
	firmware/hackrf_usb/usb_queue.h
	firmware/hackrf_usb/usb_standard_request.c
2013-09-16 15:18:14 -07:00
Ben Gamari
4cd7662f7c hackrf_usb_rom_to_ram: Add usb_queue to Makefile 2013-09-15 18:29:33 -04:00
Ben Gamari
67a181ac36 hackrf_usb: Update transceiver_mode on all configuration changes 2013-09-14 18:24:26 -04:00
Ben Gamari
64ef3f71c0 hackrf_usb: Make main loop non-blocking 2013-09-14 18:24:26 -04:00
Ben Gamari
3ba8d33de8 hackrf: Enter cpld_update from main loop
Otherwise we never respond to SET_CONFIGURATION
2013-09-14 18:24:26 -04:00
Ben Gamari
dc9c6c9667 cpld: Stream CPLD data from host
Previously CPLD programming involved a large 64kbyte buffer into which
the the entire bitstream would be completely downloaded, and at which
point the programming process would commence. This is needlessly
wasteful of memory. Moreover, it could lead to USB timeouts as the
firmware needs to wait the entire duration of the programming process
before returning an ACK to the host after the final SETUP data phase
packet.

Instead, we now receive 512 byte chunks of the bitstream and stream them
to the CPLD one at a time. We wait for each packet to be streamed out to
the CPLD before ACKing the packet to prevent active data being
overwritten.
2013-09-14 18:24:25 -04:00
Ben Gamari
d2b2b11998 xapp058/ports: Clean up comments and dead code
It's still not pretty but it's an improvement
2013-09-14 18:24:25 -04:00
Ben Gamari
8e897be975 usb_standard_request: Multiple config support
GET_DESCRIPTOR would only return one configurations. This fixes that.
2013-09-14 18:24:25 -04:00
Ben Gamari
34fabad121 usb_standard_request: Sent descriptors can be const 2013-09-14 18:24:25 -04:00
Ben Gamari
4773ee5a53 hackrf_usb: Port to use usb_queue 2013-09-14 18:24:25 -04:00
Ben Gamari
500aa5888c usb_queue: Introduce queue management 2013-09-14 18:24:25 -04:00
Ben Gamari
24d5a5c4f1 usb: Add usb_endpoint_append_td
This implements the procedure for adding a TD to the end of an active
queue described in UM10503 Section 23.10.11.3.
2013-09-14 18:24:25 -04:00
Ben Gamari
1a44890095 usb_descriptor: Add description strings for configurations 2013-09-14 18:24:25 -04:00
Ben Gamari
21ad0778d2 usb_descriptor: Fix whitespace 2013-09-14 18:24:25 -04:00
Jared Boone
5143456d6d Update libopencm3 submodule commit. 2013-09-06 15:25:34 -07:00
Jared Boone
b893b0a694 Merge remote-tracking branch 'bgamari/usb' into bgamari_usb_merge
Conflicts:
	firmware/hackrf_usb/hackrf_usb.c
	firmware/libopencm3
2013-09-06 15:20:58 -07:00
Jared Boone
266003f3af Added two CGU debugging tools:
- check_clock.py to decode the frequency monitor result.
- dump_cgu.py to display selected CGU registers in a legible format.
2013-09-04 16:34:20 -07:00
Jared Boone
6c0d803647 Cleaned up management of SGPIO and transceiver mode state vs. USB configuration state. This should help with power management. It may also be necessary when operating at low speed (48MHz), to keep the SGPIO interrupts from chewing up ALL available CPU cycles. 2013-09-04 16:27:43 -07:00
Jared Boone
1f5b979fd9 Added usb_set_configuration_changed_cb() call that bgamari fixed in his as-yet-unmerged USB branch. 2013-09-04 16:24:19 -07:00
Jared Boone
d76d72665e Adjusted cpu_clock_pll1_low_speed() to operate at 48MHz, as per several comments with the code. The actual MSEL value was previously selecting 84MHz. 2013-09-04 16:23:32 -07:00
Jared Boone
237bf6ecdb Pulled redundant PLL1 initialization code from cpu_clock_init(). Called cpu_clock_pll1_low_speed() instead. 2013-09-04 16:22:41 -07:00
Jared Boone
189d245868 Merge remote-tracking branch 'TitanMKD/master' into titanmkd_overclock_fix
Conflicts:
	firmware/hackrf_usb/hackrf_usb.c
2013-09-04 12:41:03 -07:00
Jared Boone
a90c3b2324 Merge pull request #100 from jboone/master
Incorporate bgamari changes for libopencm3 upstream.
2013-09-02 11:10:11 -07:00
TitanMKD
24ed48d93a Fix for "issues/62 fix PLL1 overclock bug" see hackrf_core.c -> cpu_clock_init()
Fix for "issues/78 startup current too high" see hackrf_core.c -> New functions cpu_clock_pll1_low_speed()/cpu_clock_pll1_max_speed() & hackrf_usb.c to switch low_speed/max_speed.
2013-08-28 22:01:57 +02:00
Michael Ossmann
2648107a0b added dfu-util requirement 2013-08-11 14:56:32 -06:00
Ben Gamari
3642fe9bc6 usb_queue: Kill dead declaration 2013-07-10 10:12:59 -04:00
Ben Gamari
f6b41dbda5 fix2 2013-07-07 23:21:18 -04:00
Ben Gamari
b738cd5294 fix1 2013-07-07 23:21:11 -04:00
Ben Gamari
bb69f655b1 usb_queue: Use while instead of for 2013-07-07 21:58:06 -04:00
Ben Gamari
f50253eaa3 usb_queue: Use ldrex/strex to avoid disabling interrupts 2013-07-07 21:54:25 -04:00
Ben Gamari
e23cc9bd6c usb_queue: Disable interrupts when allocating transfer 2013-07-07 21:25:31 -04:00
Ben Gamari
cce17c42fd libopencm3: Update 2013-07-07 21:24:13 -04:00
Ben Gamari
df400eced6 Bump libopencm3 2013-07-07 21:08:57 -04:00
Ben Gamari
4822512dac Bump libopencm3 2013-07-07 18:51:50 -04:00
Ben Gamari
d30d7309d9 usb_queue: Mark queues as volatile 2013-07-07 17:50:54 -04:00
Ben Gamari
36cf222ef4 usb_queue: Add some interrupt disabling around critical sections 2013-07-07 17:50:53 -04:00
Ben Gamari
14526cd1c2 hackrf_usb: Be more careful in transceiver_mode check 2013-07-07 17:50:53 -04:00
Ben Gamari
9f2dca3e4e usb_standard_request: Always call configuration_changed_cb
For reasons I don't entirely understand, bulk requests are suddenly
ignored after a SET_CONFIGURATION request (even if the configuration did
not change) unless the endpoints are reinitialized. This is done by
configuration_changed_cb, therefore we call it for every request.
2013-07-07 17:50:53 -04:00
Ben Gamari
f12defebc6 usb: Ensure endpoint queue is flushed on disable/init 2013-07-07 17:50:53 -04:00
Ben Gamari
8fdc22f8c8 usb-queue: Add flush utility 2013-07-07 17:50:53 -04:00
Ben Gamari
969647dbef usb_queue: Update queue before calling completion callback 2013-07-07 17:50:53 -04:00
Ben Gamari
5a70772295 usb_queue: Enable transfer chaining
Unfortunately this seems to be slightly broken. While hackrf_transfer
streams fine, things fall apart when disabling streaming. Not sure why
yet.
2013-07-07 17:50:53 -04:00
Ben Gamari
3e3a57e3ce hackrf_usb: Don't attempt to schedule transfers when OFF
The endpoints are disabled so no good will come of this
2013-07-07 17:50:53 -04:00
Ben Gamari
abb0b3f928 hackrf_usb: Forgotten initialization 2013-07-07 17:50:53 -04:00
Ben Gamari
dd81921650 usb_queue: Reduce transfer_pool size 2013-07-07 17:50:53 -04:00
Ben Gamari
df97b6584b hackrf_usb: Port to usb_queue 2013-07-07 17:50:53 -04:00
Ben Gamari
b6f9a3699a usb_queue: Kill assert reference 2013-07-07 17:50:53 -04:00
Ben Gamari
63ce57b306 usb_queue: Clarify comment 2013-07-07 17:50:53 -04:00
Ben Gamari
f1fc4a6d73 usb_queue: Account for completion of multiple transfers 2013-07-07 17:50:53 -04:00