Releases: cherry-embedded/CherryUSB
Releases Β· cherry-embedded/CherryUSB
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
Security Check
CherryUSB v1.3.1
Common
- fix(demo/hid_custom_inout_template): fix missing macros
- fix(demo): fix missing usbh_int_urb_fill, musb will modify urb->transfer_buffer_length, this is a patch for musb
- fix(class/video): fix vc header descriptor definition @yjun123
- fix(class/video/usb_video): fix missing bDescriptorSubType in vc header descriptor
- fix(demo): device tcp/ip stack mac can't be the same as host for cdc_ecm and cdc rndis template @aozima
- update(class/video): add xu descriptor definition @yjun123
- feat: use fast memcpy for net
- feat(demo): add uvc_uac_hid template
- feat: add dhcp-server and dns-server module
Device
- fix(class/wireless/usbd_rndis): change total size to 1558
- fix(class/cdc/usbd_cdc_ecm): fix build error for missing busid
- fix(class/cdc/usbd_cdc_ecm): fix wMaxSegmentSize in cdc ecm descriptor, fix cdc_ecm_tx api @yukelab
- update(video): add more video desc macros, like h264, yuv, add vc endpoint to choose, add yuv, h264 template
- update: remove print log for device, because we do not allow printf in isr
- update(core/usbd_core): increase intf array from 8 to 16
- update(class/video/usbd_video): make payload fill api common
Host
- refactor(platform): update platform support, refactor net class rx process, support len > 16K for ncm/rndis/asix/rtl8152
- fix(core/usbh_core): fix get mult
- fix(class/audio/usbh_audio): fix sample frequence
- fix memcpy to strncpy
- remove xhci patch
- update(core/usbh_core): do not use slist, we use recursion to traverse hub
- update(class/hub/usbh_hub): enumerate in order
- update(class/msc/usbh_msc): add MSC_INQUIRY_TIMEOUT to break quickly in inquiry stage
Port
- fix(port/ch32): Unify the number of endpoint names and fix a data receiving bug @HaiMianBBao
- feat(port/dwc2): add hc32 glue
- feat(port/musb): config fifo from fifo table, add beken and es32 glue
- fix(port/musb/usb_hc_musb): fix missing leave critical when return with error
- update(port/ehci): use static iso pool for iso urb to reduce alloc time
- remove old xhci version
- fix(port): enter section before alloc pipe
Security Check
- update(port/dwc2/usb_hc_dwc2): add check for fifo with ep mps
- update: check class->hport validity
CherryUSB v1.3.0
Common
- change rt_ssize_t to ssize_t, compatible with older rtthread version
- osal: freeRTOS: fix enter/exit critical @chenzhihong007
- update missing license
- update config template, add some comments
- add USB_DEVICE_QUALIFIER_DESCRIPTOR_INIT and USB_OTHER_SPEED_CONFIG_DESCRIPTOR_INIT macros
- add cherryrb and cherry pool
- add nuttx osal
- update : disable keep timer and change eth name in host demo
Device
- support speed get when enables CONFIG_USBDEV_ADVANCE_DESC and select different desc with different speed
- support using string like "cherryusb" for string desc
- add usbd_get_ep_mps api and use in class and demo
- add usbd_get_ep_mult api
- copy data into ep0 buffer at a unified location in order to make code nice, add CONFIG_USBDEV_EP0_INDATA_NO_COPY macro
- change CONFIG_USBDEV_RNDIS_ETH_MAX_FRAME_SIZE to 1580 default
Host
- add config index to select multi configs
- add hid host report api
- add user_data param in host class for users
- support id table for multi vid pid
- support pl2303 driver
- fix rndis send dummy
- fix rndis receive with dummy
- fix rndis msg when mss is larger than rndis rx size
- fix missing busid in hub buffer
- support zero copy when enables LWIP_TCPIP_CORE_LOCKING_INPUT=1
- update rndis/ecm/ncm/asix/rtl8152 eth size
- update demo, support multi class
Port
- import bouffalo dcd
- import aic dcd
- musb: add sunxi glue for check
- ehci: read ehci hcor offset from hccr caplength
- ehci: enable ohci for ehci
- ehci: enable iaad in usbh_kill_urb
- dwc2: change CONFIG_USB_DWC2_ULPI_PHY to CONFIG_USB_HS, support stm32f723
- dwc2: enable bit21(VBUSSIG) in gd chips @zhaofx1234
- dwc2: change rx fifo to 1024/4 as default
- update(port/dwc2): rename struct name to avoid duplicate definitions
- fix: clear urb timeout after take sem, do not clear in irq, urb init will sometime call irq before take sem
- remove port param in usbd_get_port_speed
Security Check
- add check for dwc2 fifo with ep mps
- add check for dwc2 fifo with 1.25KB
- add check for rtt config
- add check for hpm config
- add check for eth rx size
- add check for wTotalLength
- add check for musb
CherryUSB v1.2.0
Common
- update scons and cmake file
Device
- update usb test mode @chenzhihong007
- demo: reset flag in USBD_EVENT_CONFIGURED
Host
- support cdc ncm host
- support rtl8152 host
- optimise find class driver api
- set config with configvalue
- fix bt hci recv when CONFIG_BT_RECV_IS_RX_THREAD is disabled
- core: usbh_core: fix ep0_request_buffer index lose @chenzhihong007
- add timer to control interrupt transfer
- add "." to section usbh_class_info for IAR @chenzhihong007
- fix msc buf overflow by SCSICMD_INQUIRY_SIZEOF
Port
- HPMicro: update usb_dc_hpm.c @chenzhihong007
- add esp dwc2 glue
- add aic ehci glue
- dwc2: update host driver
1, change dma incr to 16, flush fifo after fifo config.
2, simplify chan irq code. add HCCHAR register init api, only enable chan halt irq, buffer dma mode just need this.
3, add fifo macros for users to config.
4, get next toggle from HCTSIZ. - add usb_hc_low_level_deinit api
- ehci: use only one qh for intr, following with linux driver, remove qtd alloc & free, use static pool instead in order to run code faster.
CherryUSB v1.1.0
Common
Device
- support multi USB IP
- rename CONFIG_USBDEV_MSC_BLOCK_SIZE to CONFIG_USBDEV_MSC_MAX_BUFSIZE
- add ecm device write and read api
- add usbd init and deinit event macro
- support multi lun @chenzhihong007
- msc: stage change should be before usbd_ep_start_write() @chenzhihong007
- update endpoint number usage and fix busid check @chenzhihong007
Host
- support multi USB IP
- support usb ble host with zephyr and nimble
- add iar risc-v support @chenzhihong007
- update log tag
- add ch340, ftdi, cp210x, asix driver
- add get_connect_status api for rndis/cdc_ecm/asix
- fix cdc ecm zlp check
Port
- support multi USB IP
- dwc2: ctrl and bulk no need nak irq, when intr calls nak, retry by user
- dwc2: use fifo not dma as default because users may have problems in cache
- dwc2: add volatile for HcEpType & ChannelEna
- dwc2: low level deinit after usb register reset
- fsdev: remove ununsed macro and fix macro
- HPMicro: call suspend/connect/disconnect event @chenzhihong007
CherryUSB v1.0.0
Common
- Use usb special errno code, do not use system errno
- Remove usb_mem.h, move usb_osal.h into common
- Add rtems osal
Device
- Replace struct usbd_endpoint_cfg with struct usb_endpoint_descriptor in usbd_ep_open api
Host
- Refactor urb, add ep & hport in urb to make hardware pipe more reusable (dwc2/musb/ehci are affected)
- Improve rndis and ecm and dfs demo for rtthread
- Remove old vendor class
Port
- musb: bugfix: send zlp won't trigger ep tx interrupt @saisesai
- dwc2: move out gccfg, config by users
- dwc2: fix outchan actual len
- ehci: add aic and intel glue, add ehci suspend and resume
- Config macros by users when use musb&dwc2&fsdev
- Remove nrf5x and rp2040, ch32 host port
CherryUSB v0.10.2
Common
- add msh cli demo for device @ttnwosay
- osal: add USB_OSAL_WAITING_FOREVER for Semaphore and Queue use @chenzhihong007
Device
- Add cdc ecm device
Host
- Avoid IAR compiling error on USB HOST stack @helloeagleyang
- Add cdc ecm host
- Add modeswitch function
- Add usbh_set_interface api , usbh_get_string_desc and ms os request
- Fix rndis query & set msg wLength, only support one rndis device
- Fix class api name
Port
- dwc2: ignore dwc2 EPENA check
- Add more dwc2 tx fifo config, ignore ehci port ccs @ttnwosay
- ch32: Fix possible errors in endpoint 0 datapid in @HaiMianBBao
- Add nuvoton device port @xmaowu
- Fix ehci token status check to fix return zero with hub
- Add pusb2 dcd and hcd driver @zhugengyu
- Fix xhci build error @zhugengyu
CherryUSB v0.10.1
Common
- Add macros for IAR @helloeagleyang
Device
- improve msc thread
- fix video packet caculation
- Fix warning
Host
- Fix hub process with quick disconnect @heyuanjie87
Port
- Improve ehci driver, add iaad support
- Update hpm macros for device and host @chenzhihong007
- Add bouffalo ehci glue
CherryUSB v0.10.0
Common
- check if current context is in irq when gives sem
- update demo
- update cmakelist
- remove dap
- add usb_osal_thread_delete api
Device
- some descriptors INIT definitions export max ep size for user.
- format global variable name
- use usbd_event_handler instead of usbd_configure_done_callback
- refactor audio class driver
- support multi winusb
- support cdc send break
- add msc popup function
- Fix the callback api in usbd_hid.c
Host
- improve rndis with lwip process for freertos and rtthread
- enum device with disposable thread, do not block hub thread
- use static memory to malloc & free class
- support cp201x vendor class
Port
- Improve dwc2 udc iso driver, use DxEPCTL to check if ep is busy, check host driver is urb valid in isr.
- implment musb usbh_kill_urb