Windows 8.1 USB driver stack not USB 2 compliant

> You are lucky that it works under any machines. It is based on

the V-USB “firmware only USB driver for AVR”.

Is the FW source public?


Maxim S. Shatskih
Microsoft MVP on File System And Storage
xxxxx@storagecraft.com
http://www.storagecraft.com

On 23-Dec-2014 11:15, Maxim S. Shatskih wrote:

Is the FW source public?

Yes. Not public, but available with certain licensing restrictions.

But the issue is that I already have the devices,
and they work good enough, except in Win 8.1.

It also works in a Win10 VM running on Win7;
perhaps the host vmware driver fixed it somehow.

Regards,
–pa

On Tue, Dec 23, 2014 at 7:33 PM, Pavel A. wrote:
> Yes. Not public, but available with certain licensing restrictions.
>
> But the issue is that I already have the devices,
> and they work good enough, except in Win 8.1.
>
> It also works in a Win10 VM running on Win7;
> perhaps the host vmware driver fixed it somehow.
>

The thing is that if the firmware mentions that it violates
USB spec by not following the handling of communication
errors and electrical specifications, there is no guarantee
that it will work. Since I am a HW engineer by trade, the
thing that it violates the “electrical specifications” of USB
can not be acceptable.

So it is rather ironical the subject says that Windows
8.1 USB driver stack is not USB 2 compliant yet the
device itself is not even compliant to the basic
electrical specifications of USB…


Xiaofan

On 23-Dec-2014 15:20, Xiaofan Chen wrote:

The thing is that if the firmware mentions that it violates
USB spec by not following the handling of communication
errors and electrical specifications, there is no guarantee
that it will work.

Thank you Xiaofan, I understand.
But there was promise - or, at least, intent -
that any device that works in Win7 will work in Win8.

Since I am a HW engineer by trade, the
thing that it violates the “electrical specifications” of USB
can not be acceptable.

So it is rather ironical the subject says that Windows
8.1 USB driver stack is not USB 2 compliant yet the
device itself is not even compliant to the basic
electrical specifications of USB…

This incompatibility is not electrical, it is
pure software (interpretation of the format of descriptor).

Regards,
– pa

OK, so we’ve wandered off-topic a bit but now seem to be agreeing that this is a thread concerning 8.1 and USB descriptors, nothing whatsoever to do with dodgy plumbing or wiring.
Some background work has taken place since I last posted and I believe that it’s probably now up to MS (i.e. Doron) to post an update.

On 23-Dec-2014 13:33, Pavel A. wrote:

On 23-Dec-2014 11:15, Maxim S. Shatskih wrote:
> Is the FW source public?

Yes. Not public, but available with certain licensing restrictions.

But the issue is that I already have the devices,
and they work good enough, except in Win 8.1.

It also works in a Win10 VM running on Win7;
perhaps the host vmware driver fixed it somehow.

It fails on a physical Win10 build 9879.

– pa

Interesting, my failure occurs on both a Surface (physical) and VirtualBox VM

both running 8.1

On Tue, Dec 23, 2014 at 7:33 PM, Pavel A. wrote:
> On 23-Dec-2014 11:15, Maxim S. Shatskih wrote:
>>
>> Is the FW source public?
>
> Yes. Not public, but available with certain licensing restrictions.

The FW is public.
http://www.obdev.at/products/vusb/download.html
https://github.com/obdev/v-usb

There are some licensing restrictions here.
https://github.com/obdev/v-usb/tree/master/usbdrv


Xiaofan

On Tue, Dec 23, 2014 at 10:11 PM, Pavel A. wrote:
> This incompatibility is not electrical, it is
> pure software (interpretation of the format of descriptor).
>

Fair enough. Probably there is some timing issue in the
FW. You can actually run USB-IF compliance test against
your device to see if there are any red flags there.


Xiaofan

On 24-Dec-2014 03:18, Xiaofan Chen wrote:

Probably there is some timing issue in the
FW. You can actually run USB-IF compliance test against
your device to see if there are any red flags there.

This is very possible, but I don’t have a USB sniffer to check the
timing issue. If this is indeed a timing issue, it is a different case
than Adrian’s.

Anyway, be it timing or descriptor format - it is unfortunate that Win8
is the first OS that breaks these devices.
The V-USB project on github has a build setup for OS/X, so I guess these
devices work even with Macs.

Regards,
– pa

Xiaofan,

You are right, the problem with reading descriptors from v-usb device
looks like a electrical and/or timing problem.

And it did not begin in Win8. With some tricks the failure can be
repro’ed on Win7 sp1, and the device “worked” on 8.1 and 10 (very unstable).
This is all I know now, without a sniffer.

Regards,
– pa