summaryrefslogtreecommitdiff
path: root/src/portable/nxp/lpc_ip3511
AgeCommit message (Collapse)Author
2026-08-18dcd(ip3511): fix DEVCMDSTAT write-1-to-clear handling and EP0 setup raceshathach
DEVCMDSTAT mixes read/write fields with write-1-to-clear latches, so a blind read-modify-write writes a pending latch back as a one and silently clears it - a setup consumed that way strands EP0. Mask the latches on every update. The setup path follows the manual's order: acknowledge the latch, then read the payload. The EP0 IN interrupt is cleared along with EP0 OUT, as the control endpoint flowchart requires - a control IN completion latched before the setup must not reach usbd after it, where it would be applied to the request the setup just started and arm its status stage early. The payload is copied a byte at a time out of a buffer now declared volatile: the controller DMAs a new setup packet into it as soon as the latch is cleared, and C orders volatile accesses only against each other, so gcc sinks a plain memcpy below the guard read that follows at -O2 and -O3 - leaving only -Os, the level CI builds, correct.
2026-07-12dcd(ip3511): clear Active directly on stall/iso-activate, keep EPSKIP for reopenhathach
EPSKIP raises a transfer completion, so using it on the stall path let the class re-arm the endpoint and Active+Stall never actually stalled (usbtest case 13); write bare Active=0 instead, and retire skipped transfers on endpoint reopen where the completion is wanted. Verified: usbtest 30/30 on lpcxpresso11u37. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-09dcd(ip3511): iso alloc/activate; retire armed buffers via EPSKIPhathach
Clear Active before Stall so a queued endpoint actually halts (UM11126 41.8.1); use the sanctioned EPSKIP+wait sequence for stall/reopen/activate. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01HeF2gZ1M7GWkz6Av4BpKPg
2026-07-02license: use SPDX identifiers for src/ headers (#3749)Ha Thach
* license: use SPDX identifiers for src/ headers Replace the full ~20-line MIT license boilerplate on every src/ file with a two-line SPDX tag (SPDX-FileCopyrightText + SPDX-License-Identifier), following the REUSE convention used by CircuitPython and the Linux kernel. Removes ~3500 lines of duplicated boilerplate.
2026-04-17fix some Wconversion warningshathach
2025-11-19Merge remote-tracking branch 'tinyusb/master' into ↵HiFiPhile
copilot/fix-dcd-edpt-xfer-issue Signed-off-by: HiFiPhile <[email protected]>
2025-11-17make TUP_DCD_EDPT_ISO_ALLOC i.e dcd_edpt_iso_alloc()/dcd_edpt_iso_activate() ↵hathach
as default driver implementation. dcd_edpt_close() is deprecated and will be removed from all driver in the future.
2025-10-22Apply suggestions from code reviewZixun LI
Co-authored-by: Copilot <[email protected]>
2025-10-22Fix copilot issuesMengsk
Signed-off-by: Mengsk <[email protected]>
2025-10-22Add is_isr parameter to dcd_edpt_xfer and dcd_edpt_xfer_fifocopilot-swe-agent[bot]
Co-authored-by: HiFiPhile <[email protected]>
2025-03-16Fix 2 IAR warnings.HiFiPhile
Signed-off-by: HiFiPhile <[email protected]>
2024-10-14change dcd_init() return from void to boolhathach
2024-10-14change the tusb_rhport_init_t struct, exclude the rhport to make API more ↵hathach
consistent
2024-10-11change dcd_init() to take rhport structhathach
2024-05-02add cmake for lpc15hathach
2024-05-02add cmake for lpc11hathach
2024-04-23clang work with lpc55hathach
2023-08-09update to dcd ip3511 to add work-around for lpc54628 usb hs errata USB.1 and ↵hathach
USB.2 msc is mounted, but device couldn't work reliably and got constant reset due to other errata probably.
2023-07-24rename CFG_TUSB_MEM_SECTION to CFG_TUD_MEM_SECTION in device stackhathach
CFG_TUD_MEM_SECTION is default to CFG_TUSB_MEM_SECTION
2023-03-17fix trailing space and new linehathach
temporarily disable codespell
2023-01-08ip3511 : Fix IAR build.MasterPhi
2022-10-24use dummy for all ZLP for ip3511, fix lpc55 build with DEBUG=1hathach
2022-10-21unused (void) casttswan-quasi
2022-10-20typo fixtswan-quasi
2022-10-20dummy buffer only on EP0 OUT ZLPstswan-quasi
2022-10-17minor renamehathach
2022-10-13(void) rhport for unused parametertswan-quasi
2022-10-12double cast of pointer to remove errortswan-quasi
2022-10-11lpc55s69 isochronous, dummy address for endpoint buffers to prevent ↵tswan-quasi
accidental writes
2022-03-07added dcd_sof_enable() stubs for all other portshathach
2022-02-25rename TUSB_OPT_DEVICE_ENABLED to CFG_TUD_ENABLEDhathach
TUSB_OPT_DEVICE_ENABLED still usable for backward compatible
2021-08-26add dcd_edpt_close_all() for clear existing configured statehathach
correctly responded to TD 9.13 Set Configuration Test
2021-04-26use correct NBYTES_MAX for full and high speedhathach
2021-04-26clean uphathach
2021-04-26ip3511 correct buffer offset, nbytes layout for highspeed port1hathach
able to get passed enumeration and up to READ10
2021-04-24fix unaligned access with port1 hshathach
2021-04-24lpc55 improve multiple controller supporthathach
port1 highspeed requires USB_RAM
2021-04-24lpc55 correct bus_reset with highspeed on support controllerhathach
correct hsphy init for family
2021-04-24lpc55 better multiport supporthathach
2021-04-24update dcd ip3511 for better multiple rhport supporthathach
2021-01-08use dcd_event_bus_reset() with speed to replace bus_signalhathach
2020-04-17complete remove dcd_set_config(), fix unit testhathach
2020-04-17mass rename tud/dcd_irq_handler to tud/dcd_init_handlerhathach
2020-04-16implement dcd disconnect/connect for lpc ip3511hathach
2020-04-06add tud_irq_handler() for all lpc ip3511 (13, 15, 11)hathach
2019-10-04adding lpc1549, but couldnt recieve setup packet, though setup received ↵hathach
interrupt is triggered
2019-09-0555s69 device work with usb0hathach
2019-09-01dma of lpc54114 can also execute up to 64 bytes each transferhathach
There is still issue with cdc_msc_hid example
2019-09-01rename lpc_usbd to lpc_ip3511hathach