Commit Graph

1178 Commits

Author SHA1 Message Date
Ha Thach 585f37a797
Merge pull request #1489 from kasjer/kasjer/fix-nrf5x-dma-access
nrf5x: Fix DMA access
2022-08-15 21:30:39 +07:00
graham sanderson fc1a27b6c9 RP@040: rework CMake for compiler warnings 2022-07-12 12:58:30 -05:00
Ha Thach 0bfb9d62de
Merge pull request #1543 from robert-hh/1170_0.13.0
mimxrt: Change the definitions for MIMXRT boards.
2022-07-11 15:53:24 +07:00
hathach 19768936ae
bump up mcux-sdk for rt11xx, add back OPT_MCU_MIMXRT11XX 2022-07-11 14:01:18 +07:00
robert-hh ec6f56768a mimxrt: Change OPT_MCU_MIMXRT1xXX to OPT_MCU_MIMXRT.
Which fits both MIMXRT10XX and MIMXRT11XX.
2022-07-01 09:04:36 +02:00
robert-hh 60c1750a9b mimxrt: Add/change definitions for MIMXRT11XX boards.
These are mostly identical to the MIMXRT10XX, with one tiny difference.
2022-06-30 22:21:31 +02:00
hathach 9ec92ff97b
rp2040 enable SOF as resumed signal when remote wakeup 2022-06-30 15:45:04 +07:00
Ha Thach 19956f070d
Merge pull request #1539 from hathach/improve-ci
Improve ci
2022-06-29 16:27:17 +07:00
hathach 8fe9022a6e fix buid_board.py script 2022-06-29 14:06:44 +07:00
robert-hh bc4da2047b samd: Fix a lock-up situation at high traffic.
This PR fixes a transmit lock-up, which happens, when data is received
and sent at the sime time at moderate to high speeds, like code
which just echoes incoming data.

In my case, an issue was reported here:
https://github.com/micropython/micropython/issues/8521
2022-06-27 20:31:44 +02:00
hathach 25580b4fe9 use forloop to avoid -Warray-bounds with host setup packet 2022-06-27 21:05:41 +07:00
hathach a0ef489890 fix all warnings with host rp2040 2022-06-27 17:11:24 +07:00
hathach 4f6e770eda
add more warning option, also fix -Wconversion with rp2040
-Wuninitialized, -Wunused,  -Wredundant-decls
2022-06-24 19:46:19 +07:00
Ha Thach 070382d599
Merge pull request #1509 from liamfraser/rp2040_hcd_improvements
RP2040 HCD Improvements (Hub + Keyboard + Mouse working)
2022-06-21 15:55:02 +07:00
Ha Thach ae8b8f0c93
Merge pull request #1515 from maddyaby/dcd_edpt_close
Stub out dcd_edpt_close for samd
2022-06-18 12:40:39 +07:00
Ha Thach b4e62d1cda
Merge pull request #1518 from mingpepe/master
Fix typo for log format
2022-06-18 12:39:16 +07:00
graham sanderson c45118dacf rp2040: use shared IRQ handlers, so user can also hook the USB IRQ 2022-06-17 09:13:40 -05:00
mingpepe 1001d2da40
Fix typo for log format 2022-06-17 16:50:24 +08:00
maddyaby 05fc2fa7a6 Stub out dcd_edpt_close for samd
Not having this prevents the device from finishing the mounting process.

Tested on a SAMD51 and didn't seem to need to actually do anything in the close function.
2022-06-16 16:57:20 -07:00
graham sanderson c5ba4af25b rp2040: make moving 1K of code into RAM optional - and off by default 2022-06-16 11:04:48 -05:00
Liam Fraser 19d054f789 hcd_rp2040 improvements:
- Stall now has priority over other interrupt responses
 - Delete eunused hcd_edpt_busy
 - Assert !ep->active when trying to start a new xfer
 - Assert !ep->active when handling buff_status bits
 - Set ep->xferred_len to 8 once a setup packet is finished so the data
structure is accurate
2022-06-13 16:19:11 +01:00
hathach dd035b0eb2 make all hcd/dcd function used in isr into ram with __no_inline_not_in_flash_func() for faster irq handling
result is 1KB of code moved from rom -> ram
2022-06-08 16:08:53 +07:00
hathach 8cbc34de11 add tuh_configure() for port/dynamic host behavior config 2022-06-08 01:17:01 +07:00
Ha Thach a03a03d74e
Merge pull request #1495 from hathach/enhance-tusb-config
Better support multiple controllers configuration
2022-06-07 01:13:08 +07:00
Ha Thach afd9b1883d
Merge pull request #1481 from cr1901/msp430-misopt-fix
msp430x5xx: Add fix for possible bug in msp430-elf-gcc 9.3.0.
2022-06-06 15:37:45 +07:00
hathach 1b08672945 more ci fix 2022-06-06 13:25:48 +07:00
hathach 7187cd9a85 fix ci, remove use of CFG_TUSB_RHPORT0_MODE in bsp 2022-06-06 12:51:10 +07:00
hathach f626916a57 update all dwc2 ports to support new dynamic controller support 2022-06-04 23:52:12 +07:00
hathach 31134f41a1 make dwc2 stm32 rhport support dynamic 2022-06-03 17:24:28 +07:00
Jerzy Kasenberg 8b37aa1579 nrf5x: Fix DMA access
There were two problems:
- dma_running flag could be checked in USB interrupt (not set yet) then higher priority
  interrupt could start transfer, check dma_running (not set yet) set it to true start
  DMA; then when USB interrupt continues it starts another DMA that is not allowed
