On Sat, Jun 27, 2009 at 12:10 AM, Xiaofan Chen<xiaof...@gmail.com> wrote:
> On Fri, Jun 26, 2009 at 11:56 PM, Dominic<dominic.r...@gmx.de> wrote:
>
>> I've been investigating the Windows USB mess a little yesterday. Maybe
>> someone can help fill in the uncertainties, here's what I have collected so
>> far.
>>
>> o libusb-win32 is API compatible with libusb 0.1, but is capable of
>> somethings that libusb 0.1 can't
>
> libusb-win32 has two development branches. libusb-win32 0.1 is
> API compatible with libusb 0.1 and adds isochronous transfer
> and asynchronous I/O support specific to Windows.
>
>> o libftdi apparently works with libusb-win32's API (see for example
>> Freddie's post)
>
> Yes.
>
>> o libusb-win32 comes with 3 (maybe 4) backends
>> - a libusb driver and a libusb filter driver (not sure if this
>> differenciation is still correct)
>> - a HID backend (I've seen something like that with Keil's ULINK I guess,
>> which looks like a HID to Windows, and thus needs no driver)
>> - a WinUSB backend
>
> This is libusb-win32 1.0 branch. Unfortunately it is not working yet and I
> do not know when the author will get time to get it working. Several people
> suggested WinUSB backend to fix Vista 64 issues. I suggested the
> HID backend since there are issues to use libusb-win32 with HID device.
>
>> o libusb-win32's drivers are supposed to be a dead end because they wont
>> work with 64-bit windows (and probably not with Windows 7), but they do work 
>> for
>> older versions that don't have WinUSB support (particularly 2000... leaving
>> 98/ME behind doesn't sound overly disturbing to me)
>> o the FTDI chips are not HID, so the HID backend is dead for our purposes
>
> The HID backend is for other device. There are many HID based device.
> Typically we use native HID API to access HID device. But many programs
> use libusb to access HID device under Linux.
>
>> o the WinUSB backend brings a WHQL signed driver, which is good, because it
>> runs on all windows versions that required signed drivers (Vista 64-bit,
>> Windows 7)

Just one more clarification. libusb-win32 can be made to support Vista
64bit and Windows 7 as well with a digital signature. It already works
under XP 64bit.

Vendors can also use libusb-win32 as their default device and get
it WHQLed with their particular VID/PID  if they want to do that. In that
case, it will actually take precedence than the non-WHQLed FTDI
driver+Vendor VID/PID combination. The FTDI WHQLed driver is for
unmodified VID/PID.

>> o The WinUSB How-To says that you need to get the whole driver package
>> including the .inf file signed. Some postings to newsgroups suggest that
>> this is not necessary. It might be that you get a warning, which shouldn't
>> be that much of a problem.
>
> It is ok to load the driver even though there is a warning. You can do
> the same with libusb-win32 device driver if somebody can pay the
> digital signature (not so expensive). One company already got their
> libusb-win32 based device driver certified by WHQL but they
> renamed all the driver name to their own name.
>
>> o libusb-win32's development seems sporadic if not stalled
>
> You can say it is stalled right now since the SVN is 22 months old.
>
>> Conclusions
>>
>> + libusb-win32 would be good, because it works on all present windows
>> platforms, and because it's supposed to work on upcoming versions, too
>>
>> + libusb-win32 would be good, because it allows us to use libftdi, which
>> implements all the FTDI-chip specific USB communication. Using the
>> information available in libftdi wouldn't be much of a problem, but it's
>> certainly a lot of coding work that is mostly unrelated to OpenOCD
>>
>> - I have no idea about how stable and reliable libusb-win32 is
>
> Based on my experiences it is quite good. The filter driver can cause
> many problems (including serious BSOD and lost of all USB device)
> and is no longer recommended by the author. The device driver has
> never caused problem for me.
>
>> o (Re-)writing libftdi with plain WinUSB should be possible and would remove
>> the uncertainties of libusb-win32, but would burden the OpenOCD project with
>> the task of keeping it stable and up to date. It would also leave out
>> Windows 2000 and before.
>>
>
> You can always use libusb-win32+libftdi for Windows 2k.
>
> If possible, some people with Windows knowledge can look
> at the libusb-win32 1.0 branch to judge how mature (or im-mature)
> it is.
>
> WinUSB is a good solution with or without libusb-win32. If libusb-win32's
> WinUSB backend can be made to work, it is of course better since it
> will benefit other open source projects as well. But a WinUSB based
> solution specific to OpenOCD (for FTDI) device may be easier.
>

-- 
Xiaofan http://mcuee.blogspot.com
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to