<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cherryusb.git/port, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/cherryusb.git/atom/port?h=master</id>
<link rel='self' href='http://cgit.235523.xyz/cherryusb.git/atom/port?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/'/>
<updated>2026-10-14T08:14:37Z</updated>
<entry>
<title>fix(port/ehci): fix killed to zero by 6c40a28302</title>
<updated>2026-10-14T08:14:37Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-10-14T08:14:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=70aa87fa213972cf1b9f0f751c1685cb4fcf7688'/>
<id>urn:sha1:70aa87fa213972cf1b9f0f751c1685cb4fcf7688</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>fix(port/ehci): fix urb transfer_buffer invalid for control</title>
<updated>2026-10-14T06:52:08Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-10-14T06:52:08Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=69590b9f642e850776b9d10305d39ae8cd427ba9'/>
<id>urn:sha1:69590b9f642e850776b9d10305d39ae8cd427ba9</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>update(port/dwc2/gd): add gd reg patch, all todo</title>
<updated>2026-10-11T13:52:36Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-10-11T13:52:31Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=d3c8b19b304e91e8f83ef341a71dee23b3851414'/>
<id>urn:sha1:d3c8b19b304e91e8f83ef341a71dee23b3851414</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>update(phytium): update phytium port and ci</title>
<updated>2026-10-10T13:40:25Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-10-10T13:24:58Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=c616753ea909e9d0a7bde3c6c6a05ce961b88dc3'/>
<id>urn:sha1:c616753ea909e9d0a7bde3c6c6a05ce961b88dc3</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>fix(port/dwc2/usb_dc_dwc2): do not disable out ep, only with nak when reset or deinit</title>
<updated>2026-10-10T12:46:12Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-10-10T12:45:53Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=be0dfb7401669d7fe5ab2ee3d5d5db1595ef0323'/>
<id>urn:sha1:be0dfb7401669d7fe5ab2ee3d5d5db1595ef0323</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>fix(port/dwc2/usb_dc_dwc2): revert out data_len caculation</title>
<updated>2026-10-09T14:40:16Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-10-09T14:40:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=4d87055137c5c3e64fb1280024754c419d7651ab'/>
<id>urn:sha1:4d87055137c5c3e64fb1280024754c419d7651ab</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>﻿fix(port/musb): Use the mapped channel in usbh_kill_urb on SiFli 52/56</title>
<updated>2026-10-08T14:05:44Z</updated>
<author>
<name>zelong_666</name>
<email>2027636040@qq.com</email>
</author>
<published>2026-10-08T12:01:10Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=379b6a2cdb58b90ac2d338d18bdbb911fef4fafd'/>
<id>urn:sha1:379b6a2cdb58b90ac2d338d18bdbb911fef4fafd</id>
<content type='text'>
usbh_kill_urb() derived both the channel to mask and the channel to flush from
the endpoint number ((urb-&gt;ep-&gt;bEndpointAddress &amp; 0x0f) and bEndpointAddress
itself), which only holds when the channel number equals the endpoint number.
When MUSB_SIFLI_EP_MAP is in use the channel is assigned by
sifli_ep_map_alloc(): the SiFli 52/56 host channels are pooled per direction
(IN ch1..ch4, OUT ch5..ch7), so e.g. EP1 OUT lives on ch5 and EP2 OUT on ch6.

Masking by endpoint number therefore clears the interrupt enable of an
unrelated channel and leaves the aborted channel's interrupt armed, and
musb_fifo_flush() is asked to clean the FIFO of a different endpoint than the
one the URB was using.

Take the channel from pipe-&gt;chidx, which is the channel the URB was submitted
on, and rebuild the byte musb_fifo_flush() expects (direction in bit7, channel
in bits 6:0). Non-mapped MUSB ports keep their previous behaviour.

EP0 is unaffected either way: with chidx 0 and bEndpointAddress 0 both forms
resolve to bit 0 and byte 0.
</content>
</entry>
<entry>
<title>﻿fix(port/musb): Re-arm the EP0 TX interrupt in musb_control_urb_init</title>
<updated>2026-10-08T14:05:10Z</updated>
<author>
<name>zelong_666</name>
<email>2027636040@qq.com</email>
</author>
<published>2026-10-08T12:00:55Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=17ff1f0045d3ee28a604c66bebeab3a9bb7f653e'/>
<id>urn:sha1:17ff1f0045d3ee28a604c66bebeab3a9bb7f653e</id>
<content type='text'>
The data channels re-arm their interrupt enable in their own
musb_bulk_urb_init()/musb_intr_urb_init()/musb_iso_urb_init(), but the EP0
path never did: TXIE.EP0 was only ever set once, in usb_hc_init().

usbh_kill_urb() masks the interrupt of the channel that owns the abandoned
URB, and EP0 always lives on channel 0, so aborting a single control transfer
clears TXIE.EP0 for good. Every later control transfer then completes in the
hardware but never raises an EP0 interrupt, so usbh_submit_urb() runs into
errout_timeout (-USB_ERR_TIMEOUT) and enumeration can never succeed again
until the next usb_hc_init().

Seen on a host that lost its peer in the middle of enumeration (phone reboot
or re-plug): one control transfer timed out during the port reset and every
following one repeated "Failed to get device descriptor, errorcode:-14"
forever, until the board was rebooted.

Arming TXIE.EP0 here keeps EP0 symmetric with the data channels, so a single
timed-out control transfer no longer disables EP0 for the rest of the session.
</content>
</entry>
<entry>
<title>fix(port/dwc2/usb_dc_dwc2): fix usbd_ep_close for out ep, set global nak first then can disable ep, refs: #462</title>
<updated>2026-10-06T13:08:44Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-10-06T12:54:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=e43168b9f38bd55851c1cfe32579636e9363e01a'/>
<id>urn:sha1:e43168b9f38bd55851c1cfe32579636e9363e01a</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
<entry>
<title>update(port): change low level api from weak to extern, users must implement this</title>
<updated>2026-09-26T14:02:25Z</updated>
<author>
<name>sakumisu</name>
<email>1203593632@qq.com</email>
</author>
<published>2026-09-26T12:20:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/cherryusb.git/commit/?id=d14c4aa55609928812a40f3892b56f050a2d83cd'/>
<id>urn:sha1:d14c4aa55609928812a40f3892b56f050a2d83cd</id>
<content type='text'>
Signed-off-by: sakumisu &lt;1203593632@qq.com&gt;
</content>
</entry>
</feed>