- when DMA is started some registers can't be safely accessed, read can yield invalid
  values (SIZE.EPOUT, SIZE.EPISO)
  current implementation could start DMA for one OUT endpoint then check that another
  endpoint also has data and while DMA was not started right away, SIZE.EPOUT was copied
  already to MAXCNT register. Later on when DMA was started not all data was read from
  endpoint due to incorrect DMA size previously set.

To prevent both cases dma_running is changed in atomic way.
Only code that actually set this value to true starts DMA, code that tried and
had dma_running flag already set simply defers DMA start to USB task.
This eliminates also need to have mutex that was there to limit access to dma_running flag
to one task only.
transfer also now has started flag that is set only after dcd_edpt_xfer() sets up total_len
and actua_len. Previously USB interrupt was disabled when total_len and actual_len were
setup to prevent race condition when data arrived to ednpoint before transfer was setup
was finished.
2022-06-02 17:23:35 +02:00
hathach 99c1585ed2 rename board specific macro for example
- BOARD_DEVICE/HOST_RHPORT_NUM to  BOARD_TUD/H_RHPORT
- BOARD_DEVICE/HOST_RHPORT_SPEED to  BOARD_TUD/H_MAX_SPEED
2022-06-01 23:53:40 +07:00
Ha Thach fd8afc7e3b
Merge pull request #1454 from Iktek/bugfix_1453
overwrite grstctl on edpt_disable
2022-06-01 14:36:36 +07:00
hathach 6e7cd220dc grstctl set fifo + flush in one assign 2022-06-01 13:18:24 +07:00
Ha Thach 9352f75220
Merge pull request #1438 from Nikitarc/master
Update dwc2_stm32.h
2022-06-01 12:23:32 +07:00
Ha Thach fdeac8508b
Merge pull request #1381 from hathach/add-sof-isr
Add SOF IRQ Handler
2022-05-31 22:25:14 +07:00
William D. Jones 731ac3d3d6 msp430x5xx: Add fix for possible bug in msp430-elf-gcc 9.3.0. 2022-05-30 14:28:30 -04:00
Ha Thach 7b1344fe69
Merge pull request #1467 from kilograham/rp2040_cleanup
Minor cleanup of RP2040 code post addition of Pico-PIO-USB
2022-05-26 23:54:20 +07:00
Ha Thach 0a4a28a90c
Merge pull request #1451 from kasjer/kasjer/pic32-sanity-fixes
pic32 sanity fixes
2022-05-24 20:42:06 +07:00
graham sanderson 26c4d4b328 Minor cleanup of RP2040 code post addition of Pico-PIO_USB
* Removed some compiler warnings, and cleaned out unnecessary warning suppression from CMake suppress_tinyusb_warnings()
* Made explicit family_configure_dual_usb_example() for DUAL mode examples as family_configure_target() may not generally be called multiple times for the same target

* Renamed library pico_pio_usb to tinyusb_picio_pio_usb to be clearer and avoid conflict if someone already has a pico_pio_usb in their project
* Added family_add_pico_pio_usb() method for adding Pico-PIO_SUB support to an existing example
* Allowed tinyusb_pico_pio_usb to be added to regular apps using the Pico SDK
2022-05-20 17:25:30 -05:00
hathach 8473ca16fb clean up 2022-05-10 22:56:06 +07:00
Pascal Speck f452ab745e overwrite grstctl on edpt_disable 2022-05-03 09:52:10 +02:00
Jerzy Kasenberg e49cad84e2 dcd_pic32: Fix memory overwrite in incoming data
When transfer was finished rx_fifo_read() read all that
was to read RXPKTRDY was cleared allowing next packet to
be received.
Then xfer_complete was called.
Interrupt for OUT endpoint was left enable, that would not
be a problem if data was handled fast and new transfer was
scheduled.
For MSC when host sends a lot of data this interrupt that was
enabled could cause epn_handle_rx_int() to be called after
transfer was completed and next was not scheduled yet.
Without TU_ASSERT that was added to detect this, incoming
data was written past buffer provided by user code resulting
in random memory corruption.

This just blocks RX interrupt when transfer is finished,
and also only unmasked rx interrupts are handled.
2022-05-01 14:26:24 +02:00
Jerzy Kasenberg c145777e0e dcd_pic32: Add asserts transfer sanity check
TU_ASSERTS added to detect transfer inconsistency.
2022-05-01 14:14:42 +02:00
hathach 85dcb73774 more clean up 2022-04-28 18:00:30 +07:00
hathach ae5490e5a5 clean up 2022-04-27 20:52:56 +07:00
hathach 455bddddcd
minor clean up 2022-04-26 18:47:09 +07:00
hathach 4d11c658ff
improve pio usb endpoint handler 2022-04-26 13:08:03 +07:00
hathach 26a25279bc
follow pio usb changes 2022-04-26 00:35:16 +07:00
hathach 2f9b9a31be
more with pio usb 2022-04-22 18:26:58 +07:00
hathach 12debd7763
keep up with pio usb 2022-04-22 01:06:17 +07:00