summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2022-01-14nrf5x: Fix EP OUT race conditionsJerzy Kasenberg
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-06Enable breakpoints for ARM8M (e.g. cortex-m33)EmergReanimator
2022-01-05No exceptions on broadcom. Add parens to ifScott Shawcroft
2022-01-05Add Raspberry Pi Zero W and Zero 2 WScott Shawcroft
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)
2021-12-27Fix Mynewt build for Microchip PIC32MZ devices.Jerzy Kasenberg
definition of DEBUG breaks Microchip pic32 builds for Mynewt. When MCU is not VALENTYUSB_EPTRI there is no need to have any preprocessor definitions. It may not look like a big deal but for xc32 builds, compiler automatically force-includes some file that have structure with field name DEBUG that result in build error in dcd_eptri.c when this file is not really needed. Moving DEBUG and LOG_USB few lines down should not break eptri builds.
2021-12-09Merge pull request #1233 from vmilea/rp2040_bugfix/ep_closeHa Thach
Handle the closing of endpoints on RP2040
2021-12-09Merge pull request #1221 from kasjer/kasjer/fix-nrf5x-vbus-race-conditionHa Thach
nrf5x: Fix race condition during startup
2021-12-08Handle xfer events before closing EPValentin Milea
2021-12-08nrf5x: Fix race condition during startupJerzy Kasenberg
When NRF5x device is reset by software (after DFU for example), power event is ready from the beginning. When power interrupt is triggered before tud_init() finished USBD_IRQn is enabled before it would be enabled in tud_init(). This in turn may result in BUS RESET event being sent from USB interrupt to USB task when queue is not initialized yet. This scenario often happens in Mynewt build where queue creation takes more time. To prevent this scenario USBD_IRQn is not enabled in power event interrupt handler before dcd_init() was called.
2021-12-07Remove buffer reclaim logsValentin Milea
2021-12-07Merge pull request #1213 from kkitayam/add_hcd_for_msp_exp432e401yHa Thach
Add a HCD driver for MSP-EXP432E401Y
2021-12-04Handle the closing of endpoints on RP2040Valentin Milea
2021-12-04Fix buffer overrun at pipe_read_packet()kkitayam
2021-12-04Fix memory overrun at pipe_read_packet()kkitayam
2021-12-03Merge branch 'master' into add_hcd_for_msp_exp432e401yHa Thach
2021-12-02more chipideahathach
2021-12-01more work to abstract chipidea driverhathach
2021-12-01more ci abstracthathach
2021-12-01add chipidea highspeed controllerhathach
add warning to transdimension for the rename
2021-11-30Add register settings to handle a HUBkkitayam
2021-11-30improve hcd_device_close() for rp2040hathach
2021-11-30on unplug release device endpointsrppicomidi
2021-11-30implement hcd device closerppicomidi
2021-11-29correct 32 button in gamepad hid descriptor templatehathach
2021-11-29Add hcd_musb.ckkitayam
2021-11-27Add a compile condition for dcdkkitayam
2021-11-23more clean uphathach
2021-11-23clean uphathach
2021-11-23fix nrf easy dma race conditionhathach
2021-11-22Merge pull request #1206 from hathach/bcm-dwc2-addressHa Thach
Bcm dwc2 address
2021-11-22use USB_OTG_GLOBAL_BASE instead of hard code valuehathach
2021-11-17clean uphathach
2021-11-15set DCFG_XCVRDLY when using external ULPI highspeed phyhathach
2021-11-08add missing musb type filehathach
2021-11-08rename to simply OPT_MCU_MSP432E4, add msp432e to cihathach
2021-11-08musb work well with tm4c123hathach
2021-11-08merge pull request 670 for tm4c123gxl bsphathach
2021-11-07Fix DCD_EVENT_XFER_COMPLETE was signaled, even after EP is closedkkitayam
2021-11-06Implement dcd_edpt_xfer_fifo for dcd_musbkkitayam
2021-11-06Add dcd_musb.ckkitayam
2021-11-06Add files for msp432e4kkitayam
2021-11-05Merge pull request #1181 from liamfraser/rp2040-hcd-assert-fixHa Thach
Fix invalid assert in RP2040 host mode when compiled in debug mode
2021-11-05bth: Add IAD to BT descriptorJerzy Kasenberg
Bluetooth's specification defines IAD for primary controller. While it seems that Windows and Linux can leave without this, there is no reason TinyUSB should not provide it.
2021-11-05bth: Update driver to interface association changesJerzy Kasenberg
Two interfaces that are required by Bluetooth Primary Controller do not have IAD according to Bluetooth specification. Those two interfaces were opened separately in process_set_config(). Later interface association was inferred for BTH (along with other drivers), since then only one call to open() is place for BTH driver that should prepare both interfaces at once. To make it work again btd_open() parses two interfaces at once.
2021-11-05RP2040 HCD: Move invalid ep->active assert in hw_trans_complete. The check ↵Liam Fraser
for ep->active should only happen if a setup packet was just sent. Otherwise the transaction is handled in hw_handle_buff_status.
2021-11-05Merge pull request #1180 from hathach/add-xmc4500Ha Thach
Add xmc4500
2021-11-05xmc4500 ported, cdc msc example run finehathach
2021-11-05xmc4500 led blinky, button okhathach
2021-11-04broadcom/dcd: Fix mynewt buildJerzy Kasenberg
dcd_synopsys.c included broadcom/interrupts.h before preprocessor check whether file should be used. Since mynewt build does not include all folders it resulted in build error. Now offending include is moved few lines after preprocessor check.
2021-11-04adding g4 family with g474nucleo, able to blink led and buttonhathach