|
2 | 2 | Changelog |
3 | 3 | ********* |
4 | 4 |
|
| 5 | +0.19.0 |
| 6 | +====== |
| 7 | + |
| 8 | +General |
| 9 | +------- |
| 10 | + |
| 11 | +- New MCUs and Boards: |
| 12 | + |
| 13 | + - Add ESP32-H4, ESP32-C5, ESP32-C61 support |
| 14 | + - Add STM32U083C-DK, STM32WBA, STM32N6570-DK, STM32N657 Nucleo |
| 15 | + - Add AT32F405, AT32F403A, AT32F415, AT32F423 support |
| 16 | + - Add CH32V305 support and CH32V20x USB host support |
| 17 | + - Add MCXA156 SDK 2.16 support and FRDM-MCXA156 board |
| 18 | + - Update all STM32 HAL and CMSIS dependencies to latest versions |
| 19 | + |
| 20 | +- Build System and CI Improvements |
| 21 | + - Improve build system with GCC 14 support |
| 22 | + - Add ARM IAR toolchain build support via CircleCI and GitHub Actions |
| 23 | + - Add comprehensive CMake build documentation |
| 24 | + - Improve hardware-in-the-loop (HIL) testing infrastructure |
| 25 | + - Add Claude Code AI assistant workflows and documentation |
| 26 | + |
| 27 | +- Add ``tusb_deinit()`` function for stack cleanup |
| 28 | + |
| 29 | +API Changes |
| 30 | +----------- |
| 31 | + |
| 32 | +- Core APIs |
| 33 | + - Add weak callbacks with new syntax for better compiler compatibility |
| 34 | + - Add ``tusb_deinit()`` to cleanup stack |
| 35 | + - Add time functions: ``tusb_time_millis_api()`` and ``tusb_time_delay_ms_api()`` |
| 36 | + - Add ``osal_critical`` APIs for critical section handling |
| 37 | + - Introduce ``xfer_isr()`` callback for ISO transfer optimization in device classes |
| 38 | + |
| 39 | +- Device APIs |
| 40 | + - CDC: Add ``tud_cdc_configure()``, ``tud_cdc_n_notify_uart_state()``, |
| 41 | + ``tud_cdc_n_notify_conn_speed_change()``, ``tud_cdc_notify_complete_cb()`` |
| 42 | + - MSC: Add ``tud_msc_inquiry2_cb()`` with bufsize parameter, update ``tud_msc_async_io_done()`` |
| 43 | + with ``in_isr`` parameter |
| 44 | + - Audio: Add ``tud_audio_n_mounted()`` and various FIFO access functions |
| 45 | + - MTP: Add ``tud_mtp_mounted()``, ``tud_mtp_data_send()``, ``tud_mtp_data_receive()``, |
| 46 | + ``tud_mtp_response_send()``, ``tud_mtp_event_send()`` |
| 47 | + |
| 48 | +- Host APIs |
| 49 | + - Core: Add ``tuh_edpt_close()``, ``tuh_address_set()``, ``tuh_descriptor_get_device_local()``, |
| 50 | + ``tuh_descriptor_get_string_langid()``, ``tuh_connected()``, ``tuh_bus_info_get()`` |
| 51 | + - Add enumeration callbacks: ``tuh_enum_descriptor_device_cb()``, |
| 52 | + ``tuh_enum_descriptor_configuration_cb()`` |
| 53 | + - CDC: Add ``tuh_cdc_get_control_line_state_local()``, ``tuh_cdc_get/set_dtr/rts()``, |
| 54 | + ``tuh_cdc_connect/disconnect()`` and sync versions of all control APIs |
| 55 | + - MIDI: Add ``tuh_midi_itf_get_info()``, ``tuh_midi_packet_read_n()``, |
| 56 | + ``tuh_midi_packet_write_n()``, ``tuh_midi_read_available()``, ``tuh_midi_write_flush()``, |
| 57 | + ``tuh_midi_descriptor_cb()`` |
| 58 | + |
| 59 | +Controller Driver (DCD & HCD) |
| 60 | +----------------------------- |
| 61 | + |
| 62 | +- DWC2 |
| 63 | + - Support DWC2 v4.30a with improved reset procedure |
| 64 | + - Fix core reset: wait for AHB idle before reset |
| 65 | + - Add STM32 DWC2 data cache support with proper alignment |
| 66 | + - Host improvements: |
| 67 | + - Fix disconnect detection and SOF flag handling |
| 68 | + - Fix HFIR timing off-by-one error |
| 69 | + - Retry IN token immediately for bInterval=1 |
| 70 | + - Proper attach debouncing (200ms) |
| 71 | + - Fix all retry intervals |
| 72 | + - Resume OUT transfer when PING ACKed |
| 73 | + - Fix enumeration racing conditions |
| 74 | + - Refactor bitfields for better code generation |
| 75 | + |
| 76 | +- FSDEV (STM32) |
| 77 | + - Fix AT32 compile issues after single-buffered endpoint changes |
| 78 | + - Add configurable single-buffered isochronous endpoints |
| 79 | + - Fix STM32H7 recurrent suspend ISR |
| 80 | + - Fix STM32L4 GPIOD clock enable for variants without GPIOD |
| 81 | + - Fix STM32 PHYC PLL stability wait |
| 82 | + - Improve PMA size handling for STM32U0 |
| 83 | + |
| 84 | +- EHCI |
| 85 | + - Fix removed QHD getting reused |
| 86 | + - Fix NXP USBPHY disconnection detection |
| 87 | + |
| 88 | +- Chipidea/NXP |
| 89 | + - Fix race condition with spinlock |
| 90 | + - Add async I/O support for MSC |
| 91 | + - Improve iMXRT support: fix build, disable BOARD_ConfigMPU, fix attach debouncing on port1 highspeed |
| 92 | + - Fix iMXRT1064 and add to HIL test pool |
| 93 | + |
| 94 | +- MAX3421E |
| 95 | + - Use spinlock for thread safety instead of atomic flag |
| 96 | + - Implement ``hcd_edpt_close()`` |
| 97 | + |
| 98 | +- RP2040 |
| 99 | + - Fix audio ISO transfer: reset state before notifying stack |
| 100 | + - Fix CMake RTOS cache variable |
| 101 | + - Abort transfer if active in ``iso_activate()`` |
| 102 | + |
| 103 | +- SAMD |
| 104 | + - Add host controller driver support |
| 105 | + |
| 106 | +Device Stack |
| 107 | +------------ |
| 108 | + |
| 109 | +- USBD Core |
| 110 | + - Introduce ``xfer_isr()`` callback for interrupt-time transfer handling |
| 111 | + - Add ``usbd_edpt_xfer_fifo()`` stub |
| 112 | + - Revert endpoint busy/claim status if ``xfer_isr()`` defers to ``xfer_cb()`` |
| 113 | + |
| 114 | +- Audio |
| 115 | + - Major simplification of UAC driver and alt settings management |
| 116 | + - Move ISO transfers into ``xfer_isr()`` for better performance |
| 117 | + - Remove FIFO mutex (single producer/consumer optimization) |
| 118 | + - Add implicit feedback support for data IN endpoints |
| 119 | + - Fix alignment issues |
| 120 | + - Update buffer macros with cache line size alignment |
| 121 | + |
| 122 | +- CDC |
| 123 | + - Add notification support: ``CFG_TUD_CDC_NOTIFY``, ``tud_cdc_n_notify_conn_speed_change()``, ``tud_cdc_notify_complete_cb()`` |
| 124 | + - Reduce default bInterval from 16ms to 1ms for better responsiveness |
| 125 | + - Rename ``tud_cdc_configure_fifo()`` to ``tud_cdc_configure()`` and add ``tx_overwritable_if_not_connected`` option |
| 126 | + - Fix web serial robustness with major overhaul and logic cleanup |
| 127 | + |
| 128 | +- HID |
| 129 | + - Add Usage Page and Table for Power Devices (0x84 - 0x85) |
| 130 | + - Fix HID descriptor parser variable size and 4-byte item handling |
| 131 | + - Add consumer page configurations |
| 132 | + |
| 133 | +- MIDI |
| 134 | + - Fix MIDI interface descriptor handling after audio streaming interface |
| 135 | + - Skip RX data with all zeroes |
| 136 | + |
| 137 | +- MSC |
| 138 | + - Add ``tud_msc_inquiry2_cb()`` with bufsize for full inquiry response |
| 139 | + - Refactor async I/O: add ``in_isr`` argument to ``tud_msc_async_io_done()`` |
| 140 | + |
| 141 | +- MTP |
| 142 | + - Add new Media Transfer Protocol (MTP) device class driver |
| 143 | + - Support MTP operations: GetDeviceInfo, SendObjectInfo, SendObject |
| 144 | + - Add MTP event support with ``tud_mtp_event_send()`` |
| 145 | + - Implement filesystem example with callbacks |
| 146 | + - Add hardware-in-the-loop testing support |
| 147 | + |
| 148 | +- NCM |
| 149 | + - Add USB NCM link state control support |
| 150 | + - Fix DHCP offer/ACK destination |
| 151 | + |
| 152 | +- USBTMC |
| 153 | + - Add vendor-specific message support |
| 154 | + |
| 155 | +- Vendor |
| 156 | + - Fix vendor device reset and open issues |
| 157 | + - Fix descriptor parsing for ``CFG_TUD_VENDOR > 1`` |
| 158 | + - Fix vendor FIFO argument calculation |
| 159 | + |
| 160 | +Host Stack |
| 161 | +---------- |
| 162 | + |
| 163 | +- USBH Core |
| 164 | + - Major enumeration improvements: |
| 165 | + - Fix enumeration racing conditions |
| 166 | + - Add proper attach debouncing with hub/rootport handling (200ms delay) |
| 167 | + - Reduce ``ENUM_DEBOUNCING_DELAY_MS`` to 200ms |
| 168 | + - Always get language ID, manufacturer, product, and serial strings during enumeration |
| 169 | + - Always get first 2 bytes of string descriptor to determine length (prevents buffer overflow) |
| 170 | + - Support devices with multiple configurations |
| 171 | + - Add ``tuh_enum_descriptor_device_cb()`` and ``tuh_enum_descriptor_configuration_cb()`` callbacks |
| 172 | + - Add ``tuh_descriptor_get_string_langid()`` API |
| 173 | + - Hub improvements: |
| 174 | + - Check status before getting first device descriptor |
| 175 | + - Properly handle port status and change detection |
| 176 | + - Queue status endpoint for detach/remove events |
| 177 | + - Fix hub status change endpoint handling |
| 178 | + - Fix endpoint management: |
| 179 | + - ``hcd_edpt_open()`` returns false if endpoint already opened |
| 180 | + - Add ``hcd_edpt_close()`` implementation |
| 181 | + - Abort pending transfers on close |
| 182 | + - Add roothub debouncing flag to ignore attach/remove during debouncing |
| 183 | + - Move address setting and bus info management to separate structures |
| 184 | + - Force removed devices in same bus info before setting address |
| 185 | + |
| 186 | +- CDC Serial Host |
| 187 | + - Major refactor to generalize CDC serial drivers (FTDI, CP210x, CH34x, PL2303, ACM) |
| 188 | + - Add common 2-stage set line coding for drivers without direct support |
| 189 | + - Add ``cdch_process_line_state_on_enum()`` for line state configuration during enumeration |
| 190 | + - Refactor control transfer handling with ``cdch_internal_control_complete()`` |
| 191 | + - Add explicit ``sync()`` API with ``TU_API_SYNC()`` returning ``tusb_xfer_result_t`` |
| 192 | + - Rename ``tuh_cdc_get_local_line_coding()`` to ``tuh_cdc_get_line_coding_local()`` |
| 193 | + - Add ``tuh_cdc_get_control_line_state_local()`` |
| 194 | + - Implement ``tuh_cdc_get/set_dtr/rts()`` as inline functions |
| 195 | + - Add ``get_itf_by_xfer()`` for better CDC interface determination |
| 196 | + - Union FTDI/PL2303/ACM data structures to save memory |
| 197 | + - Remove local device descriptor storage |
| 198 | + |
| 199 | +- MIDI Host |
| 200 | + - Major API changes: |
| 201 | + - Rename ``tuh_midi_stream_flush()`` to ``tuh_midi_write_flush()`` |
| 202 | + - Add ``tuh_midi_packet_read_n()`` and ``tuh_midi_packet_write_n()`` |
| 203 | + - Add ``CFG_TUH_MIDI_STREAM_API`` to opt out of stream API |
| 204 | + - Change API to use index instead of device address (supports multiple MIDI per device) |
| 205 | + - Add ``tuh_midi_mount_cb_t`` struct for mount callback |
| 206 | + - Change ``tuh_midi_rx/tx_cb()`` to include ``xferred_bytes`` |
| 207 | + - Rename ``tuh_midi_get_num_rx/tx_cables()`` to ``tuh_midi_get_rx/tx_cable_count()`` |
| 208 | + - Add ``tuh_midi_descriptor_cb()`` and ``tuh_midi_itf_get_info()`` |
| 209 | + - Fix ``iInterface`` value in ``tuh_midi_itf_get_info()`` |
| 210 | + - Remove ``CFG_MIDI_HOST_DEVSTRINGS`` support |
| 211 | + |
| 212 | +- MSC Host |
| 213 | + - Continue async I/O improvements |
| 214 | + |
| 215 | +- HID Host |
| 216 | + - Fix version string to actually show version |
| 217 | + |
5 | 218 | 0.18.0 |
6 | 219 | ====== |
7 | 220 |
|
|
0 commit comments