This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/simtrace@lists.osmocom.org/.
Holger Hans Peter Freyther holger at freyther.deOn 10/04/2011 07:54 PM, Peter Stuge wrote: > Holger Hans Peter Freyther wrote: >> I 'reverted' fe88b83e80df8be0351ff38ee6a77b855b0cd0a9 that added >> sending a ZPL for every thing length % 8 == 0 and the device >> started to work on OSX. I assume we will need to look at the USB >> spec. :) > > I think that commit is mostly correct, it just overlooks the > condition of total data length == requested length, in which case I > think no zlp should be sent. Also, hard coding 8 as packet size is > not awesome, the value used by the host for this is bMaxPacketSize0 > in the device descriptor. (See 9.6.1) At least a define would be > good, full-speed devices can choose value here. So 8.5.3.2 demands that if data.length is an exact multiple of wMaxPacketSize we need to send the ZPL. And 9.4.3 The wLength field specifies the number of bytes to return. If the descriptor is longer than the wLength field, only the initial bytes of the descriptor are returned. If the descriptor is shorter than the wLength field, the device indicates the end of the control transfer by sending a short packet when further data is requested. A short packet is defined as a packet shorter than the maximum payload size or a zero length data packet (refer to Chapter 5). How to put this together? I will try to tomorrow. So as Peter points out we should not send a ZPL if we sent wLength byte but it also happens to be a multiple of wMaxPacketSize?