summaryrefslogtreecommitdiff
path: root/docs/changelog/0.16.0.md
blob: aa8257174f2dff477fc3bcb8d70ca423946a4681 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# 0.16.0

*November 24, 2023*

- New controller driver: MAX3421e (usb host shield), rusb2 (Renesas USB2.0), ChipIdea fullspeed
- New MCUs: MCXn9, nRF5340, STM32: G0, G4, L5, U575, U5A5, RA6m5, CH32F20x
- Add initial TypeC PowerDelivery support with STM32G4
- Remove submodules and use python script to manage repo dependencies #1947
- Add CMake support for most families and boards, move build file from tools/ to examples/build_system
- Add ETM trace support with JTrace for nrf52840, nrf5340, mcb1857, stm32h743eval, ra6m5
- [osal] Make it possible to override the `osal_task_delay()` in osal_none
- Add CDC+UAC2 composite device example
- Enhance Hardware-in-the-loop (HIL) testing with more boards: rp2040, stm32l412nucleo, stm32f746disco, lpcxpresso43s67

## Controller Driver (DCD & HCD)

- Add new ISO endpoint API: `dcd_edpt_iso_alloc()` and `dcd_edpt_iso_activate()`
- Remove legacy driver st/synopsys

### EHCI

- [iMXRT] Add dache clean/invalidate when memory is in cacheable memory
- Fix portsc write issue which cause problem with enumeration
- Fix an issue when doing port reset write to portsc
- Fix port change detect is not recognized when power on with attached device
- Fix xfer failed with disconnected device as stalled
- Fix error on EHCI causes xfer error in non-queued qhd which cause memory fault
- Un-roll recursive hub removal with usbh queue
- Fix issue when removing queue head
- Implement `hcd_edpt_abort_xfer()`
- use standard USB complete interrupt instead of custom chipidea async/period interrupt to be more compatible with other ehci implementation
- refactor usb complete & error isr processing, merge, update. Fix EHCI QHD reuses QTD on wrong endpoint
- Improve bus reset, fix `send_setup()` not carried out if halted previously
- Fix clear qhd halted bit if not caused by STALL protocol to allow for next transfer

### ChipIdea Highspeed

- Fix control transfer issue when previous status and new setup complete in the same isr frame
- [imxrt] Add dcache support for cache region

### ChipIdea Fullspeed

- Generalize ChipIdea Fullspeed driver for mcxn9 (port 0), kinetis

### nrf

- Fix DMA race condition with ISO OUT transfer #1946
- Add support for nRF5340 with pca10095 board

### Renesas rusb2

- Generalize rusb2 driver for ra, rx mcus
- rework both dcd and hcd for better multiple ports support
- Add support for board with HS USB port: ra6m5 port1

### rp2040

- [dcd] Make writes to SIE_CTRL aware of concurrent access
- [hcd] add `hcd_frame_number()`, `hcd_edpt_abort_xfer()` for pio-usb host

### stm32 fsdev

- Add STM32L5 support
- Implement `dcd_edpt_iso_alloc()` and `dcd_edpt_iso_activate()`

### OHCI

- Allows configurable root hub ports, handles SMM mode (Ref OHCI spec 5.1.1.3.3) and Bios mode (Ref OHCI spec 5.1.1.3.4)
- Fix FrameIntervalToggle must be toggled after we write the FrameInterval (Ref OHCI Spec 7.3.1)
- Wait PowerOnToPowerGoodTime after we enable power of the RH ports (Ref OHCI Spec 7.4.1)
- Generate port interrupts for devices already connected during init.
- Fix issue when removing queue head
- Disable MIE during IRQ processing and clear HccaDoneHead on completion as per OCHI Spec Page 80

## Device Stack

- Add optional hooks `tud_event_hook_cb()`

### Audio (UAC2)

- Fix feedback EP buffer alignment.
- Fix encoding, update example
- Improve IN transfer

### Bluetooth

- Add historical EP compatibility for Bluetooth HCI

### CDC

- Fix line_coding alignment
- Fix typo in cdc line coding enum

### MIDI

- Fix `stream_write()` always writes system messages to cable 0
- Fix incorrect NOTE_ON, NOTE_OFF definitions

### USBTMC

- Fix tmc488 bit order

### Vendor

- fix `read()`/`write()` race condition

### Video (UVC)

- Add the capability for video class to handle a bulk endpoint in the streaming interface.

## Host Stack

### USBH

- Add new APIs: `tuh_interface_set()`, `tuh_task_event_ready()`, `tuh_edpt_abort_xfer()`, `tuh_rhport_reset_bus()`, `tuh_rhport_is_active()`
- Fix issue when device generate multiple attach/detach/attach when plugging in
- Prefer application callback over built-in driver on transfer complete event
- Correct `hcd_edpt_clear_stall()` API signature
- Separate bus reset delay and contact debouncing delay in enumeration
- Support `usbh_app_driver_get_cb()` for application drivers
- Fix usbh enumeration removal race condition
- Add optional hooks `tuh_event_hook_cb()`

### CDC

- Breaking: change `tuh_cdc_itf_get_info()` to use tuh_itf_info_t instead of tuh_cdc_info_t
- Fix cdc host enumeration issue when device does not support line request
- Add support for vendor usb2uart serial: ftdi, cp210x, ch9102f
- Improve sync control API e.g  `tuh_cdc_set_control_line_state()`, `tuh_cdc_set_line_coding()`

### HID

- Add new APIs `tuh_hid_send_report()`, `tuh_hid_itf_get_info()`, `tuh_hid_receive_ready()`, `tuh_hid_send_ready()`, `tuh_hid_set_default_protocol()`
- Change meaning of CFG_TUH_HID to total number of HID interfaces supported. Previously `CFG_TUH_HID` is max number of interfaces per device which is rather limited and consume more resources than needed.

### HUB

- Fix handling of empty "status change" interrupt
- Fix issue with hub status_change is not aligned

### MSC

- Fix bug in `tuh_msc_ready()`
- Fix host msc get maxlun not using aligned section memory

## Contributors

Thanks to everyone who contributed to this release: @0xCCF4, @abakosh, @ahooper, @antoniovazquezblanco, @bavison, @bencowperthwaite, @bpaddock, @branalba, @ccrome, @dauc, @dhalbert, @DRNadler, @dsugisawa-mixi, @epatstarkey, @eustas, @facchinm, @gabChouin, @georgeboc, @hathach, @HiFiPhile, @howard0su, @HubertD, @ipopov, @jbtheou, @jefftrull, @jfedor2, @jferreir, @jfm92, @jncronin, @JustAnother1, @kasjer, @kholia, @kilograham, @kkitayam, @koendv, @Krasutski, @kripton, @maidnl, @MattMills, @mikee47, @mndza, @nathaniel-brough, @NullMember, @perigoso, @projectgus, @raiden00pl, @ReimuNotMoe, @Rocky04, @rppicomidi, @Ryzee119, @sinitax, @sjanc, @slark-yuxj, @slc-tl, @Tails86, @tannewt, @tswan-quasi, @tyustli, @Yveaux.