Linux USB
 help / color / mirror / Atom feed
From: Michal Pecio <michal.pecio@gmail.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Nikhil Solanke <nikhilsolanke5@gmail.com>,
	linux-usb@vger.kernel.org, gregkh@linuxfoundation.org,
	mathias.nyman@linux.intel.com, sakari.ailus@linux.intel.com,
	katieeliu@tencent.com, johannes.bruederl@gmail.com,
	kees@kernel.org, dengjie03@kylinos.cn, limiao@kylinos.cn,
	wse@tuxedocomputers.com, dev@a1rm4x.com, vahnenko2003@gmail.com,
	cs@tuxedo.de, lijiayi@kylinos.cn, oneukum@suse.com,
	bence98@sch.bme.hu, eeodqql09@gmail.com
Subject: Re: USB: Request for guidance investigating configuration descriptor enumeration failure
Date: Sun, 7 Jun 2026 23:25:35 +0200	[thread overview]
Message-ID: <20260607232535.74b935a2.michal.pecio@gmail.com> (raw)
In-Reply-To: <1996a7ac-2670-4124-b855-6fdf0c9999ad@rowland.harvard.edu>

On Sat, 6 Jun 2026 22:17:20 -0400, Alan Stern wrote:
> On Thu, Jun 04, 2026 at 12:53:23PM +0200, Michal Pecio wrote:
> > On Wed, 3 Jun 2026 22:02:44 -0400, Alan Stern wrote:  
> > > I used a bus analyzer to capture what happens when Windows 11 
> > > initializes and enumerates a USB-2 flash drive.  The short answer
> > > is that yes, the initial Get-Configuration-Descriptor request is
> > > for 255 bytes.  
> > 
> > Could you also try a few BIOSes, UEFIs and such?
> > Or anything from Apple?  
> 
> Here's the information.  It may not clear things up as much as you
> would like.
> 
> Samsung UEFI BIOS:
> 	Get Device Desc		8
> 	Set Address
> 	Get Device Desc		18
> 	Get Config Desc		255
> 	Set Config
> 
> Lenovo UEFI BIOS:
> 	Set Address
> 	Get Device Desc		8
> 	Get Device Desc		8
> 	Get Device Desc		18
> 	Get Config Desc		8
> 	Get Config Desc		32
> 	Get String Desc 0	2
> 	Get String Desc 0	4
> 	Set Config
> 
> IpadOS 26.5:
> 	Set Address
> 	Get Device Desc		18
> 	Get String Desc 2	2
> 	Get String Desc 2	34
> 	Get String Desc 1	2
> 	Get String Desc 1	18
> 	Get String Desc 3	2
> 	Get String Desc 3	50
> 	Get Config Desc		9
> 	Get Config Desc		32
> 	Set Config
> 
> OSX 10.5:
> 	Get Device Desc		18
> 	Set Address
> 	Get Device Desc		18
> 	Get String Desc 2	2
> 	Get String Desc 2	34
> 	Get String Desc 1	2
> 	Get String Desc 1	18
> 	Get String Desc 3	2
> 	Get String Desc 3	50
> 	Get Config Desc		8
> 	Get Config Desc		32
> 	Set Config

Quite a variation.

Ipad is interesting because the single Device request must be a
high-speed optimization, or they hacked their xHC to ignore short
packets and keep reissuing IN tokens until the URB is filled.

Linux has been doing the initial 8 or 64 byte read at LS and HS since
forever and I found no explanation besides nobody daring to touch it.

Though I wonder if it wouldn't make sense to skip this at SS, because
Windows does (in my QEMU tests) and very likely Apple too.

> I suspect that non-storage devices (such as an Xbox clone) might have 
> more stringent requirements, because they don't need to be visible to
> a BIOS.  In general, imitating Windows is almost certainly the best 
> approach -- except perhaps for a few devices which are meant to be
> used exclusively with Macs.

Are you suggesting to make the 255 byte configuration the new default,
or are we still talking about a quirk exclusive to one device so far?

Regards,
Michal

  parent reply	other threads:[~2026-06-07 21:25 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-29 21:22 USB: Request for guidance investigating configuration descriptor enumeration failure Nikhil Solanke
2026-05-30  1:58 ` Alan Stern
2026-05-30  6:57   ` Nikhil Solanke
2026-05-30 14:48     ` Alan Stern
2026-05-30 16:48       ` Nikhil Solanke
2026-05-30 20:26         ` Alan Stern
2026-05-30 20:47           ` Nikhil Solanke
2026-05-31  1:44             ` Alan Stern
2026-05-31  7:49               ` Nikhil Solanke
2026-05-31 14:03                 ` Alan Stern
2026-05-31  8:16 ` Michal Pecio
2026-05-31 10:11   ` Nikhil Solanke
2026-05-31 10:38     ` Michal Pecio
2026-05-31 11:20       ` Nikhil Solanke
2026-05-31 14:12       ` Alan Stern
2026-06-01  6:49         ` Michal Pecio
2026-06-01  9:01           ` Nikhil Solanke
2026-06-02 17:30             ` Michal Pecio
2026-06-04  2:02               ` Alan Stern
2026-06-04 10:53                 ` Michal Pecio
2026-06-07  2:17                   ` Alan Stern
2026-06-07 20:02                     ` Nikhil Solanke
2026-06-08  1:24                       ` Alan Stern
2026-06-07 21:25                     ` Michal Pecio [this message]
2026-06-08  1:34                       ` Alan Stern
2026-06-01 13:02           ` Alan Stern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260607232535.74b935a2.michal.pecio@gmail.com \
    --to=michal.pecio@gmail.com \
    --cc=bence98@sch.bme.hu \
    --cc=cs@tuxedo.de \
    --cc=dengjie03@kylinos.cn \
    --cc=dev@a1rm4x.com \
    --cc=eeodqql09@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=johannes.bruederl@gmail.com \
    --cc=katieeliu@tencent.com \
    --cc=kees@kernel.org \
    --cc=lijiayi@kylinos.cn \
    --cc=limiao@kylinos.cn \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --cc=nikhilsolanke5@gmail.com \
    --cc=oneukum@suse.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=stern@rowland.harvard.edu \
    --cc=vahnenko2003@gmail.com \
    --cc=wse@tuxedocomputers.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox