Skip to content

Commit

Permalink
prepare for 0.17.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
hathach committed Sep 13, 2024
1 parent 3ff128b commit 115b1bb
Show file tree
Hide file tree
Showing 7 changed files with 259 additions and 172 deletions.
6 changes: 3 additions & 3 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Host Stack
- Human Interface Device (HID): Keyboard, Mouse, Generic
- Mass Storage Class (MSC)
- Communication Device Class: CDC-ACM
- Vendor serial over USB: FTDI, CP210x
- Vendor serial over USB: FTDI, CP210x, CH34x
- Hub with multiple-level support

Similar to the Device Stack, if you have a special requirement, `usbh_app_driver_get_cb()` can be used to write your own class driver without modifying the stack.
Expand Down Expand Up @@ -111,7 +111,7 @@ Following CPUs are supported, check out `Supported Devices`_ for comprehensive l
+--------------+------------------------------------------------------------+
| Analog | max32: 650, 666, 690. max78002 |
| | |
| | max3421e (host) |
| | max3421e (spi host) |
+--------------+------------------------------------------------------------+
| Brigetek | FT90x |
+--------------+------------------------------------------------------------+
Expand Down Expand Up @@ -143,7 +143,7 @@ Following CPUs are supported, check out `Supported Devices`_ for comprehensive l
| | |
| | MCX: A15, N9 |
+--------------+------------------------------------------------------------+
| Raspberry Pi | RP2040 |
| Raspberry Pi | RP2040, RP2350 |
+--------------+-----+------------------------------------------------------+
| Renesas | RA: 4M1, 4M3, 6M1, 6M5 |
| | |
Expand Down
144 changes: 119 additions & 25 deletions docs/info/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,71 +2,165 @@
Changelog
*********

0.17.0 (WIP)
============
0.17.0
======

General
-------

- Improved continuous integration: build both cmake and make. Make use of circleci to build arm-clang

- Improved CI: build both cmake and make. Make use of CircleCI for part of build process to speed up CI
- Add CodeQL Workflow for Code Security Analysis
- Add Clang compiler support
- Add default implementation for weak callbacks functions for better Keil compatibility
- Upgrade hardware-in-the-loop (HIL) testing with more boards and examples: including dual stack example

Controller Driver (DCD & HCD)
-----------------------------

- Chipidea

- Support MCXA

- DWC2

- Fix tickless issue with stm32f7: disable ULPI clock during sleep when using internal phy
- Fix SOF interrupt handling
- Fix fifo level half/empty issue
- Add DWC2 Test Mode support.
- for esp32 force disconnect/connect using USB_WRAP otg pad override

- FSDEV

- Rewrite and Generalize driver to support non-stm32 mcu such as wch
- Simplify PMA, HW FIFO access and bit manipulation for different access scheme 1x16, 2x16 and 32 bit
- Add support for ch32 usbd e.g ch32v203
- Add support for STM32G4 and STM32U5 microcontrollers.
- Fix h5 (32-bit) errata 2.15.1: Buffer description table update completes after CTR interrupt triggers
- ISO EP buffer allocation improvements, implement dcd_edpt_close_all()

- Fix ch32v203 race condition and stability issue with

- fix ch32v203 seems to unconditionally accept ZLP on EP0 OUT.
- fix v203 race condition between rx bufsize and RX_STAT which cause PMAOVR, occurs with WRITE10
- correctly handle setup prepare at dcd_edpt0_status_complete(), which fixes the race condition with windows where we could miss setup packet (setup bit set, but count = 0)

- MAX3421E

- Add support for rp2040, esp32 (c3, c6, h2, etc..)
- Add hcd_deinit() for max3421
- Retry NAK handling next frame to reduce CPU and SPI bus usage
- add cpuctl and pinctl to tuh_configure() option for max3421
- Implement hcd abort transfer for Max3421
- Properly Handle NAK Response in MAX3421E driver: correctly switch and skip writing to 2 FIFOs when NAK received. Otherwise, the driver may hang in certain conditions.

- MSP430: support non-bus-powered

- MUSB

- Add support for Analoog devices: max32650, max32666, max32690, max3278002

- nRF

- Fix dcd_edpt_open for iso endpoint
- Handle ISOOUT CRC errors
- Add compile support with old nordic sdk
- Fix a few race conditions

- OHCI

- Allow more than 16 devices

- RP2040

- Correctly abort control transfer when new setup arrived. Due to RP2040-E2 only able to fix B2 or later
- Implement hcd abort transfer for rp2040
- Add support for rp2350

- RUSB2

- Support ra2a1 pipe number scheme

- WCH CH32

- Added support for USB OTG/FS and FSDev Driver. Update CH32V307 to allow manual select FS or HS driver.
- Fixed various bugs in CH32v307 usbhs driver: endpoint handling and data transfer management.

- Fixed race conditions and other bugs in dcd_nrf5x and other drivers.
- Implemented hcd abort transfer for Max3421 and rp2040
- Added DWC2 Test Mode support.
- stm32 fsdev: ISO EP buffer allocation improvements, implement dcd_edpt_close_all()
- Added support for STM32G4 and STM32U5 microcontrollers.

Device Stack
------------

- Added tud_deinit() to deinitialize TinyUSB device stack.
- Added support for generic SOF callback.
- Add tud_deinit() and class driver deinit() to deinitialize TinyUSB device stack.
- Add support for generic SOF callback.
- Add set address recovery time 2ms per USB spec.

- Audio

- Add audio_test_freertos & audio_4_channel_mic_freertos
- Improved support for Audio Class 2.0 (UAC2) with various bug fixes.
- Add feedback by fifo counting.

- Bluetooth HCI

- Issue ZLP on ACL IN ep when transfer is multiple of endpoint max packet size

- CDC

- Add tud_cdc_configure_fifo() to make RX/TX buffer persistent (not clear when disconnected)
- Add missing capability bit for CDC ACM serial break support
- Enhanced CDC class with better handling of large data transmissions.
- Add missing capability bit for CDC ACM serial break support

- HID

- Added missing key codes for keypad
- Added HID Lighting and Illumination functionality
- Fixed issues in the HID class for more reliable device enumeration.
- Support HID Mouse with absolute positioning
- Use separate buffer for control SET_REPORT, fix conflict with interrupt endpoint out

- Vendor: Added empty transfers for tud_vendor_n_write()
- MSC: Added support for SCSI_CMD_PREVENT_ALLOW_MEDIUM_REMOVAL

- CDC

- Add option to make CDC TX buffer persistent
- Add missing capability bit for CDC ACM serial break support

- Net

- Rewrite of NCM device driver
- Rewrite of NCM device driver to improve throughput
- removed obsolete tud_network_link_state_cb()

- Enhanced CDC class with better handling of large data transmissions.
- Fixed issues in the HID class for more reliable device enumeration.
- Video Added support for USB Video Class (UVC) with MJPEG.
- USBTMC Added notification support

- Vendor

- Migrate to new endpoint stream API, support non-buffered TX/RX
- Add ZLP for write() when needed

- Video

- Enhance UVC descriptors and example
- Video Added support for USB Video Class (UVC) with MJPEG.
- Fix multiple interfaces, add an example of 2ch video capture.
- Fix race for tud_video_n_streaming check

Host Stack
----------

- Added tuh_deinit() to deinitialize TinyUSB host stack.
- Added tuh_deinit() to de-initialize TinyUSB host stack.
- Added support for new USB mass storage class APIs.
- Enhanced stability of CDC-ACM devices during enumeration.
- Improved error handling and retry mechanisms for unstable devices.
- Added support for multiple interfaces in UVC.

- CDC Serial

- Add support for ch34x
- Allow to overwrite CFG_TUH_CDC_FTDI/CP210X/CH32X_VID_PID_LIST
- Enhanced stability of CDC-ACM devices during enumeration.

- HID

- Add tuh_hid_receive_abort()
- Add tuh_hid_get_report()

- Hub

- Prevent status request to invalid ep_num
- Fix double status xfer
- unroll hub removal

0.16.0
======
Expand Down
12 changes: 7 additions & 5 deletions docs/reference/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ MCU low-level peripheral driver and external libraries for building TinyUSB exam
Local Path Repo Commit Required by
======================================== ============================================================== ======================================== ==========================================================================================================================================================================================================================================================================================================================
hw/mcu/allwinner https://github.com/hathach/allwinner_driver.git 8e5e89e8e132c0fd90e72d5422e5d3d68232b756 fc100s
hw/mcu/analog/max32 https://github.com/analogdevicesinc/msdk.git b20b398d3e5e2007594e54a74ba3d2a2e50ddd75 max32650 max32666 max32690 max78002
hw/mcu/bridgetek/ft9xx/ft90x-sdk https://github.com/BRTSG-FOSS/ft90x-sdk.git 91060164afe239fcb394122e8bf9eb24d3194eb1 brtmm90x
hw/mcu/broadcom https://github.com/adafruit/broadcom-peripherals.git 08370086080759ed54ac1136d62d2ad24c6fa267 broadcom_32bit broadcom_64bit
hw/mcu/gd/nuclei-sdk https://github.com/Nuclei-Software/nuclei-sdk.git 7eb7bfa9ea4fbeacfafe1d5f77d5a0e6ed3922e7 gd32vf103
Expand All @@ -16,9 +17,9 @@ hw/mcu/microchip https://github.com/hathach/microchip_d
hw/mcu/mindmotion/mm32sdk https://github.com/hathach/mm32sdk.git b93e856211060ae825216c6a1d6aa347ec758843 mm32
hw/mcu/nordic/nrfx https://github.com/NordicSemiconductor/nrfx.git 7c47cc0a56ce44658e6da2458e86cd8783ccc4a2 nrf
hw/mcu/nuvoton https://github.com/majbthrd/nuc_driver.git 2204191ec76283371419fbcec207da02e1bc22fa nuc
hw/mcu/nxp/lpcopen https://github.com/hathach/nxp_lpcopen.git 04bfe7a5f6ee74a89a28ad618d3367dcfcfb7d83 lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43
hw/mcu/nxp/lpcopen https://github.com/hathach/nxp_lpcopen.git b41cf930e65c734d8ec6de04f1d57d46787c76ae lpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43
hw/mcu/nxp/mcux-sdk https://github.com/hathach/mcux-sdk.git 144f1eb7ea8c06512e12f12b27383601c0272410 kinetis_k kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx imxrt
hw/mcu/raspberry_pi/Pico-PIO-USB https://github.com/sekigon-gonnoc/Pico-PIO-USB.git 0f747aaa0c16f750bdfa2ba37ec25d6c8e1bc117 rp2040
hw/mcu/raspberry_pi/Pico-PIO-USB https://github.com/sekigon-gonnoc/Pico-PIO-USB.git fe9133fc513b82cc3dc62c67cb51f2339cf29ef7 rp2040
hw/mcu/renesas/fsp https://github.com/renesas/fsp.git d52e5a6a59b7c638da860c2bb309b6e78e752ff8 ra
hw/mcu/renesas/rx https://github.com/kkitayam/rx_device.git 706b4e0cf485605c32351e2f90f5698267996023 rx
hw/mcu/silabs/cmsis-dfp-efm32gg12b https://github.com/cmsis-packs/cmsis-dfp-efm32gg12b.git f1c31b7887669cb230b3ea63f9b56769078960bc efm32
Expand Down Expand Up @@ -57,11 +58,12 @@ hw/mcu/st/stm32u5xx_hal_driver https://github.com/STMicroelectronics/
hw/mcu/st/stm32wbxx_hal_driver https://github.com/STMicroelectronics/stm32wbxx_hal_driver.git 2c5f06638be516c1b772f768456ba637f077bac8 stm32wb
hw/mcu/ti https://github.com/hathach/ti_driver.git 143ed6cc20a7615d042b03b21e070197d473e6e5 msp430 msp432e4 tm4c
hw/mcu/wch/ch32f20x https://github.com/openwch/ch32f20x.git 77c4095087e5ed2c548ec9058e655d0b8757663b ch32f20x
hw/mcu/wch/ch32v20x https://github.com/openwch/ch32v20x.git de6d68c654340d7f27b00cebbfc9aa2740a1abc2 ch32v20x
hw/mcu/wch/ch32v307 https://github.com/openwch/ch32v307.git 17761f5cf9dbbf2dcf665b7c04934188add20082 ch32v307
hw/mcu/wch/ch32v103 https://github.com/openwch/ch32v103.git 7578cae0b21f86dd053a1f781b2fc6ab99d0ec17 ch32v10x
hw/mcu/wch/ch32v20x https://github.com/openwch/ch32v20x.git c4c38f507e258a4e69b059ccc2dc27dde33cea1b ch32v20x
hw/mcu/wch/ch32v307 https://github.com/openwch/ch32v307.git 184f21b852cb95eed58e86e901837bc9fff68775 ch32v307
lib/CMSIS_5 https://github.com/ARM-software/CMSIS_5.git 20285262657d1b482d132d20d755c8c330d55c1f imxrt kinetis_k32l2 kinetis_kl lpc51 lpc54 lpc55 mcx mm32 msp432e4 nrf ra saml2xlpc11 lpc13 lpc15 lpc17 lpc18 lpc40 lpc43stm32f0 stm32f1 stm32f2 stm32f3 stm32f4 stm32f7 stm32g0 stm32g4 stm32h5stm32h7 stm32l0 stm32l1 stm32l4 stm32l5 stm32u5 stm32wbsam3x samd11 samd21 samd51 samd5x_e5x same5x same7x saml2x samgtm4c
lib/FreeRTOS-Kernel https://github.com/FreeRTOS/FreeRTOS-Kernel.git cc0e0707c0c748713485b870bb980852b210877f all
lib/lwip https://github.com/lwip-tcpip/lwip.git 159e31b689577dbf69cf0683bbaffbd71fa5ee10 all
lib/sct_neopixel https://github.com/gsteiert/sct_neopixel.git e73e04ca63495672d955f9268e003cffe168fcd8 lpc55
tools/uf2 https://github.com/microsoft/uf2.git 19615407727073e36d81bf239c52108ba92e7660 all
tools/uf2 https://github.com/microsoft/uf2.git c594542b2faa01cc33a2b97c9fbebc38549df80a all
======================================== ============================================================== ======================================== ==========================================================================================================================================================================================================================================================================================================================
Loading

0 comments on commit 115b1bb

Please sign in to comment.