summaryrefslogtreecommitdiff
path: root/src/portable
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-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-30implement hcd device closerppicomidi
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-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-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-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
2021-11-04Merge pull request #1163 from hathach/generalize-synopsys-dwc2Ha Thach
Generalize synopsys dwc2
2021-11-04add hint/question with ISBhathach
2021-11-04fix issue with bcm2711 caching issue by ading ISB() after dwc2_dcd_int_enable90hathach
also add hwcfg_list for reference
2021-11-03clean uphathach
2021-11-02grouping stm32L4 family in bsphathach
2021-11-02minor clean uphathach
2021-11-02add fix for stm32l4 (version 3.10a) which generate transfer complete when ↵hathach
setup recieved and control out data complete
2021-10-31change F207 to use new dwc2hathach
2021-10-30remove dcd_efm32hathach
2021-10-30add support for EFM32GGhathach
merge GG12 GG12 to simply OPT_MCU_EFM32GG