Commit Graph

2376 Commits

Author SHA1 Message Date
hathach 566e3abcea increase version, update doc for release 2022-02-23 11:55:57 +07:00
Ha Thach e04f15ff3d
Merge pull request #1280 from kasjer/kasjer/nrf5x-dma-race
nrf5x: Fix DMA access race condition
2022-02-22 21:00:51 +07:00
Ha Thach 4612332af7
Merge pull request #1331 from hathach/fix-esp-build
fix build with latest esp idf
2022-02-18 16:22:50 +07:00
hathach 52645fcc1b fix build with latest esp idf 2022-02-18 13:07:21 +07:00
hathach a53e83665e fix HID_REPORT_ID_N() 2022-02-17 12:12:42 +07:00
Ha Thach fcca8bb4ca
Merge pull request #1327 from hathach/msc-request-sense
Add msc request sense callback
2022-02-15 23:17:58 +07:00
hathach 46f4f7ff49 minor rename set sense function 2022-02-15 22:53:23 +07:00
hathach 391edc7afb msc example response PREVENT_ALLOW_MEDIUM_REMOVAL command as unsupported command
LUN1 of msc_disk_dual will be set to not ready to simulate medium not
present (e.g SD card removed)
2022-02-15 22:40:08 +07:00
hathach 456c06aa5e add tud_msc_request_sense_cb() as weak callback
set default error sense to NOT READY, Medium not present
2022-02-14 18:17:49 +07:00
Ha Thach 63cb3cdc74
Merge pull request #1304 from kkitayam/add_hcd_for_frdm_kl25z
Add hcd driver for frdm kl25z
2022-02-09 16:14:50 +07:00
Ha Thach d6fb1859a4
Merge pull request #1291 from kasjer/kasjer/da1469x-fix-resume
da1469x: fix resume
2022-02-02 20:20:39 +07:00
Ryzee119 453ba529a6
OHCI: Fix array out of bounds issue
If using a USB hub, a request outside the array size can occur

Original line:
ffb257ac17/src/portable/ohci/ohci.h (L162)

It can happen in a few places but one such example is here:
ffb257ac17/src/portable/ohci/ohci.c (L460)

ie. if HUB address is 5, this would be an array index out of bounds on control endpoints as `CFG_TUH_DEVICE_MAX+1` is only 5.

This fix just includes num of hubs in the reserve array size.

Fixing locally fixed this issue.
2022-01-28 14:02:34 +10:30
kkitayam 03d2e32dc1 Fix handling for pending transfers 2022-01-27 23:38:19 +09:00
kkitayam 60a0be82da Change hcd_edpt_xfer to send at the next SOF 2022-01-27 22:25:36 +09:00
kkitayam cc06a3585e Add handling for NAK response 2022-01-27 20:57:41 +09:00
kkitayam cdab869472 Fix handling control transfer 2022-01-27 20:57:41 +09:00
kkitayam a4bc6075ce Add HCD functions for KL25Z 2022-01-27 20:57:40 +09:00
hathach 578a123282 fix mynewt build sunxi 2022-01-26 12:59:53 +07:00
Ha Thach 7de166390e
Merge branch 'master' into master 2022-01-25 22:29:05 +07:00
Jerzy Kasenberg 7b078367e8 dcd_da1469x: Re-enable RX after resume
Going to suspend states disable reception on non-0 RX endpoints.

Now when USB resume condition is detected, all RX endpoints
with pending transfers are resumed.
2022-01-20 16:28:09 +01:00
Jerzy Kasenberg ae4d901d83 dcd_da1469x: Fix over-run/under-run mask
Bit mask enabling/disabling over-run/unde-run was shifted
by one nibble, so interrupt was never enabled.
It did not force any issue as this situation could only
happen on ISO endpoints without DMA.
2022-01-20 10:01:18 +01:00
Ha Thach e40547ada1
Merge pull request #1265 from kkitayam/add_hcd_for_renesas_rx
Add HCD driver for Renesas RX
2022-01-19 19:07:21 +07:00
Jerzy Kasenberg 36b6ed8ff9 nrf5x: Fix EP OUT race conditions in OS build
When two tasks entered dcd_edpt_xfer() it was possible that
first disabled interrupt to setup total_len and actual_len
but second task for another endpoint enabled interrupt
between total_len and actual_len resulting in race
condition with interrupt, hence mutex is added on top of interrupt being blocked.
2022-01-19 09:48:04 +01:00
Jerzy Kasenberg 980ffe3b4e nrf5x: Fix DMA access race condition
In multi-thread mode starting DMA in thread mode was
prone to race condition resulting in infinite loop.
It may happen on single core CPU with strict priority based
tasks scheduler where ready high prio task never yields to
ready low prio task (Mynewt).

Sequence that failed (T1 - low priority task, T2 - high priority task)
- T1 called start_dma()
- T1 set _dcd.dma_running (DMA not started yet, context switch happens)
- T2 took CPU and saw that _dcd.dma_running is set, so waits for _dcd.dma_running to be 0
- T1 never gets CPU again, DMA is not started T2 waits forever

