summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-12-15 13:28:24 +0700
committerhathach <[email protected]>2025-12-15 13:28:24 +0700
commit1583864e0b1379cc2f03717f1bed2429e5473407 (patch)
treecfd6ebe07681aad890065c1f2cf0524adbe634fa
parent80886fb32a9610d863246726950ffefeb2ffb21b (diff)
minor clean up
-rw-r--r--README.rst260
-rw-r--r--examples/host/bare_api/only.txt15
-rw-r--r--examples/host/cdc_msc_hid/only.txt15
-rw-r--r--examples/host/cdc_msc_hid_freertos/only.txt13
-rw-r--r--examples/host/device_info/only.txt13
-rw-r--r--examples/host/hid_controller/only.txt15
-rw-r--r--examples/host/midi_rx/only.txt13
-rw-r--r--examples/host/msc_file_explorer/only.txt15
-rw-r--r--hw/bsp/stm32u5/family.mk6
-rw-r--r--src/device/usbd.c6
-rw-r--r--src/portable/st/stm32_fsdev/fsdev_common.c16
-rw-r--r--src/portable/st/stm32_fsdev/hcd_stm32_fsdev.c10
12 files changed, 211 insertions, 186 deletions
diff --git a/README.rst b/README.rst
index 75f93f656..da1f49fcd 100644
--- a/README.rst
+++ b/README.rst
@@ -129,138 +129,134 @@ TinyUSB is completely thread-safe by pushing all Interrupt Service Request (ISR)
Supported CPUs
--------------
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Manufacturer | Family | Device | Host | Highspeed | Driver | Note |
-+==============+=============================+========+======+===========+========================+========================+
-| Allwinner | F1C100s/F1C200s | ✔ | | ✔ | sunxi | musb variant |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Analog | MAX3421E | | ✔ | ✖ | max3421 | via SPI |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | MAX32 650, 666, 690, | ✔ | | ✔ | musb | 1-dir ep |
-| | MAX78002 | | | | | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Artery AT32 | F403a_407, F413 | ✔ | | | fsdev | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | F415, F435_437, F423, F425 | ✔ | ✔ | | dwc2 | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | F402_F405 | ✔ | ✔ | ✔ | dwc2 | F405 is HS |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Bridgetek | FT90x | ✔ | | ✔ | ft9xx | 1-dir ep |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Broadcom | BCM2711, BCM2837 | ✔ | | ✔ | dwc2 | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Dialog | DA1469x | ✔ | ✖ | ✖ | da146xx | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Espressif | S2, S3 | ✔ | ✔ | ✖ | dwc2 | |
-| ESP32 +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | P4 | ✔ | ✔ | ✔ | dwc2 | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | H4 | ✔ | ✔ | ✖ | dwc2 | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| GigaDevice | GD32VF103 | ✔ | | ✖ | dwc2 | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Infineon | XMC4500 | ✔ | ✔ | ✖ | dwc2 | |
-+--------------+-----+-----------------------+--------+------+-----------+------------------------+------------------------+
-| MicroChip | SAM | D11, D21, L21, L22 | ✔ | | ✖ | samd | |
-| | +-----------------------+--------+------+-----------+------------------------+------------------------+
-| | | D51, E5x | ✔ | | ✖ | samd | |
-| | +-----------------------+--------+------+-----------+------------------------+------------------------+
-| | | G55 | ✔ | | ✖ | samg | 1-dir ep |
-| | +-----------------------+--------+------+-----------+------------------------+------------------------+
-| | | E70,S70,V70,V71 | ✔ | | ✔ | samx7x | 1-dir ep |
-| +-----+-----------------------+--------+------+-----------+------------------------+------------------------+
-| | PIC | 24 | ✔ | | | pic | ci_fs variant |
-| | +-----------------------+--------+------+-----------+------------------------+------------------------+
-| | | 32 mm, mk, mx | ✔ | | | pic | ci_fs variant |
-| | +-----------------------+--------+------+-----------+------------------------+------------------------+
-| | | dsPIC33 | ✔ | | | pic | ci_fs variant |
-| | +-----------------------+--------+------+-----------+------------------------+------------------------+
-| | | 32mz | ✔ | | | pic32mz | musb variant |
-+--------------+-----+-----------------------+--------+------+-----------+------------------------+------------------------+
-| MindMotion | mm32 | ✔ | | ✖ | mm32f327x_otg | ci_fs variant |
-+--------------+-----+-----------------------+--------+------+-----------+------------------------+------------------------+
-| NordicSemi | nRF 52833, 52840, 5340 | ✔ | ✖ | ✖ | nrf5x | only ep8 is IO |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Nuvoton | NUC120 | ✔ | ✖ | ✖ | nuc120 | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | NUC121/NUC125 | ✔ | ✖ | ✖ | nuc121 | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | NUC126 | ✔ | ✖ | ✖ | nuc121 | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | NUC505 | ✔ | | ✔ | nuc505 | |
-+--------------+---------+-------------------+--------+------+-----------+------------------------+------------------------+
-| NXP | iMXRT | RT 10xx, 11xx | ✔ | ✔ | ✔ | ci_hs, ehci | |
-| +---------+-------------------+--------+------+-----------+------------------------+------------------------+
-| | Kinetis | KL | ✔ | ⚠ | ✖ | ci_fs, khci | |
-| | +-------------------+--------+------+-----------+------------------------+------------------------+
-| | | K32L2 | ✔ | | ✖ | khci | ci_fs variant |
-| +---------+-------------------+--------+------+-----------+------------------------+------------------------+
-| | LPC | 11u, 13, 15 | ✔ | ✖ | ✖ | lpc_ip3511 | |
-| | +-------------------+--------+------+-----------+------------------------+------------------------+
-| | | 17, 40 | ✔ | ⚠ | ✖ | lpc17_40, ohci | |
-| | +-------------------+--------+------+-----------+------------------------+------------------------+
-| | | 18, 43 | ✔ | ✔ | ✔ | ci_hs, ehci | |
-| | +-------------------+--------+------+-----------+------------------------+------------------------+
-| | | 51u | ✔ | ✖ | ✖ | lpc_ip3511 | |
-| | +-------------------+--------+------+-----------+------------------------+------------------------+
-| | | 54, 55 | ✔ | | ✔ | lpc_ip3511 | |
-| +---------+-------------------+--------+------+-----------+------------------------+------------------------+
-| | MCX | N9 | ✔ | | ✔ | ci_fs, ci_hs, ehci | |
-| | +-------------------+--------+------+-----------+------------------------+------------------------+
-| | | A15 | ✔ | | | ci_fs | |
-+--------------+---------+-------------------+--------+------+-----------+------------------------+------------------------+
-| Raspberry Pi | RP2040, RP2350 | ✔ | ✔ | ✖ | rp2040, pio_usb | |
-+--------------+-----+-----------------------+--------+------+-----------+------------------------+------------------------+
-| Renesas | RX | 63N, 65N, 72N | ✔ | ✔ | ✖ | rusb2 | |
-| +-----+-----------------------+--------+------+-----------+------------------------+------------------------+
-| | RA | 4M1, 4M3, 6M1 | ✔ | ✔ | ✖ | rusb2 | |
-| | +-----------------------+--------+------+-----------+------------------------+------------------------+
-| | | 6M5 | ✔ | ✔ | ✔ | rusb2 | |
-+--------------+-----+-----------------------+--------+------+-----------+------------------------+------------------------+
-| Silabs | EFM32GG12 | ✔ | | ✖ | dwc2 | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| Sony | CXD56 | ✔ | ✖ | ✔ | cxd56 | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| ST STM32 | F0, F3, L0, L1, L5, WBx5 | ✔ | ✖ | ✖ | stm32_fsdev | |
-| +----+------------------------+--------+------+-----------+------------------------+------------------------+
-| | F1 | 102, 103 | ✔ | ✖ | ✖ | stm32_fsdev | |
-| | +------------------------+--------+------+-----------+------------------------+------------------------+
-| | | 105, 107 | ✔ | ✔ | ✖ | dwc2 | |
-| +----+------------------------+--------+------+-----------+------------------------+------------------------+
-| | F2, F4, F7, H7, H7RS | ✔ | ✔ | ✔ | dwc2 | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | C0, G0, H5 | ✔ | ✔ | ✖ | stm32_fsdev | Host tested on C0, H5 |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | G4 | ✔ | ✖ | ✖ | stm32_fsdev | |
-| +----+------------------------+--------+------+-----------+------------------------+------------------------+
-| | L4 | 4x2, 4x3 | ✔ | ✖ | ✖ | stm32_fsdev | |
-| | +------------------------+--------+------+-----------+------------------------+------------------------+
-| | | 4x5, 4x6, 4+ | ✔ | ✔ | ✖ | dwc2 | |
-| +----+------------------------+--------+------+-----------+------------------------+------------------------+
-| | N6 | ✔ | ✔ | ✔ | dwc2 | |
-| +----+------------------------+--------+------+-----------+------------------------+------------------------+
-| | U0 | ✔ | ✖ | ✖ | stm32_fsdev | |
-| +----+------------------------+--------+------+-----------+------------------------+------------------------+
-| | U3 | ✔ | ✔ | ✖ | stm32_fsdev | Host tested on C0, H5 |
-| +----+------------------------+--------+------+-----------+------------------------+------------------------+
-| | U5 | 535, 545 | ✔ | ✔ | ✖ | stm32_fsdev | Host tested on C0, H5 |
-| | +------------------------+--------+------+-----------+------------------------+------------------------+
-| | | 575, 585 | ✔ | ✔ | ✖ | dwc2 | |
-| | +------------------------+--------+------+-----------+------------------------+------------------------+
-| | | 59x,5Ax,5Fx,5Gx | ✔ | ✔ | ✔ | dwc2 | |
-+--------------+----+------------------------+--------+------+-----------+------------------------+------------------------+
-| TI | MSP430 | ✔ | ✖ | ✖ | msp430x5xx | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | MSP432E4, TM4C123 | ✔ | | ✖ | musb | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| ValentyUSB | eptri | ✔ | ✖ | ✖ | eptri | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
-| WCH | CH32F20x | ✔ | | ✔ | ch32_usbhs | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | CH32V20x | ✔ | | ✖ | stm32_fsdev/ch32_usbfs | |
-| +-----------------------------+--------+------+-----------+------------------------+------------------------+
-| | CH32V305, CH32V307 | ✔ | | ✔ | ch32_usbfs/hs | |
-+--------------+-----------------------------+--------+------+-----------+------------------------+------------------------+
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Manufacturer | Family | Device | Host | Highspeed | Driver | Note |
++==============+=============================+========+======+===========+========================+====================+
+| Allwinner | F1C100s/F1C200s | ✔ | | ✔ | sunxi | musb variant |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Analog | MAX3421E | | ✔ | ✖ | max3421 | via SPI |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | MAX32 650, 666, 690, | ✔ | | ✔ | musb | 1-dir ep |
+| | MAX78002 | | | | | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Artery AT32 | F403a_407, F413 | ✔ | | | fsdev | Packet SRAM 512 |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | F415, F435_437, F423, F425 | ✔ | ✔ | | dwc2 | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | F402_F405 | ✔ | ✔ | ✔ | dwc2 | F405 is HS |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Bridgetek | FT90x | ✔ | | ✔ | ft9xx | 1-dir ep |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Broadcom | BCM2711, BCM2837 | ✔ | | ✔ | dwc2 | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Dialog | DA1469x | ✔ | ✖ | ✖ | da146xx | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Espressif | S2, S3 | ✔ | ✔ | ✖ | dwc2 | |
+| ESP32 +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | P4 | ✔ | ✔ | ✔ | dwc2 | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | H4 | ✔ | ✔ | ✖ | dwc2 | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| GigaDevice | GD32VF103 | ✔ | | ✖ | dwc2 | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Infineon | XMC4500 | ✔ | ✔ | ✖ | dwc2 | |
++--------------+-----+-----------------------+--------+------+-----------+------------------------+--------------------+
+| MicroChip | SAM | D11, D21, L21, L22 | ✔ | | ✖ | samd | |
+| | +-----------------------+--------+------+-----------+------------------------+--------------------+
+| | | D51, E5x | ✔ | | ✖ | samd | |
+| | +-----------------------+--------+------+-----------+------------------------+--------------------+
+| | | G55 | ✔ | | ✖ | samg | 1-dir ep |
+| | +-----------------------+--------+------+-----------+------------------------+--------------------+
+| | | E70,S70,V70,V71 | ✔ | | ✔ | samx7x | 1-dir ep |
+| +-----+-----------------------+--------+------+-----------+------------------------+--------------------+
+| | PIC | 24 | ✔ | | | pic | ci_fs variant |
+| | +-----------------------+--------+------+-----------+------------------------+--------------------+
+| | | 32 mm, mk, mx | ✔ | | | pic | ci_fs variant |
+| | +-----------------------+--------+------+-----------+------------------------+--------------------+
+| | | dsPIC33 | ✔ | | | pic | ci_fs variant |
+| | +-----------------------+--------+------+-----------+------------------------+--------------------+
+| | | 32mz | ✔ | | | pic32mz | musb variant |
++--------------+-----+-----------------------+--------+------+-----------+------------------------+--------------------+
+| MindMotion | mm32 | ✔ | | ✖ | mm32f327x_otg | ci_fs variant |
++--------------+-----+-----------------------+--------+------+-----------+------------------------+--------------------+
+| NordicSemi | nRF 52833, 52840, 5340 | ✔ | ✖ | ✖ | nrf5x | only ep8 is ISO |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Nuvoton | NUC120 | ✔ | ✖ | ✖ | nuc120 | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | NUC121/NUC125, NUC126 | ✔ | ✖ | ✖ | nuc121 | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | NUC505 | ✔ | | ✔ | nuc505 | |
++--------------+---------+-------------------+--------+------+-----------+------------------------+--------------------+
+| NXP | iMXRT | RT 10xx, 11xx | ✔ | ✔ | ✔ | ci_hs, ehci | |
+| +---------+-------------------+--------+------+-----------+------------------------+--------------------+
+| | Kinetis | KL | ✔ | ⚠ | ✖ | ci_fs, khci | |
+| | +-------------------+--------+------+-----------+------------------------+--------------------+
+| | | K32L2 | ✔ | | ✖ | khci | ci_fs variant |
+| +---------+-------------------+--------+------+-----------+------------------------+--------------------+
+| | LPC | 11u, 13, 15 | ✔ | ✖ | ✖ | lpc_ip3511 | |
+| | +-------------------+--------+------+-----------+------------------------+--------------------+
+| | | 17, 40 | ✔ | ⚠ | ✖ | lpc17_40, ohci | |
+| | +-------------------+--------+------+-----------+------------------------+--------------------+
+| | | 18, 43 | ✔ | ✔ | ✔ | ci_hs, ehci | |
+| | +-------------------+--------+------+-----------+------------------------+--------------------+
+| | | 51u | ✔ | ✖ | ✖ | lpc_ip3511 | |
+| | +-------------------+--------+------+-----------+------------------------+--------------------+
+| | | 54, 55 | ✔ | | ✔ | lpc_ip3511 | |
+| +---------+-------------------+--------+------+-----------+------------------------+--------------------+
+| | MCX | N9 | ✔ | | ✔ | ci_fs, ci_hs, ehci | |
+| | +-------------------+--------+------+-----------+------------------------+--------------------+
+| | | A15 | ✔ | | | ci_fs | |
++--------------+---------+-------------------+--------+------+-----------+------------------------+--------------------+
+| Raspberry Pi | RP2040, RP2350 | ✔ | ✔ | ✖ | rp2040, pio_usb | |
++--------------+-----+-----------------------+--------+------+-----------+------------------------+--------------------+
+| Renesas | RX | 63N, 65N, 72N | ✔ | ✔ | ✖ | rusb2 | |
+| +-----+-----------------------+--------+------+-----------+------------------------+--------------------+
+| | RA | 4M1, 4M3, 6M1 | ✔ | ✔ | ✖ | rusb2 | |
+| | +-----------------------+--------+------+-----------+------------------------+--------------------+
+| | | 6M5 | ✔ | ✔ | ✔ | rusb2 | |
++--------------+-----+-----------------------+--------+------+-----------+------------------------+--------------------+
+| Silabs | EFM32GG12 | ✔ | | ✖ | dwc2 | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| Sony | CXD56 | ✔ | ✖ | ✔ | cxd56 | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| ST STM32 | F0, F3, L0, L1, L5, WBx5 | ✔ | ✖ | ✖ | stm32_fsdev | |
+| +----+------------------------+--------+------+-----------+------------------------+--------------------+
+| | F1 | 102, 103 | ✔ | ✖ | ✖ | stm32_fsdev | Packet SRAM 512 |
+| | +------------------------+--------+------+-----------+------------------------+--------------------+
+| | | 105, 107 | ✔ | ✔ | ✖ | dwc2 | |
+| +----+------------------------+--------+------+-----------+------------------------+--------------------+
+| | F2, F4, F7, H7, H7RS | ✔ | ✔ | ✔ | dwc2 | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | C0, G0, H5, U3 | ✔ | ✔ | ✖ | stm32_fsdev | Packet SRAM 2KB |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | G4 | ✔ | ✖ | ✖ | stm32_fsdev | Packet SRAM 1KB |
+| +----+------------------------+--------+------+-----------+------------------------+--------------------+
+| | L4 | 4x2, 4x3 | ✔ | ✖ | ✖ | stm32_fsdev | Packet SRAM 1KB |
+| | +------------------------+--------+------+-----------+------------------------+--------------------+
+| | | 4x5, 4x6, 4+ | ✔ | ✔ | ✖ | dwc2 | |
+| +----+------------------------+--------+------+-----------+------------------------+--------------------+
+| | N6 | ✔ | ✔ | ✔ | dwc2 | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | U0 | ✔ | ✖ | ✖ | stm32_fsdev | Packet SRAM 1KB |
+| +----+------------------------+--------+------+-----------+------------------------+--------------------+
+| | U5 | 535, 545 | ✔ | ✔ | ✖ | stm32_fsdev | Packet SRAM 2KB |
+| | +------------------------+--------+------+-----------+------------------------+--------------------+
+| | | 575, 585 | ✔ | ✔ | ✖ | dwc2 | |
+| | +------------------------+--------+------+-----------+------------------------+--------------------+
+| | | 59x,5Ax,5Fx,5Gx | ✔ | ✔ | ✔ | dwc2 | |
++--------------+----+------------------------+--------+------+-----------+------------------------+--------------------+
+| TI | MSP430 | ✔ | ✖ | ✖ | msp430x5xx | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | MSP432E4, TM4C123 | ✔ | | ✖ | musb | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| ValentyUSB | eptri | ✔ | ✖ | ✖ | eptri | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
+| WCH | CH32F20x | ✔ | | ✔ | ch32_usbhs | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | CH32V20x | ✔ | | ✖ | stm32_fsdev/ch32_usbfs | |
+| +-----------------------------+--------+------+-----------+------------------------+--------------------+
+| | CH32V305, CH32V307 | ✔ | | ✔ | ch32_usbfs/hs | |
++--------------+-----------------------------+--------+------+-----------+------------------------+--------------------+
Table Legend
^^^^^^^^^^^^
diff --git a/examples/host/bare_api/only.txt b/examples/host/bare_api/only.txt
index 4cd457879..52e51242c 100644
--- a/examples/host/bare_api/only.txt
+++ b/examples/host/bare_api/only.txt
@@ -1,3 +1,5 @@
+family:samd21
+family:samd5x_e5x
mcu:CH32V20X
mcu:KINETIS_KL
mcu:LPC175X_6X
@@ -5,20 +7,21 @@ mcu:LPC177X_8X
mcu:LPC18XX
mcu:LPC40XX
mcu:LPC43XX
-mcu:MIMXRT1XXX
+mcu:MAX3421
mcu:MIMXRT10XX
mcu:MIMXRT11XX
-mcu:RP2040
+mcu:MIMXRT1XXX
mcu:MSP432E4
-mcu:RX65X
mcu:RAXXX
-mcu:MAX3421
+mcu:RP2040
+mcu:RX65X
mcu:STM32C0
mcu:STM32F4
mcu:STM32F7
+mcu:STM32G0
mcu:STM32H5
mcu:STM32H7
mcu:STM32H7RS
mcu:STM32N6
-family:samd21
-family:samd5x_e5x
+mcu:STM32U3
+mcu:STM32U5
diff --git a/examples/host/cdc_msc_hid/only.txt b/examples/host/cdc_msc_hid/only.txt
index 4cd457879..52e51242c 100644
--- a/examples/host/cdc_msc_hid/only.txt
+++ b/examples/host/cdc_msc_hid/only.txt
@@ -1,3 +1,5 @@
+family:samd21
+family:samd5x_e5x
mcu:CH32V20X
mcu:KINETIS_KL
mcu:LPC175X_6X
@@ -5,20 +7,21 @@ mcu:LPC177X_8X
mcu:LPC18XX
mcu:LPC40XX
mcu:LPC43XX
-mcu:MIMXRT1XXX
+mcu:MAX3421
mcu:MIMXRT10XX
mcu:MIMXRT11XX
-mcu:RP2040
+mcu:MIMXRT1XXX
mcu:MSP432E4
-mcu:RX65X
mcu:RAXXX
-mcu:MAX3421
+mcu:RP2040
+mcu:RX65X
mcu:STM32C0
mcu:STM32F4
mcu:STM32F7
+mcu:STM32G0
mcu:STM32H5
mcu:STM32H7
mcu:STM32H7RS
mcu:STM32N6
-family:samd21
-family:samd5x_e5x
+mcu:STM32U3
+mcu:STM32U5
diff --git a/examples/host/cdc_msc_hid_freertos/only.txt b/examples/host/cdc_msc_hid_freertos/only.txt
index 2322d4ecf..4cff741c3 100644
--- a/examples/host/cdc_msc_hid_freertos/only.txt
+++ b/examples/host/cdc_msc_hid_freertos/only.txt
@@ -1,21 +1,24 @@
+family:espressif
+family:samd21
+family:samd5x_e5x
mcu:LPC175X_6X
mcu:LPC177X_8X
mcu:LPC18XX
mcu:LPC40XX
mcu:LPC43XX
-mcu:MIMXRT1XXX
+mcu:MAX3421
mcu:MIMXRT10XX
mcu:MIMXRT11XX
+mcu:MIMXRT1XXX
mcu:MSP432E4
mcu:RX65X
-mcu:MAX3421
mcu:STM32C0
mcu:STM32F4
mcu:STM32F7
+mcu:STM32G0
mcu:STM32H5
mcu:STM32H7
mcu:STM32H7RS
mcu:STM32N6
-family:espressif
-family:samd21
-family:samd5x_e5x
+mcu:STM32U3
+mcu:STM32U5
diff --git a/examples/host/device_info/only.txt b/examples/host/device_info/only.txt
index 5b68f0774..becc8252d 100644
--- a/examples/host/device_info/only.txt
+++ b/examples/host/device_info/only.txt
@@ -1,3 +1,6 @@
+family:espressif
+family:samd21
+family:samd5x_e5x
mcu:CH32V20X
mcu:KINETIS_KL
mcu:LPC175X_6X
@@ -6,20 +9,20 @@ mcu:LPC18XX
mcu:LPC40XX
mcu:LPC43XX
mcu:MAX3421
-mcu:MIMXRT1XXX
mcu:MIMXRT10XX
mcu:MIMXRT11XX
+mcu:MIMXRT1XXX
mcu:MSP432E4
+mcu:RAXXX
mcu:RP2040
mcu:RX65X
-mcu:RAXXX
mcu:STM32C0
mcu:STM32F4
mcu:STM32F7
+mcu:STM32G0
mcu:STM32H5
mcu:STM32H7
mcu:STM32H7RS
mcu:STM32N6
-family:espressif
-family:samd21
-family:samd5x_e5x
+mcu:STM32U3
+mcu:STM32U5
diff --git a/examples/host/hid_controller/only.txt b/examples/host/hid_controller/only.txt
index b859b4cc0..35b7c2361 100644
--- a/examples/host/hid_controller/only.txt
+++ b/examples/host/hid_controller/only.txt
@@ -1,3 +1,5 @@
+family:samd21
+family:samd5x_e5x
mcu:CH32V20X
mcu:KINETIS_KL
mcu:LPC175X_6X
@@ -5,19 +7,20 @@ mcu:LPC177X_8X
mcu:LPC18XX
mcu:LPC40XX
mcu:LPC43XX
-mcu:MIMXRT1XXX
+mcu:MAX3421
mcu:MIMXRT10XX
mcu:MIMXRT11XX
-mcu:RP2040
+mcu:MIMXRT1XXX
mcu:MSP432E4
-mcu:RX65X
mcu:RAXXX
-mcu:MAX3421
+mcu:RP2040
+mcu:RX65X
mcu:STM32F4
mcu:STM32F7
+mcu:STM32G0
mcu:STM32H5
mcu:STM32H7
mcu:STM32H7RS
mcu:STM32N6
-family:samd21
-family:samd5x_e5x
+mcu:STM32U3
+mcu:STM32U5
diff --git a/examples/host/midi_rx/only.txt b/examples/host/midi_rx/only.txt
index 09d725860..a3976f08d 100644
--- a/examples/host/midi_rx/only.txt
+++ b/examples/host/midi_rx/only.txt
@@ -1,7 +1,9 @@
+family:samd21
+family:samd5x_e5x
mcu:CH32V20X
+mcu:ESP32P4
mcu:ESP32S2
mcu:ESP32S3
-mcu:ESP32P4
mcu:KINETIS_KL
mcu:LPC175X_6X
mcu:LPC177X_8X
@@ -9,19 +11,20 @@ mcu:LPC18XX
mcu:LPC40XX
mcu:LPC43XX
mcu:MAX3421
-mcu:MIMXRT1XXX
mcu:MIMXRT10XX
mcu:MIMXRT11XX
+mcu:MIMXRT1XXX
mcu:MSP432E4
+mcu:RAXXX
mcu:RP2040
mcu:RX65X
-mcu:RAXXX
mcu:STM32C0
mcu:STM32F4
mcu:STM32F7
+mcu:STM32G0
mcu:STM32H5
mcu:STM32H7
mcu:STM32H7RS
mcu:STM32N6
-family:samd21
-family:samd5x_e5x
+mcu:STM32U3
+mcu:STM32U5
diff --git a/examples/host/msc_file_explorer/only.txt b/examples/host/msc_file_explorer/only.txt
index 4cd457879..52e51242c 100644
--- a/examples/host/msc_file_explorer/only.txt
+++ b/examples/host/msc_file_explorer/only.txt
@@ -1,3 +1,5 @@
+family:samd21
+family:samd5x_e5x
mcu:CH32V20X
mcu:KINETIS_KL
mcu:LPC175X_6X
@@ -5,20 +7,21 @@ mcu:LPC177X_8X
mcu:LPC18XX
mcu:LPC40XX
mcu:LPC43XX
-mcu:MIMXRT1XXX
+mcu:MAX3421
mcu:MIMXRT10XX
mcu:MIMXRT11XX
-mcu:RP2040
+mcu:MIMXRT1XXX
mcu:MSP432E4
-mcu:RX65X
mcu:RAXXX
-mcu:MAX3421
+mcu:RP2040
+mcu:RX65X
mcu:STM32C0
mcu:STM32F4
mcu:STM32F7
+mcu:STM32G0
mcu:STM32H5
mcu:STM32H7
mcu:STM32H7RS
mcu:STM32N6
-family:samd21
-family:samd5x_e5x
+mcu:STM32U3
+mcu:STM32U5
diff --git a/hw/bsp/stm32u5/family.mk b/hw/bsp/stm32u5/family.mk
index 79f181a68..47aed10a9 100644
--- a/hw/bsp/stm32u5/family.mk
+++ b/hw/bsp/stm32u5/family.mk
@@ -37,11 +37,7 @@ SRC_C += \
$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_rcc_ex.c \
$(ST_HAL_DRIVER)/Src/stm32$(ST_FAMILY)xx_hal_uart.c
-ifeq ($(MCU_VARIANT),stm32u545xx)
-SRC_C += \
- src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c \
- src/portable/st/stm32_fsdev/fsdev_common.c
-else ifeq ($(MCU_VARIANT),stm32u535xx)
+ifneq ($(filter stm32u545xx stm32u535xx,$(MCU_VARIANT)),)
SRC_C += \
src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c \
src/portable/st/stm32_fsdev/fsdev_common.c
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 5365ae2c2..1a9eb630c 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -574,6 +574,8 @@ bool tud_deinit(uint8_t rhport) {
TU_LOG_USBD("USBD deinit on controller %u\r\n", rhport);
+ const uint8_t cfg_num = _usbd_dev.cfg_num;
+
// Deinit device controller driver
dcd_int_disable(rhport);
dcd_disconnect(rhport);
@@ -604,7 +606,9 @@ bool tud_deinit(uint8_t rhport) {
_usbd_rhport = RHPORT_INVALID;
- tud_umount_cb();
+ if (cfg_num > 0) {
+ tud_umount_cb();
+ }
return true;
}
diff --git a/src/portable/st/stm32_fsdev/fsdev_common.c b/src/portable/st/stm32_fsdev/fsdev_common.c
index 60ef339a6..5d60ad9a2 100644
--- a/src/portable/st/stm32_fsdev/fsdev_common.c
+++ b/src/portable/st/stm32_fsdev/fsdev_common.c
@@ -78,7 +78,9 @@ void fsdev_deinit(void) {
// - Packet memory must be either strictly 16-bit or 32-bit depending on FSDEV_BUS_32BIT
// - Uses unaligned for RAM (since M0 cannot access unaligned address)
bool fsdev_write_packet_memory(uint16_t dst, const void *__restrict src, uint16_t nbytes) {
- if (nbytes == 0) return true;
+ if (nbytes == 0) {
+ return true;
+ }
uint32_t n_write = nbytes / FSDEV_BUS_SIZE;
fsdev_pma_buf_t* pma_buf = PMA_BUF_AT(dst);
@@ -107,7 +109,9 @@ bool fsdev_write_packet_memory(uint16_t dst, const void *__restrict src, uint16_
// - Packet memory must be either strictly 16-bit or 32-bit depending on FSDEV_BUS_32BIT
// - Uses unaligned for RAM (since M0 cannot access unaligned address)
bool fsdev_read_packet_memory(void *__restrict dst, uint16_t src, uint16_t nbytes) {
- if (nbytes == 0) return true;
+ if (nbytes == 0) {
+ return true;
+ }
uint32_t n_read = nbytes / FSDEV_BUS_SIZE;
fsdev_pma_buf_t* pma_buf = PMA_BUF_AT(src);
@@ -134,7 +138,9 @@ bool fsdev_read_packet_memory(void *__restrict dst, uint16_t src, uint16_t nbyte
// Write to PMA from FIFO
bool fsdev_write_packet_memory_ff(tu_fifo_t *ff, uint16_t dst, uint16_t wNBytes) {
- if (wNBytes == 0) return true;
+ if (wNBytes == 0) {
+ return true;
+ }
// Since we copy from a ring buffer FIFO, a wrap might occur making it necessary to conduct two copies
tu_fifo_buffer_info_t info;
@@ -183,7 +189,9 @@ bool fsdev_write_packet_memory_ff(tu_fifo_t *ff, uint16_t dst, uint16_t wNBytes)
// Read from PMA to FIFO
bool fsdev_read_packet_memory_ff(tu_fifo_t *ff, uint16_t src, uint16_t wNBytes) {
- if (wNBytes == 0) return true;
+ if (wNBytes == 0) {
+ return true;
+ }
// Since we copy into a ring buffer FIFO, a wrap might occur making it necessary to conduct two copies
// Check for first linear part
diff --git a/src/portable/st/stm32_fsdev/hcd_stm32_fsdev.c b/src/portable/st/stm32_fsdev/hcd_stm32_fsdev.c
index 212f620ac..da9c6961c 100644
--- a/src/portable/st/stm32_fsdev/hcd_stm32_fsdev.c
+++ b/src/portable/st/stm32_fsdev/hcd_stm32_fsdev.c
@@ -28,11 +28,11 @@
* This driver provides USB Host controller support for STM32 MCUs with "USB A"/"PCD"/"HCD" peripheral.
* This covers these MCU families:
*
- * C0 2048 byte buffer; 32-bit bus; host mode
- * G0 2048 byte buffer; 32-bit bus; host mode
- * U3 2048 byte buffer; 32-bit bus; host mode
- * H5 2048 byte buffer; 32-bit bus; host mode
- * U535, U545 2048 byte buffer; 32-bit bus; host mode
+ * C0 2048 byte buffer; 32-bit bus; host mode
+ * G0 2048 byte buffer; 32-bit bus; host mode
+ * U3 2048 byte buffer; 32-bit bus; host mode
+ * H5 2048 byte buffer; 32-bit bus; host mode
+ * U535, U545 2048 byte buffer; 32-bit bus; host mode
*
*/