Skip to content

OUT direction ZLP causes corrupt transfer if DMA disabled (IEC-414) #315

@projectgus

Description

@projectgus

Answers checklist.

  • I have read the component documentation ESP-IDF Components and the issue is not addressed there.
  • I am using target and esp-idf version as defined in component's idf_component.yml
  • I have searched the issue tracker for a similar issue and not found any related issue.

Which component are you using? If you choose Other, provide details in More Information.

device/esp_tinyusb

ESP-IDF version.

v5.5.1

Development Kit.

ESP32-S3 DevKitC

Used Component version.

tinyusb v0.18.0~4

More Information.

When DMA is disabled (CONFIG_TINYUSB_MODE_SLAVE is set), if the host sends an OUT zero length packet (ZLP) then TinyUSB receives a corrupt transfer (64 bytes instead of 0, with whatever was previously in the buffer).

This is most obvious for USB-CDC driver and MacOS host when transmitting a multiple of the endpoint size (64 bytes), but can be the case any time that the host sends a zero length packet.

A fix is already merged in upstream TinyUSB: hathach/tinyusb#3293 but it merged just after the upstream 0.19.0 release so may not be released for some time.

I'm not necessarily asking for it to be fixed early in the Espressif fork, but thought I'd report it anyhow.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions