Releases: cherry-embedded/CherryUSB
Releases · cherry-embedded/CherryUSB
CherryUSB v1.6.0
Common
- update(demo): remove all old desc api
Device
- feat(class/gamepad): add gamepad device #392
Host
- feat: host add event callback mechanism similar to device @Egahp
- refactor(serial): add host serial framework @sakumisu @MDLZCOOL #379
- feat(class/hid): add hid report parse api #364
OTG
Port
- feat(musb): add support for ti microcontroller with musb ip @MDLZCOOL
- feat(port/dwc2): add infineon glue
- update(port/dwc2): add usbd_dwc2_get_system_clock to replace SystemCoreClock #404
- update(port/dwc2/usb_dc_dwc2): remove __UNALIGNED_UINT32_READ and __UNALIGNED_UINT32_WRITE because buf is always align4, only receive one setup packet
- update(port/dwc2/usb_dc_dwc2): move read setup into USB_OTG_GINTSTS_ENUMDNE irq
- feat: add roothub speed for dwc2/ehci
Platform
Security Check
- update(port/dwc2): add check for fifo value with power on value
CherryUSB v1.5.3.99
This is the last version for release/v1.5.
Common
- refactor(osal): replace NuttX internal APIs with POSIX APIs @SunJun8
- fix(demo): fix cdc ecm string check
Device
Host
OTG
Port
- Update T113S3 glue @HakumenJean
- fix(port/dwc2/usb_hc_dwc2): restart split transfer with dwc2_xxx_urb_init, do not use dwc2_chan_reenable api
- fix(port/dwc2/usb_hc_dwc2): fix incorrect HFIR_RELOAD_CTRL setting
- fix(musb): fix
musb_pipe_allocmissingbusparameter, and fix host checks in irq @MDLZCOOL
Platform
- update(platform): remove net class weak api, check CONFIG_USBHOST_PLATFORM_* macro is defined or not in usbh_lwip.c
- fix(bluetooth): Correct HCI packet type from SCO to ISO in USB host @shchen-Lab
Security Check
CherryUSB v1.5.3
Common
- feat(demo): add mongoose rndis demo
- update(demo/cdc_acm_rttchardev): add finsh & console switch with usb
- update: remove old bl616 wifi driver, add new api
- update(demo): format uac demos with macros
- update(demo): add more descriptor init macros
- refactor(usb_osal_threadx): optimize the creation and deletion of threads @MDLZCOOL
- style: remove printf with USB_LOG_XXX
- chore: add build ci for hpmicro & bouffalolab & espressif
- fix:Fix RNDIS DHCP dependency,and delay implementation @Rbb666
- bugfix: Fix support for idf versions lower than 5.3, Fix some compilation errors @udoudou
- fix: Remove usb component private requirement for idf v6 @udoudou
- fix(demo): fix missing ecm mac address string
Device
- feat: support custom ep0 mps
Host
- feat(class/video/usbh_video): support bulk mode
- feat(class): support more match flags for cdc acm & rndis
- feat(core/usbh_core): support interfacenum match flag
- feat(core/usbh_core): support custom config index
- refactor(core/usbh_core): refactor devaddr allocation, use auto increment
- refactor(core/usbh_core): refactor lsusb
- update(core/usbh_core): add retry for control transfer, some devices are flakey
- update(core/usbh_core): print interface num when load driver
- fix(class/hub): delete thread before delete mq
OTG
- refactor(otg): refactor otg framework
Port
- feat: Add MUSB IP without multipoint feature support @HalfSweet
- feat: support custom ep0 mps
- update(port/dwc2/usb_glue_hc): update hc port
- update(port/hpmicro): add dcache support for device
- update(port/chipidea): add dcache support for device
- update(port/dwc2/usb_glue_st): increase ep1 tx fifo for audio demo
- update(port/musb/usb_hc_musb): reenable pipe alloc & free
- port: update hpmicro port files for otg @chenzhihong007
- fix(port/ehci): clear iaad status before set
- fix(usb_dc_dwc2): add unaligned read/write macros for IAR compiler @meng-plus
- fix(port/dwc2/usb_dc_dwc2): invalid cache before all read setup
Platform
- feat(platform/idf): add fatfs port for host msc
- update(platform): remove CONFIG_USB_DCACHE_ENABLE, always check align size
- update(platform/rtthread): add more check for chip cache
- update(platform/rtthread): change LWIP_NO_RX_THREAD check error to warning
- update(platform/daplink): sync with cherrydap
Security Check
- update(hub/usbh_hub): add check for nports
- update(class/hub): remove hport sources safely
CherryUSB v1.5.2
Common
- update(common/usb_hc): change interval u8 to u32 for us
- update(usb_config): change CONFIG_USBHOST_MAX_INTF_ALTSETTINGS to 2 as default for less memory usage
- update(osal/idf): change freertos timer to esp_timer, change xtaskcreate to xTaskCreatePinnedToCore
- fix(common/usb_util): fix missing __ICCARM_V8 define
- style: remove some logs, fix log typo, format log
Device
Host
- update: add output_len param for usbh_get_string_desc
- update(core/usbh_core): do not assert when parse desc fail, just return error
- update(core/usbh_core): check string support and then get string desc
- fix(core/usbh_core): change 2ms to 10ms because some platform's tick is 100hz then 2ms = 0ms, refs: #342
- fix(class/msc/usbh_msc): Clear error code after intentionally ignoring it @dkonigsberg
Port
- feat(port): add urb->complete in usbh_kill_urb
- Add FS support for ESP32-P4 @udoudou
- feat(port/dwc2): support ep mult
- update(port): remove CONFIG_USBDEV_EP_NUM & CONFIG_USBHOST_PIPE_NUM macro
- update(port/musb): If ep control register group exists, do not use epidx register
- update(port/dwc2/usb_glue_kendryte): update dwc2 param
- update(port/dwc2): invalid data before start read
- update(port/dwc2/usb_hc_dwc2): optimize split transfer code, mainly for cache and intr nak issue (56c864b, cc3e91e, f949e16, 65288c9, 9ddcbf5, 7037fd0)
- update(port/musb): add mode check
- update(port/dwc2): add mode check
- fix(port/dwc2/usb_hc_dwc2): exit porten loop check when device disconnects
- add reset port timeout check for dwc2, prevent unplug with loop @udoudou
- Fix a bug where the channel might not be released, timeout but give sem @udoudou
- Fix the bug that dwc2_halt may cause hardware abnormality, do not clear USB_OTG_HCCHAR_EPDIR @udoudou
- fix(port/dwc2/usb_glue_at): fix host rx size
- fix(port/dwc2/usb_glue_st): reduce f4 total size for some specific f4 chips
- fix(port/ehci): remove usb_osal_msleep in critical section
- fix(port/dwc2/usb_dwc2_param): fix macro literal types @Egahp
Platform
- update(platform/rtthread): remove align size check
- fix(platform/rtthread): change RT_USING_CACHE to CONFIG_USB_DCACHE_ENABLE
- fix(platform/rtthread): restart read at usbd_cdc_acm_bulk_out @uid-matthew
- fix(platform/rtthread): add RT_DEVICE_FLAG_INT_RX falg to device @uid-matthew
Security Check
CherryUSB v1.5.1
This release needs to be urgent because some companies need the custom configuration for multi dwc2 usbip and the qtd bug for ehci.
Common
Device
- update(core/usbd_core): add ep0 state log
Host
- fix(vendor/serial/usbh_ftdi): fix missing break
- fix(class/hub): change urb interval unit to us
Port
- refactor(port/dwc2): support custom config for each dwc2 usb port
- feat: support sifli device
- fix(port/ehci): Fix the urb leak when there is no data in the control transmission @minlewang
- update(port/dwc2/usb_dc_dwc2): use usbd_get_ep0_next_state for read setup
Platform
- feat(platform/rtthread): support adb shell/device cdc acm chardev/host serial framework
- fix(platform/rtthread): change dfs ssize_t to rt_ssize_t
Security Check
- update(demo): remove ep num check
- update(port/fsdev): assert for fsdev log
CherryUSB v1.5.0
Common
- osal: add liteos_m osal (#301) @huohongpeng
- feat(osal/usb_osal_zephyr): add zephyr osal
- update(osal): rename ticks to timeout_ms
- update(osal/usb_osal_nuttx): update timer driver
- update: change memcpy with usb_memcpy, fuck newlib with memcpy unalign bug
- update(common/usb_log): update USB_ASSERT
- update(demo): enable feedback trasnfer when USING_FEEDBACK=1 and use largest frequence from table
- update(demo/usb_host): add fatfs speed test
- update(demo): include dnserver & dhserver config for rndis & ecm
- update(demo): wait done in linkoutput_fn for rndis & ecm, retransmission in lwip costs too much time
- update: enable CONFIG_USBDEV_ADVANCE_DESC as default
- cmake: Format CMake files using cmake_format and add a .cmake_format.json file @minlewang
- chore: update cmake & kconfig & scons
- docs: update rst
- docs: 更新 README 文件结构和内容 (#300) @MDLZCOOL
- fix: fix wformat warnings
- class: hid: Fix typo: MODIFER → MODIFIER @RCSN
Device
- feat(core/usbd_core): add ep0_next_state to record control transfer state
- feat(class/mtp): support mtp device
- refactor(class/usbd_msc): replace cherryrb with only variable
- refactor(class/video/usbd_video): zero copy for video data transfer
- update: add usb align up for every buffer when use dcache clean&invalid api
- update(class/wireless/usbd_rndis): enable indicate msg for sending connect status
- update(class): add weak api to avoid undefine symbol(not use such class but add)
- update(class/wireless/usbd_rndis): use usbd_rndis_start_write for usbd_rndis_eth_tx
- update(class): replace ecm & rndis USB_ERR_NOTDEV with USB_ERR_NOTCONN
- update(core/usbd_core): clear configuration in disconnect callback
- update(class/video): change headerlen to 12 for 4 byte align, fix encoding
- msc: add support for SCSI_CMD_SYNCHCACHE10 (0x35) to fix unsupported command error @Aladdin-Wang
Host
- feat(class/usbh_hid): add usbh_hid_get_protocol api
- feat(class): add usb_osal_thread_schedule_other to allow the applications which use the struct usbh_xxx to exit properly before free struct usbh_xxx
- update: add usb align up for every buffer when use dcache clean&invalid api
- fix(class/vendor/ftdi): fix ftdi baudrate caculation
Port
- feat(port/dwc2/usb_glue_st): implement low level api for device and host
- feat(port/fsdev/usb_glue_st): implement low level api
- feat(port/dwc2/usb_hc_dwc2): support external hs hub with fs/ls device
- feat(port/kinetis): add mm32f5 support
- feat: add nationstech support
- feat(port/dwc2/usb_dc_dwc2): support dcache
- feat(dcache): add dcache api for bl/hpm/esp/st/nxp
- refacor(port/hpmicro): move hpmicro glue into hpmicro directory
- refactor(port/nxp): combine nxp mcx glue for chipdea & ehci
- update(port/ehci): add pad for qh&qtd cachemaintain, add CONFIG_USB_EHCI_DESC_DCACHE_ENABLE for qh&qtd&itd
- update(port/ohci): add pad for ed&td cachemaintain, add CONFIG_USB_OHCI_DESC_DCACHE_ENABLE for ed&td
- update(port/ehci): use static qtd pool for qtd alloc & free
- update(port): add sof support
- ehci: update config to improve performance @chenzhihong007
- port: hpmicro: update isr processing (#304) @chenzhihong007
- update(port/aic): sync code from luban lite
- update(port/ch32): update irqhandler name
- update(port/musb/usb_hc_musb): flush and disable ep intr in usbh_kill_urb
- update(port/ehci/usb_glue_t113): update clock config
- fix(port/dwc2/usb_hc_dwc2): enlarge pktcnt to 0x3ff, GHWCFG3(bit4:6) = 6, GHWCFG3(bit0:3) = 8
- fix(port/bl): enable PDS_REG_USB_IDDIG bit for device
- fix:(port/ch32/usb_dc_usbhs.c) Add isochronous out transfer support and fix endpoint config bug (#310) @sumengqi
- fix(port/ch32): clear intflag first, set nak before handling ep in
- fix(port/chipidea): fix qtd buffer setting
- Fix esp32-p4 cache operation adaptation issue @udoudou
- refactor(port/ch32): classify ch32 port
- update(port/bl): add fs support
Platform
- update(platform): update platform code
- feat(platform): add lvgl mouse&keyboard support
- platform: lvgl: update features and support both LVGL 8 and LVGL 9 @RCSN
- feat(platform): add filex support
- chore: update zephyr code
- feat(platform/zephyr): support msc host with disk
- update(platform): make msc host with fs common for dcache
- add usb net under idf platform @loogg
Security Check
- update(rtthread): add check for use dfs
- update: add USB_ASSERT_MSG for common case
- update(port): add USB_ASSERT_MSG for ep num check
- fix(core/usbd_core): add check for desc callback
- update(port/fsdev): assert for fsdev iso
CherryUSB v1.4.3
Common
- feat(osal): add argument macro for different os, especially for nuttx
- feat(common): add usb_phyaddr2ramaddr & usb_ramaddr2phyaddr macro
- feat(platform/nuttx): update fs & net & cdcacm support
- update(demo): add CONFIG_USBDEV_ADVANCE_DESC template
- update(nimble): remove nimble submodule, because it costs time to pull
- update(platform/rtthread/usbh_dfs): move mount into another thread
- osal: fix rtthread usb_osal_thread_delete() API (#288) @chenzhihong007
- update(osal/idf): reduce tx fifo for more space for ep5 & ep6
Device
- feat(audio): add audio feedback macros and demo for uac1 & uac2
- feat(core/usbd_core): add ep0 setup handler into thread feature
- update(class/wireless/usbd_rndis): support transfer api for enet & wireless without lwip
- fix current_desc_len += p[DESC_bLength] before p+= p[DESC_bLength]
- fix reset all eps when alt_setting=0
Host
- feat(core/usbh_core): add usbh_printf_setup api for debug
- update(class/msc/usbh_msc): move msc scsi commands out(add usbh_msc_scsi_init api) to prevent blocking enum thread, add retry for testunityready request
- fix(core/usbh_core): return valid hport which is connected
Port
- update(port): add ehci/ohci/dwc2 dcache support
- feat(port/rp2040): update rp2040 device driver to latest
- feat(port/rp2040): update rp2040 host driver, use irq_add_shared_handler to register irq handler
- feat(port/ehci): add t113 glue
- Add ch585 usbhs dc @HaiMianBBao
- update(port/kinetis): add MCXA156 support
- fix(port/musb/usb_hc_musb): fix musb_write_packet size with urb->transfer_buffer_length
- fix(port/dwc2/usb_glue_st): set GCCFG zero in host for stm32h7rs
Security Check
CherryUSB v1.4.2
Common
- add:cherryusb_config_template.h add CONFIG_USB_HS configuration description @Dozingfiretruck
- update(osal/usb_osal_thread): implement usb_osal_sem_reset
- chore(cmake): update idf config for lwip & freertos
- update(osal/freertos): update usb_osal_mq_recv and usb_osal_mq_send for isr api
- update(demo): set hid busy before write
- chore(scons): add kendryte config
- update(cherrymp): move into standalone repo
Device
- update(core/usbd_core): implement USB_REQUEST_GET_INTERFACE request, refs:#268
- update(class/cdc/usbd_cdc_ecm): support transfer api for enet & wireless without lwip
- update(demo/usbd_rndis): update send & recv done api, add check for this demo
- refactor(class/video/usbd_video): refactor video stream transfer, support n frames in one transfer
- usbd_video: use pingpang buffer to improve tx performance @chenzhihong007
- update(class/audio): change volume unit with dB, fix uac2.0 volume range
- update: change memcpy to fast memcpy
- fix(core/usbd_core): fix ep config for more eps when call usbd_set_interface
Host
- feat(core/usbh_core): add usbh_find_hubport api
- feat(class/aoa): add usb aoa host
- update(class/audio/usbh_auido): update audio volume and mute api, caculate volume with volume min & max
- update(class/audio): change volume unit with dB, fix uac2.0 volume range
- fix: rename class to class_code, for c++ compatibility (#269) @electretmike
- fix vid pid match @yangpengya
Port
- update(port/ehci/usb_glue_aic): remove lsusb shell, add check for ehci configflag, support ohci
- update(port/ohci): update ohci common code
- update(port/dwc2/usb_dc_dwc2): clear crst bit because some mcu cannot be self-clearing, refs:#276
- update(port/dwc2/usb_dc_dwc2): support up to 16 endpoints
- update(port/dwc2/usb_glue_at): import system_core_clock
- update(port/dwc2/usb_glue_st): support stm32h7rs
- fix(port/dwc2/usb_dc_dwc2): do not clear other intr bits
Security Check
- update(port/fsdev): add check for iso, we do not support
- update(port/dwc2/usb_hc_dwc2): do not support hs hub with ls/fs device
- update(port/dwc2/usb_glue_gd): add check for ep
CherryUSB v1.4.1
Common
- update(demo): set bNumConfigurations with zero in Device Qualifier Descriptor, we do not request other speed desc as default
- chore(cmake): fix cdc acm config name
- Add Github Action for Documentation Builds @HalfSweet
- Add issue template @HalfSweet
- Create cppcheck.yml
- update(platform/none/usbh_lwip): remove freertos, use osal api
Device
- feat(class/audio/usb_audio): add audio altsetting desc init macros
- feat(class/video/usbd_video): add usbd_video_stream_start_write api for video split tranfer, every transfer with one ep_mps
- fix(core/usbd_core): reset endpoint only for altsetting 0, refs:#258
Host
- refactor(class/audio/usbh_audio): refactor getting audio control info
- update(class/hid/usbh_hid): export usbh_hid_get_report_descriptor api, refs:#260
- update(class/wireless/usbh_rndis): reduce rndis control buffer
- fix(class/msc/usbh_msc): when device stalls by usbh_msc_get_maxlun, ingore error and set lun=0, refs:#259
Port
- feat(port/kinetis): add kinetis usbip
- update(port/dwc2/usb_dc_dwc2): enlarge CONFIG_USB_DWC2_TX1_FIFO_SIZE for video demo and export CONFIG_USB_DWC2_DMA_ENABLE
- fix(port/dwc2/usb_dc_dwc2): set multi packet for iso in tx empty process, every transfer will reset this bits, so we need restore it. remove ununsed iso imcomplete isr
Security Check
- chore: static code analysis
- fix(class/msc/usbd_msc): fix warning and add check for CONFIG_USBDEV_MSC_MAX_BUFSIZE
- fix(port/dwc2/usb_hc_dwc2): fix fifo check typo
CherryUSB v1.4.0
Common
- feat(demo): add uf2 demo
- feat(osal): import idf osal from udoudou/esp_cherryusb @udoudou
- feat(osal): add threadx support
- feat(common): add usb_hexdump for test
- refactor(osal): use osal malloc and free, remove usb_malloc & usb_free macro
- refactor: move CHERRYUSB_VERSION and CHERRYUSB_VERSION_STR into usb_version.h
- update(cherrymp): rename cherrypool to cherrymp
- update(class/cdc): set cdc acm bFunctionProtocol to 0x00
- fix: change hid_mouse_report struct. from uint8_t to int8_t @MaigoW
- fix(demo/winusb1.0_template): fix WINUSB_IFx_WCIDProperties array
- fix: fix -Wunused-parameter warning with -Wextra cflag
Device
- feat(core/usbd_core): support get hid desc request(0x21)
- feat(core/usbd_core): support get status for remote wakeup & self powered, add remote wakeup api
- feat(core/usbd_core): support ep get status with usbd_ep_is_stalled api
- feat(core/usbd_core): support webusb
- feat(core/usbd_core):: add usb_device_is_suspend() API @chenzhihong007
- feat(class/msc/usbd_msc): add msc polling mode to move read & write from isr to while1
- feat: add usb adb device with cherrysh
- refactor(class/cdc): rename usbd_cdc to usbd_cdc_acm
- fix(class/msc/usbd_msc): fix usbd_msc_get_popup api spelling
- Fix the bug that USBD_EVENT_DEINIT was not notified correctly @udoudou
Host
- feat(wifi/bl616): add bl616 usbwifi
- feat: Add host driver for XBOX controllers @harbaum
- update(hub): update hub macros and hub params for usb3.0 @zhugengyu @sakumisu
- fix(class): use different buffer for cdc_acm,hid,msc,serial
Port
- feat(port): implement usbd_ep_is_stalled api @liuhy-2020 @sakumisu
- feat(port): add remote wakeup api
- feat(port/dwc2): import kendryte glue from k230_sdk
- feat: add chipidea support for nxp mcx, add ehci glue for nxp mcx
- refactor(e(o)hci): rename usb_hc_e(o)hci to usb_e(o)hci_reg, usb_hc_e(o)hci_priv to usb_hc_e(o)hci
- refactor: refactor pusb2 and xhci driver @zhugengyu
- port: ehci: update init and deinit @chenzhihong007
- port: ehci: should not be clear CSC/PEC/OCC flag when usb_hc_init() @chenzhihong007
- update(port/hpm/usb_dc_hpm): enable resume handler
- update: port: hpmicro: add USBH_USE_CUSTOM_ISR add USBD_USE_CUSTOM_ISR to control isr @chenzhihong007
- update(port/dwc2/usb_dc_dwc2): add busid for functions to support multi ip
- update(port/dwc2): Modifying the USB Int Source to support esp32p4 @Kevincoooool
- fix(port/bl): fix test mode api
- fix(port/dwc2/usb_dc_dwc2): fix lost ep0 setup intstatus by clear, for dwc2 version 4.3 @charschu
- fix(port/dwc2): check idle when flush fifo, add delay for dwc2_set_mode
- fix(port/dwc2): reset dma burst then modify, clear HCINT intstatus first
- fix(port/dwc2): fix dwc2 rx fifo size, remove divided by 4