OSAL mutex resolves problem of DMA starting from thread-context.
2022-01-19 09:06:43 +01:00
email af9a3f646c fix idfgh-6508: return type in tu_fifo_peek_n()
https://github.com/espressif/esp-idf/issues/8161
2022-01-19 09:00:43 +01:00
Ha Thach 0b6b4f2441
Merge pull request #1286 from hathach/fix-fifo-mutex-when-full
fix locked mutex when fifo is full
2022-01-19 10:45:33 +07:00
Ha Thach 983abfd6d8
Merge pull request #1279 from kasjer/kasjer/nrf5x-int-race
nrf5x: Fix EP OUT race conditions
2022-01-19 10:33:37 +07:00
hathach 161ba73c8b
fix locked mutex when fifo is full 2022-01-19 10:17:39 +07:00
Ha Thach 84f2ca77f7
Merge pull request #1283 from kasjer/kasjer/olimex-pic32-board-fixes
olimex pic32 board fixes
2022-01-19 09:55:18 +07:00
Ha Thach 92c36f187d
Merge pull request #1274 from kasjer/kasjer/nrf5x-request-clock-in-mynewt
nrf5x: Request HFXO via OS
2022-01-18 20:00:23 +07:00
Jerzy Kasenberg f4725120a4 nrf5x: Request HFXO via OS
Mynewt (similar to Soft Device) has its own reference counting for
HFXO oscillator.
So far TinyUSB requested HFXO when VBUS was detected and stopped when
VBUS was removed.
But with Mynewt running HFXO can be stopped when other interested parties
don't require HFXO anymore. This results in very difficult to track
USB transmission errors.

This change enables Mynewt specific HFXO management in Soft Device fashion.
2022-01-18 08:12:49 +01:00
Jerzy Kasenberg 168c7095e8 pic32mz: Fix remote_wakeup without OS
Remote wakeup requires 10ms of delay when RESUME bit
is toggled.
It was covered for OS build.
For non-OS build simple delay based on board_millis() is
used to wait required amount of time.
Without this remote wakup may not work.
2022-01-17 17:59:51 +01:00
Jerzy Kasenberg ec01428820 ft9xx: Fix Mynewt build
Includes were moved few lines down to restore build with Mynewt build system.
2022-01-17 09:14:41 +01:00
Ha Thach efc29baead
Merge branch 'master' into port-ft90x 2022-01-17 12:36:39 +07:00
Ha Thach 976405dea3
Merge pull request #1270 from kasjer/kasjer/pic32mz
Driver for Microchip PIC32MZ family
2022-01-16 20:24:14 +07:00
hathach c722133671 change OPT_MCU_PIC32MZ to value of 1900 2022-01-16 15:38:23 +07:00
hathach 45fb60e883 update format correction with actual bus speed 2022-01-16 12:12:57 +07:00
Jerzy Kasenberg da44fe3fc9 nrf5x: Fix EP OUT race conditions
When dcd_edpt_xfer() starts new transfer two separate problems were observed.
For both problems stream of OUT packets was pouring from host.

First problem was that total_len and actual_len were not atomic.
In case where incoming OUT packets are less (63) than MPS (64), actual_len and total_len
are set 63.
Then transfer complete from USBD is called that will schedule next 64 bytes transfer.
At that point incoming packet would start DMA if there is place in RAM, normally
it does not happen since actual_len == total_len.
If packets arrives and interrupt is raised after total_len is set (64) but actual_len is still 63 from
previous transfer, interrupt code sees that there is place in ram (1 byte) and transfer this 1 byte
to buffer that was already filled with previous packet.
To remedy this USB interrupt is blocked during transfer setup.

Second problem can happen when dcd_edpt_xfer setups xfer->total_len and actual_len correctly
but then context switch happens before xfer->data_received is checked.
If during this time two packets arrive one will be copied to RAM second will stay in endpoint with
data_received set to 1.
Then when xfer_edpt_xfer() checks data_receive flag it starts DMA again overwriting data.
To remedy this, data_received is checked together with check if data was already transferred.
If transfer was complete, there is no need to start DMA yet.
In such case data_received will be handled in same place by next xfer_edpt_xfer() correctly.
2022-01-14 09:46:39 +01:00
Jerzy Kasenberg 340309561d Add driver for PIC32MZ MCUs
Device-only driver for PIC32MZ MCUs.
2022-01-07 14:12:42 +01:00
Valentin Milea c2533a45bd Merge branch 'master' into feature/feedback_format 2022-01-07 15:12:07 +02:00
Valentin Milea a284e438f1 Disable feedback format correction by default #1234 2022-01-07 15:02:52 +02:00
EmergReanimator 44406a8940 Enable breakpoints for ARM8M (e.g. cortex-m33) 2022-01-06 09:56:45 +01:00
Scott Shawcroft 47218eeb67
No exceptions on broadcom. Add parens to if 2022-01-05 16:07:17 -08:00
Scott Shawcroft a79ffeb764
Add Raspberry Pi Zero W and Zero 2 W
These are different Broadcom chips. The peripherals are essentially
the same. The main differences are:
* The CPU(s)
* The interrupt controller
* The peripheral base address (but not the peripherals that we use)
2022-01-05 13:47:01 -08:00
Jerzy Kasenberg 2f69649bb6 Add register file for Microchip PIC32MZ 2021-12-31 22:53:27 +01:00
hathach c5d2c82cbb
fix unreachable warnings with keil 2021-12-30 20:59:53 +07:00
hathach adb848f754
update docs 2021-12-29 19:42:34 +07:00
hathach 5f280b3029
add license to dcd file, slightly update readme 2021-12-29 19:25:32 +07:00
hathach 30aba24ddc Merge branch 'master' of https://github.com/t123yh/tinyusb into t123yh-master 2021-12-29 18:27:29 +07:00
kkitayam 2b8b8a3a97 Fix hcd_edpt_clear_stall 2021-12-27 22:55:28 +09:00